参考にしているのはこの辺、
ちょっとだけ用語を整理。
IMM (Imput Methid Manager) |
IMEとアプリケーションの橋渡しをするらしい。 |
IMC (Input Method Context) |
IMEとアプリケーションの間でやりとりされるデータを保持するらしい。 |
ドキュメントによるとスレッドごとにIMCが割り当てられているらしいのですが、 ImmGetContextを呼んでも何も返ってきません。
念のために Todayのトップレベルウィンドウを指定してみましたが、結果は変わりませんでした。
割り当てられてないなら作ってしまえと ImmCreateContextでIMCを作成してみようとしたのですが、 これもダメ。
そもそも ImmGetDefaultIMEWndで値を返さない上に、 WM_IME_SETCONTEXT等のメッセージも飛んできてないようです。
普通のプログラムでは それぞれ何らかの値を返すので、 Today画面のスレッドだけ IME(IMC?)が割り当てられて無いという事でしょうか...。
いただいた情報によると他のTodayプラグインを作られた方も同じような問題で悩んでいるようです。
また、解決策としては日本語入力必要な部分を別アプリ(スレッド)で動かすというやり方が多いとの事。
やはりその方法しか無いのかなぁと思い始めています。
マイクロソフトが Today画面のスレッドにIMEを割り当ててくれればそれで解決な気もするのですが...。
既に他力本願モードですね(笑
0 件のコメント:
コメントを投稿