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

ITfMessagePump

COM
IID8f1b8ad8-0b6b-4874-90c5-bd76011e8f7c継承元IUnknown自前メソッド開始 vtbl3

メソッド 4

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

vtbl 3 HRESULT PeekMessageA(MSG* pMsg, HWND hwnd, DWORD wMsgFilterMin, DWORD wMsgFilterMax, DWORD wRemoveMsg, BOOL* pfResult)
pMsgMSG*out取得したメッセージ情報を受け取る MSG 構造体へのポインタである (ANSI)。
hwndHWNDinメッセージを取得するウィンドウのハンドルを指定する。NULL を指定するとスレッド内の全ウィンドウが対象となる。
wMsgFilterMinDWORDin取得するメッセージの最小値を指定する。
wMsgFilterMaxDWORDin取得するメッセージの最大値を指定する。
wRemoveMsgDWORDinメッセージをキューから削除するかどうかの方法 (PM_REMOVE 等) を指定する。
pfResultBOOL*outメッセージが取得できた場合に TRUE を受け取る。
vtbl 4 HRESULT GetMessageA(MSG* pMsg, HWND hwnd, DWORD wMsgFilterMin, DWORD wMsgFilterMax, BOOL* pfResult)
pMsgMSG*out取得したメッセージ情報を受け取る MSG 構造体へのポインタである (ANSI)。
hwndHWNDinメッセージを取得するウィンドウのハンドルを指定する。NULL を指定するとスレッド内の全ウィンドウが対象となる。
wMsgFilterMinDWORDin取得するメッセージの最小値を指定する。
wMsgFilterMaxDWORDin取得するメッセージの最大値を指定する。
pfResultBOOL*outWM_QUIT 以外のメッセージを取得した場合は TRUE、WM_QUIT の場合は FALSE を受け取る。
vtbl 5 HRESULT PeekMessageW(MSG* pMsg, HWND hwnd, DWORD wMsgFilterMin, DWORD wMsgFilterMax, DWORD wRemoveMsg, BOOL* pfResult)
pMsgMSG*out取得したメッセージ情報を受け取る MSG 構造体へのポインタである (Unicode)。
hwndHWNDinメッセージを取得するウィンドウのハンドルを指定する。NULL を指定するとスレッド内の全ウィンドウが対象となる。
wMsgFilterMinDWORDin取得するメッセージの最小値を指定する。
wMsgFilterMaxDWORDin取得するメッセージの最大値を指定する。
wRemoveMsgDWORDinメッセージをキューから削除するかどうかの方法 (PM_REMOVE 等) を指定する。
pfResultBOOL*outメッセージが取得できた場合に TRUE を受け取る。
vtbl 6 HRESULT GetMessageW(MSG* pMsg, HWND hwnd, DWORD wMsgFilterMin, DWORD wMsgFilterMax, BOOL* pfResult)
pMsgMSG*out取得したメッセージ情報を受け取る MSG 構造体へのポインタである (Unicode)。
hwndHWNDinメッセージを取得するウィンドウのハンドルを指定する。NULL を指定するとスレッド内の全ウィンドウが対象となる。
wMsgFilterMinDWORDin取得するメッセージの最小値を指定する。
wMsgFilterMaxDWORDin取得するメッセージの最大値を指定する。
pfResultBOOL*outWM_QUIT 以外のメッセージを取得した場合は TRUE、WM_QUIT の場合は FALSE を受け取る。

HSP用 COM定義

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

出力引数:
#define global IID_ITfMessagePump "{8F1B8AD8-0B6B-4874-90C5-BD76011E8F7C}"
#usecom global ITfMessagePump IID_ITfMessagePump "{}"
#comfunc global ITfMessagePump_PeekMessageA  3 var,sptr,int,int,int,var
#comfunc global ITfMessagePump_GetMessageA   4 var,sptr,int,int,var
#comfunc global ITfMessagePump_PeekMessageW  5 var,sptr,int,int,int,var
#comfunc global ITfMessagePump_GetMessageW   6 var,sptr,int,int,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。