Description
SetWindowsHookExA/SetWindowsHookExW 関数で使用されるアプリケーション定義またはライブラリ定義のコールバック関数。 GetMessage または PeekMessageA/PeekMessageW 関数がアプリケーション メッセージ キューからメッセージを取得するたびに、この関数が呼び出されます。 取得したメッセージを呼び出し元に返す前に、システムはメッセージをフック・プロシージャーに渡します。
HOOKPROC 型は、このコールバック関数へのポインターを定義します。 GetMsgProc は、アプリケーション定義またはライブラリ定義関数名のプレースホルダーです。
LRESULT CALLBACK GetMsgProc(
_In_ int code,
_In_ WPARAM wParam,
_In_ LPARAM lParam
);
パラメーター
code [in]
型: int
フック・プロシージャーがメッセージを処理する必要があるかどうかを指定します。 コードがHC_ACTION場合、フック プロシージャはメッセージを処理する必要があります。 コードが 0 未満の場合、フック プロシージャは、それ以上処理せずに CallNextHookEx 関数にメッセージを渡す必要があり、CallNextHookEx によって返される値を返す必要があります。
wParam [in]
型: WPARAM
メッセージがキューから削除されたかどうかを指定します。 このパラメーターには、次のいずれかの値を指定できます。
| 価値 | 説明 |
|---|---|
| PM_NOREMOVE 0x0000 | メッセージはキューから削除されていません。 ( PeekMessage 関数を呼び出し、 PM_NOREMOVE フラグを指定するアプリケーション)。 |
| PM_REMOVE 0x0001 | メッセージがキューから削除されました。 ( GetMessage というアプリケーション、または peekMessage 関数を呼び出し、 PM_REMOVE フラグを指定します)。 |
lParam [in]
型: LPARAM
メッセージに関する詳細を含む MSG 構造体へのポインター。
返品ポリシー
コードが 0 未満の場合、フック プロシージャは CallNextHookEx によって返される値を返す必要があります。
コードが 0 以上の場合は、CallNextHookEx を呼び出し、返される値を返すように強くお勧めします。それ以外の場合、WH_GETMESSAGEフックがインストールされている他のアプリケーションはフック通知を受け取らず、結果として正しく動作しない可能性があります。 フック プロシージャが CallNextHookEx を呼び出さない場合、戻り値は 0 にする必要があります。
注釈
GetMsgProc フック プロシージャは、メッセージを調べたり変更したりできます。
フック プロシージャがコントロールをシステムに返した後、 GetMessage または PeekMessageA/PeekMessageW 関数は、メッセージを最初に呼び出したアプリケーションに変更と共に返します。
アプリケーションは、setWindowsHookExA/SetWindowsHookExW 関数の呼び出しで、WH_GETMESSAGEフックの種類とフック プロシージャへのポインターを指定して、このフック プロシージャをインストールします。