ITfFnLMProcessor
COM公式ドキュメント
ITfFnLMProcessor インターフェイスは言語モデルテキストサービスによって実装され、アプリケーションやテキストサービスが代替の言語モデル処理を利用できるようにするために使用されます。
メソッド 7
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
ITfFnLMProcessor::QueryRange メソッド
| pRange | ITfRange* | in | 再変換の対象となるテキストの全体または一部を含む ITfRange オブジェクトへのポインター。 |
| ppNewRange | ITfRange** | out | 再変換可能なテキスト全体を含む範囲(レンジ)オブジェクトを受け取る ITfRange ポインターへのポインター。pRange が含むテキストのいずれも再変換できない場合、このパラメーターは NULL を受け取ります。この場合でもメソッドは S_OK を返すため、呼び出し元はポインターを使用する前にこのパラメーターが NULL でないことを確認する必要があります。 このパラメーターは省略可能で、NULL を指定できます。この場合、範囲(レンジ)は必要とされません。 |
| pfAccepted | BOOL* | out | pRange が含むテキストのいずれも再変換できない場合は 0 を、それ以外の場合は 0 以外の値を受け取る BOOL 値へのポインター。 |
戻り値
このメソッドは次のいずれかの値を返します。
| 値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| 1 つ以上のパラメーターが無効です。 | |
| メモリの割り当てに失敗しました。 |
解説(Remarks)
このメソッドは ITfFnReconversion::QueryRange と同一です。テキストサービス内で ITfFnReconversion::QueryRange が呼び出された場合、言語モデルプロセッサーがインストールされていれば、テキストサービスはその呼び出しをこのメソッドへ転送してください。言語モデルプロセッサーがインストールされていない場合、テキストサービスは既定の処理を行ってください。
ITfFnLMProcessor::QueryLangID メソッド
| langid | WORD | in | クエリの対象となる言語の識別子を指定する LANGID を格納します。 |
| pfAccepted | BOOL* | out | 言語モデルテキストサービスが langid で示される言語をサポートする場合は 0 以外の値を、それ以外の場合は 0 を受け取る BOOL 値へのポインター。 |
戻り値
このメソッドは次のいずれかの値を返します。
| 値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| pfAccepted が無効です。 |
解説(Remarks)
クライアントが複数の言語識別子のテキストを生成する可能性がある場合は、このメソッドでそのすべてを問い合わせてください。
ITfFnLMProcessor::GetReconversion メソッド
| pRange | ITfRange* | in | 再変換の対象となるテキストを含む ITfRange オブジェクトへのポインター。この範囲(レンジ)オブジェクトを取得するには、ITfFnReconversion::QueryRange を呼び出します。 |
| ppCandList | ITfCandidateList** | out | 候補一覧オブジェクトを受け取る ITfCandidateList ポインターへのポインター。 |
戻り値
このメソッドは次のいずれかの値を返します。
| 値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| 原因不明のエラーが発生しました。 | |
| 1 つ以上のパラメーターが無効です。 | |
| メモリの割り当てに失敗しました。 |
解説(Remarks)
このメソッドは ITfFnReconversion::GetReconversion と同一です。テキストサービス内で ITfFnReconversion::GetReconversion が呼び出された場合、言語モデルプロセッサーがインストールされていれば、テキストサービスはその呼び出しをこのメソッドへ転送してください。言語モデルプロセッサーがインストールされていない場合、テキストサービスは既定の処理を行ってください。
ITfFnLMProcessor::Reconvert メソッド
| pRange | ITfRange* | in | 再変換するテキストを含む ITfRange オブジェクトへのポインター。 |
戻り値
このメソッドは次のいずれかの値を返します。
| 値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| 原因不明のエラーが発生しました。 | |
| pRange が無効です。 |
解説(Remarks)
このメソッドは ITfFnReconversion::Reconvert と同一です。テキストサービス内で ITfFnReconversion::Reconvert が呼び出された場合、言語モデルプロセッサーがインストールされていれば、テキストサービスはその呼び出しをこのメソッドへ転送してください。言語モデルプロセッサーがインストールされていない場合、テキストサービスは既定の処理を行ってください。
ITfFnLMProcessor::QueryKey メソッド
| fUp | BOOL | in | キーダウンイベントかキーアップイベントかを指定する BOOL を格納します。キーダウンイベントの場合は 0、それ以外の場合は 0 以外の値になります。 |
| vKey | WPARAM | in | キーの仮想キーコードを格納します。このパラメーターの詳細については、WM_KEYDOWN の wParam パラメーターを参照してください。 |
| lparamKeydata | LPARAM | in | キーのリピート回数、スキャンコード、拡張キーフラグ、コンテキストコード、以前のキー状態フラグ、遷移状態フラグを指定します。このパラメーターの詳細については、WM_KEYDOWN の lParam パラメーターを参照してください。 |
| pfInterested | BOOL* | out | 言語モデルテキストサービスがそのキーイベントを処理する場合は 0 以外の値を、それ以外の場合は 0 を受け取る BOOL へのポインター。 |
戻り値
このメソッドは次のいずれかの値を返します。
| 値 | 説明 |
|---|---|
| メソッドは成功しました。 |
ITfFnLMProcessor::InvokeKey メソッド
| fUp | BOOL | in | キーダウンイベントかキーアップイベントかを指定する BOOL を格納します。キーダウンイベントの場合は 0、それ以外の場合は 0 以外の値になります。 |
| vKey | WPARAM | in | キーの仮想キーコードを格納します。このパラメーターの詳細については、WM_KEYDOWN の wParam パラメーターを参照してください。 |
| lparamKeyData | LPARAM | in | キーのリピート回数、スキャンコード、拡張キーフラグ、コンテキストコード、以前のキー状態フラグ、遷移状態フラグを指定します。このパラメーターの詳細については、WM_KEYDOWN の lParam パラメーターを参照してください。 |
戻り値
このメソッドは次のいずれかの値を返します。
| 値 | 説明 |
|---|---|
| メソッドは成功しました。 |
ITfFnLMProcessor::InvokeFunc メソッド
| pic | ITfContext* | in | 関数を実行する対象のコンテキストを表す ITfContext インターフェイスへのポインター。 |
| refguidFunc | GUID* | in | 呼び出す関数を指定する GUID を格納します。このパラメーターに指定できる値は、言語モデルテキストサービスの提供元によって定義されます。 |
戻り値
このメソッドは次のいずれかの値を返します。
| 値 | 説明 |
|---|---|
| メソッドは成功しました。 |
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ITfFnLMProcessor "{7AFBF8E7-AC4B-4082-B058-890899D3A010}" #usecom global ITfFnLMProcessor IID_ITfFnLMProcessor "{}" #comfunc global ITfFnLMProcessor_QueryRange 4 sptr,sptr,var #comfunc global ITfFnLMProcessor_QueryLangID 5 int,var #comfunc global ITfFnLMProcessor_GetReconversion 6 sptr,sptr #comfunc global ITfFnLMProcessor_Reconvert 7 sptr #comfunc global ITfFnLMProcessor_QueryKey 8 int,sptr,sptr,var #comfunc global ITfFnLMProcessor_InvokeKey 9 int,sptr,sptr #comfunc global ITfFnLMProcessor_InvokeFunc 10 sptr,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ITfFnLMProcessor "{7AFBF8E7-AC4B-4082-B058-890899D3A010}" #usecom global ITfFnLMProcessor IID_ITfFnLMProcessor "{}" #comfunc global ITfFnLMProcessor_QueryRange 4 sptr,sptr,sptr #comfunc global ITfFnLMProcessor_QueryLangID 5 int,sptr #comfunc global ITfFnLMProcessor_GetReconversion 6 sptr,sptr #comfunc global ITfFnLMProcessor_Reconvert 7 sptr #comfunc global ITfFnLMProcessor_QueryKey 8 int,sptr,sptr,sptr #comfunc global ITfFnLMProcessor_InvokeKey 9 int,sptr,sptr #comfunc global ITfFnLMProcessor_InvokeFunc 10 sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。