ITfThreadMgrEventSink
COM公式ドキュメント
ITfThreadMgrEventSink インターフェイスは、特定のスレッドマネージャーのイベント通知を受け取るために、アプリケーションまたは TSF テキストサービスによって実装されます。このアドバイズシンクをインストールするには、TSF マネージャーの ITfSource::AdviseSink を IID_ITfThreadMgrEventSink とともに呼び出します。
メソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
ITfThreadMgrEventSink::OnInitDocumentMgr メソッド
| pdim | ITfDocumentMgr* | in | ドキュメントマネージャーオブジェクトへのポインター。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ITfThreadMgrEventSink::OnUninitDocumentMgr メソッド
| pdim | ITfDocumentMgr* | in | ドキュメントマネージャーオブジェクトへのポインター。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ITfThreadMgrEventSink::OnSetFocus メソッド
| pdimFocus | ITfDocumentMgr* | in | 入力フォーカスを受け取るドキュメントマネージャーへのポインター。フォーカスを受け取るドキュメントが存在しない場合は NULL になります。 |
| pdimPrevFocus | ITfDocumentMgr* | in | 直前に入力フォーカスを持っていたドキュメントマネージャーへのポインター。フォーカスを持っていたドキュメントが存在しない場合は NULL になります。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ITfThreadMgrEventSink::OnPushContext メソッド
| pic | ITfContext* | in | スタックに追加されたコンテキストへのポインター。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
ITfThreadMgrEventSink::OnPopContext メソッド
| pic | ITfContext* | in | スタックから削除されたコンテキストへのポインター。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ITfThreadMgrEventSink "{AA80E80E-2021-11D2-93E0-0060B067B86E}"
#usecom global ITfThreadMgrEventSink IID_ITfThreadMgrEventSink "{}"
#comfunc global ITfThreadMgrEventSink_OnInitDocumentMgr 3 sptr
#comfunc global ITfThreadMgrEventSink_OnUninitDocumentMgr 4 sptr
#comfunc global ITfThreadMgrEventSink_OnSetFocus 5 sptr,sptr
#comfunc global ITfThreadMgrEventSink_OnPushContext 6 sptr
#comfunc global ITfThreadMgrEventSink_OnPopContext 7 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。