Text Services Framework Wrapper for .NET

以下ではText Services Framework Wrapper for .NETの説明の前に,まずText Services Framework (以下TSF)の簡単な紹介から始めよう.
http://www.microsoft.com/japan/msdn/accessibility/tsf/
TSFはキーボード入力や音声入力といった自然言語に関する入力処理をサポートするためのものだ.これらの機能はTSFでは「サービス」と呼ばれている.「サービス」はCOMアドインという形で実装され,レジストリに登録することで利用可能となる.実はMicrosoftの提供しているIME 2002やIME 2003はまさにこの「サービス」の例となっている.
http://support.microsoft.com/default.aspx?scid=kb;ja;833062
もちろんTSF「サービス」を自分で開発することも可能である.例えばSKKIMEはTSFに対応した*1フリーソフトウェアIMEである.
http://www.tatari-sakamoto.jp/~tatari/skkime.jis.html
一方Windowsには従来から利用されているIME/IMM APIが存在し,大多数のアプリケーションは今もこちらを利用している.実はTSFというのは,利用するアプリケーション側もTSFの専用命令を使う必要があるという非常に厄介な問題がある.そのため対応アプリケーションといえばOfficeとWardpadぐらいなのが現実である.このことがTSFの普及を妨げる大きな要因となっていたと思われる.
しかしWindows XP SP1にて,WindowsのコモンコントロールをTSFに対応させることが可能となった.これにより今日では比較的多くのアプリケーションからTSFが利用可能となっている.が,この仕組みは今ひとつ不安定らしく世間では割と悪者扱いだったりもする.
http://homepage2.nifty.com/winfaq/wxp/trouble.html#1376
TSF Wrapper for .NETはこのTSF「サービス」のうち,キーボード入力系のサービスの実装を.NET言語から容易に行うための基底クラスとして働く.このラッパーは,テキスト入力系のコンポーネントを作る上でIMEの存在がどうしても邪魔になったため,いっそのことIMEを自作できないかという発想で作られた.

(以下続く) "Funded by IPA"とか入れたいのでソースの方は数日お待ちを.

*1:ただしSKKIMEは旧来のIME/IMM APIも対応している