ceOpenerプラグインのInputSwitchの流れ

誰得俺得メモ。

というか正直通常のWindowsの真面目なIMEを作る方法でもなく本当に今の自分以外の誰に必要なんだろうっていう知識。ちなみにWindowsの通常のIMEとかはTSF(Text Services Framework)とかを使うらしいです。

ちなみにInputSwitch自体はkncecomm経由で以下のAPIを叩いている。

  1. InputSwitch内のpluginInit()がceOpenerによって呼ばれる、そこでInputSwitchは…
  2. RegisterHotKey()して使うキー全部の入力をもらえるようにする
  3. その入力を使って随時漢字変換(GetAsyncKeyStateを使ってシフトキー状態を取得したりもする
  4. 結果を全体にPostKeybdMessage()する

こんな感じ。

何故辞書ファイルを事前にEUCからUTF-8に変換しているのか

MultiByteToWideChar()で一発でワイド文字列にできるから