![]() |
■ATOK技術情報 <ATOK12/ATOK11/ATOK10 for Windows AMETアプリケーション開発マニュアル>
3.AMETサーバ AMETの機能を備えたOLEオートメーションサーバプログラムを『AMETサーバ』と呼ぶ。AMETサーバは要求されるプロパティとメソッドを実装していれば、どのような処理系で作成してもよい。本ドキュメントでは、Visual Basic 4.0とVisual C++ 4.0によるAMETサーバの作成方法について説明してある。 AMETサーバには次に示すプロパティとメソッドを実装することができる。プロパティとメソッドには必ず実装しなければならない必須プロパティ、必須メソッドと、必要ないときは実装しなくてもよい任意プロパティ、任意メソッドがある。
必須プロパティは、ATOKがAMETサーバを呼び出すときに必ず設定するプロパティである。AMETサーバにこれらのプロパティのうちどれか一つでも実装されていないときはAMETの呼び出しは行われない。 3−2−1.AmetYomi AmetYomiは、未確定文字列の読みを設定する。 3−2−2.AmetHyoki AmetHyokiは、未確定文字列の表記を設定する。 必須プロパティと同様、必須メソッドもATOKがAMETサーバを呼び出すときに必ず実行するメソッドである。AMETサーバにこれらのメソッドのうちどれか一つでも実装されていないときはAMETの呼び出しは行われない。 3−3−1.AmetStart void AmetStart(LONG hWnd); AMETサーバにプロパティの設定が完了したことを通知するメソッド。 引数のhWndは、AMETサーバがATOKにデータを送信するときの通知先のウィンドウ(ATOKウィンドウ)のハンドルを与える。 任意プロパティは、AMETサーバが必要であれば実装するプロパティである。これらのプロパティが実装されていないときはATOKはデフォルトの動作をする。 3−4−1.AmetResult AMETサーバがATOKに確定文字列を返すときは、このプロパティを実装し、文字列を設定する。ATOKはここに設定された文字列を確定文字列としてアプリケーションに送信する。 このプロパティが実装されていないときはATOKは確定文字列の設定をしない。 3−4−2.AmetQuit AMETサーバからATOKに通知があった後、AMETサーバを終了するかどうかを表すプロパティ。TRUE(≠ 0)のときはAMETサーバは終了し、FALSE(=0)のときは終了しない。 このプロパティが実装されていないときはTRUEが設定されているものとみなし、AMETサーバは終了する。 AMETサーバが読みと表記の文節情報を必要とするとき、文節情報プロパティを実装することができる。これらのプロパティとメソッドは任意である。 3−5−1.AmetBYomi, AmetBHyoki 文節情報を格納するためのデータ領域でプロパティではない。LONGの配列(LONG[100])として実装する。このデータ領域に値を設定する場合は、後述するAmetSetBYomi()、AmetSetBHyoki()メソッドを用いる。 3−5−2.AmetBYomiLen, AmetBHyokiLen それぞれAmetBYomi, AmetBHyokiのうち、有効なデータの数を与えるプロパティ。 このプロパティが実装されていないときは文節情報の設定は行わない。 3−5−3.AmetSetBYomi, AmetSetBHyoki
void AmetSetBYomi(LONG idx, LONG data);
文節情報を設定するためのメソッド。AmetBYomi、AmetBHyokiの代わりとして使う。ATOKはこのメソッドを繰り返し呼び出し、配列のidxで与えられるインデックスの要素にdataで指定された値を設定する。 このメソッドが実装されていないときは文節情報の設定は行わない。 AMETサーバがATOKに確定文字列を返すときは、AmetStartの引数として渡されたATOKウィンドウのハンドルにWM_AMET_NOTIFYメッセージを送信する。ATOKウィンドウはこのメッセージを受信すると、AMETサーバのAmetResult、AmetQuitの各プロパティを調べる。 AmetResultが存在するときは、プロパティから確定文字列を取得し、アプリケーションに送信する。またAmetQuitが存在するときは、その値によってAMETサーバを終了する。
WM_AMET_NOTIFYはWM_USER + 100として定義される。
|
||||||||||||||||||||||||
![]() |
update 1998.12.2 |