Win32 API 日本語リファレンス
ホームUI.TextServices › ITfKeystrokeMgr

ITfKeystrokeMgr

COM
IIDaa80e7f0-2021-11d2-93e0-0060b067b86e継承元IUnknown自前メソッド開始 vtbl3

メソッド 14

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT AdviseKeyEventSink(DWORD tid, ITfKeyEventSink* pSink, BOOL fForeground)
tidDWORDinシンクを登録するクライアントのクライアント識別子 (TfClientId) を指定する。
pSinkITfKeyEventSink*in登録するキーイベントシンク ITfKeyEventSink へのポインタである。
fForegroundBOOLinフォアグラウンドのキーイベントシンクとして登録する場合は TRUE を指定する。
vtbl 4 HRESULT UnadviseKeyEventSink(DWORD tid)
tidDWORDin登録を解除するキーイベントシンクのクライアント識別子 (TfClientId) を指定する。
vtbl 5 HRESULT GetForeground(GUID* pclsid)
pclsidGUID*out現在フォアグラウンドのテキストサービスのクラス識別子 (CLSID) を受け取る。
vtbl 6 HRESULT TestKeyDown(WPARAM wParam, LPARAM lParam, BOOL* pfEaten)
wParamWPARAMinキーダウンメッセージの WPARAM (仮想キーコード) を指定する。
lParamLPARAMinキーダウンメッセージの LPARAM (キーの状態情報) を指定する。
pfEatenBOOL*outテキストサービスがそのキーを処理する (消費する) 場合に TRUE を受け取る。
vtbl 7 HRESULT TestKeyUp(WPARAM wParam, LPARAM lParam, BOOL* pfEaten)
wParamWPARAMinキーアップメッセージの WPARAM (仮想キーコード) を指定する。
lParamLPARAMinキーアップメッセージの LPARAM (キーの状態情報) を指定する。
pfEatenBOOL*outテキストサービスがそのキーを処理する (消費する) 場合に TRUE を受け取る。
vtbl 8 HRESULT KeyDown(WPARAM wParam, LPARAM lParam, BOOL* pfEaten)
wParamWPARAMinキーダウンメッセージの WPARAM (仮想キーコード) を指定する。
lParamLPARAMinキーダウンメッセージの LPARAM (キーの状態情報) を指定する。
pfEatenBOOL*outテキストサービスがそのキーを処理した (消費した) 場合に TRUE を受け取る。
vtbl 9 HRESULT KeyUp(WPARAM wParam, LPARAM lParam, BOOL* pfEaten)
wParamWPARAMinキーアップメッセージの WPARAM (仮想キーコード) を指定する。
lParamLPARAMinキーアップメッセージの LPARAM (キーの状態情報) を指定する。
pfEatenBOOL*outテキストサービスがそのキーを処理した (消費した) 場合に TRUE を受け取る。
vtbl 10 HRESULT GetPreservedKey(ITfContext* pic, TF_PRESERVEDKEY* pprekey, GUID* pguid)
picITfContext*in対象とするコンテキスト ITfContext へのポインタである。
pprekeyTF_PRESERVEDKEY*in問い合わせるキーの組み合わせを記述する TF_PRESERVEDKEY 構造体へのポインタである。
pguidGUID*out該当する予約済みキーを識別する GUID を受け取る。
vtbl 11 HRESULT IsPreservedKey(GUID* rguid, TF_PRESERVEDKEY* pprekey, BOOL* pfRegistered)
rguidGUID*in予約済みキーを識別する GUID へのポインタである。
pprekeyTF_PRESERVEDKEY*in問い合わせるキーの組み合わせを記述する TF_PRESERVEDKEY 構造体へのポインタである。
pfRegisteredBOOL*out指定したキーが予約済みとして登録されている場合に TRUE を受け取る。
vtbl 12 HRESULT PreserveKey(DWORD tid, GUID* rguid, TF_PRESERVEDKEY* prekey, LPWSTR pchDesc, DWORD cchDesc)
tidDWORDin予約を登録するクライアントのクライアント識別子 (TfClientId) を指定する。
rguidGUID*in予約済みキーを識別する GUID へのポインタである。
prekeyTF_PRESERVEDKEY*in予約するキーの組み合わせを記述する TF_PRESERVEDKEY 構造体へのポインタである。
pchDescLPWSTRin予約済みキーの説明文字列へのポインタである。
cchDescDWORDin説明文字列の文字数を指定する。
vtbl 13 HRESULT UnpreserveKey(GUID* rguid, TF_PRESERVEDKEY* pprekey)
rguidGUID*in予約を解除するキーを識別する GUID へのポインタである。
pprekeyTF_PRESERVEDKEY*in予約を解除するキーの組み合わせを記述する TF_PRESERVEDKEY 構造体へのポインタである。
vtbl 14 HRESULT SetPreservedKeyDescription(GUID* rguid, LPWSTR pchDesc, DWORD cchDesc)
rguidGUID*in説明を設定する予約済みキーを識別する GUID へのポインタである。
pchDescLPWSTRin設定する説明文字列へのポインタである。
cchDescDWORDin説明文字列の文字数を指定する。
vtbl 15 HRESULT GetPreservedKeyDescription(GUID* rguid, LPWSTR* pbstrDesc)
rguidGUID*in説明を取得する予約済みキーを識別する GUID へのポインタである。
pbstrDescLPWSTR*out予約済みキーの説明文字列を受け取る。呼び出し側が SysFreeString で解放する必要がある。
vtbl 16 HRESULT SimulatePreservedKey(ITfContext* pic, GUID* rguid, BOOL* pfEaten)
picITfContext*in操作対象とするコンテキスト ITfContext へのポインタである。
rguidGUID*inシミュレートする予約済みキーを識別する GUID へのポインタである。
pfEatenBOOL*outキーが処理された (消費された) 場合に TRUE を受け取る。

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_ITfKeystrokeMgr "{AA80E7F0-2021-11D2-93E0-0060B067B86E}"
#usecom global ITfKeystrokeMgr IID_ITfKeystrokeMgr "{}"
#comfunc global ITfKeystrokeMgr_AdviseKeyEventSink          3 int,sptr,int
#comfunc global ITfKeystrokeMgr_UnadviseKeyEventSink        4 int
#comfunc global ITfKeystrokeMgr_GetForeground               5 var
#comfunc global ITfKeystrokeMgr_TestKeyDown                 6 sptr,sptr,var
#comfunc global ITfKeystrokeMgr_TestKeyUp                   7 sptr,sptr,var
#comfunc global ITfKeystrokeMgr_KeyDown                     8 sptr,sptr,var
#comfunc global ITfKeystrokeMgr_KeyUp                       9 sptr,sptr,var
#comfunc global ITfKeystrokeMgr_GetPreservedKey             10 sptr,var,var
#comfunc global ITfKeystrokeMgr_IsPreservedKey              11 var,var,var
#comfunc global ITfKeystrokeMgr_PreserveKey                 12 int,var,var,wstr,int
#comfunc global ITfKeystrokeMgr_UnpreserveKey               13 var,var
#comfunc global ITfKeystrokeMgr_SetPreservedKeyDescription  14 var,wstr,int
#comfunc global ITfKeystrokeMgr_GetPreservedKeyDescription  15 var,var
#comfunc global ITfKeystrokeMgr_SimulatePreservedKey        16 sptr,var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。