IME 制御したい その3

Firefox 4 のみです。(さらに 32bit windows)

bootstrap と ctypes.js を 試してみた。


https://github.com/caisui/ime-controller
(Makefile, install.rdf, bootstrap.js の 3 file!)
xpi ->http://www1.axfc.net/uploader/File/so/59050.xpi


reboot 無しで お試しできます。
(これだけだと何もできませんが…)


widnow.gIMEManager を 追加します。

enabled IME の ON/OFF
conversion 入力モード値
sentence 変換モード

なプロパティ(getter,setter) を 持ってます。


各値は単純に win api から 拾ってきているだけです。


詳しい情報は MSDN の この辺りWindows previous versions documentation | Microsoft Docs,Windows previous versions documentation | Microsoft Docs,IME Sentence Mode Values - Windows applications | Microsoft Docs
です。


ctypes は、https://developer.mozilla.org/en/JavaScript/Code_modules/ctypes.jsmを参考に結構すんなりいけました。


戸惑ったのは、ポインタの宣言の仕方でした。

int x;
hoge(&x);
printf("%d", x);

相当が

var x = ctypes.int32_t();
hoge(x.address());
alert(x.value);

みたいな感じになります。
(printf と alertは 値を画面に出すという意味で等価ということでお願いします。)


参考
Working with data - Mozilla | MDN


ctypesを使った感想は、宣言が面倒きわまりないことにつきます。
今回は、構造体が無かったので関数だけで済みなによりでした。


なお、64bit 版 は Invalid ABI specification が 出てよくわからなかったので断念しました。orz

2011/03/03
tag 誤っていたので訂正