「以前のバージョンのMicrosoft IMEを使う」スイッチの判定方法
「以前のバージョンのMicrosoft IMEを使う」スイッチがオンかオフかで、配列定義におけるユニコード直接出力(=シングルコーテーションで括った全角文字列)の出力状態が変わります。
「以前のバージョンのMicrosoft IMEを使う」スイッチがオンのとき、Microsoft IMEでユニコード直接出力すると、未確定文字として変換中文字列の最後尾に追加されます。
「以前のバージョンのMicrosoft IMEを使う」スイッチがオフのとき、Microsoft IMEでユニコード直接出力すると、確定文字となります。変換中文字列は、その分だけ後ろにずれます。
なお、Google日本語入力とAtokの両方とも、ユニコード直接出力すると、未確定文字として変換中文字列の最後尾に追加されます。つまり、「以前のバージョンのMicrosoft IMEを使う」スイッチがオフのときのMicrosoft IMEだけ、他のIMEとは動作が異なります。そこで、プログラム(配列エミュレータ)から、「以前のバージョンのMicrosoft IMEを使う」スイッチの状態をとれないかと見てみました。
HKLM\Software\Microsoft\input\Locales の InputLocale が 0x002d0411 ならば、「以前のバージョンのMicrosoft IMEを使う」スイッチがオフ。InputLocale が 0x00230411 ならばオフのようです。なお、HKLM\Software\Wow6432node\Microsoft\input\Locales にも、同じキーが掛かれています。