以前紹介した64bit版のWindowsに対応したXKeymacsは、キーボードフックをスレッドローカルにしていた。この理由は2つある。1つは32bitと64bitのキーボードフックの両方が1つのアプリケーションに掛からないようにすること。もう1つはIMEの制御を適切に行えるようにすることである。 キーボードフックをグローバルにしてしまうと、32bitか64bitのフックのうち、あとにフックした方にしかキーボードフォーカスが渡らないため、32bitか64bitのどちらかのアプリケーションしかIMEを制御できなかった。スレッドローカルにすると、この問題は回避できる。 キーボードフックをスレッドローカルにすると、プロセスが終了するまでフックが外れないので、XKeymacsを入れ替えるときには必ずログオフする必要がある。プロセスにアタッチしたXKeymacsのDLLは、プロセスが終了するまでデタ