GetMsgProc 関数

-description

SetWindowsHookExA/SetWindowsHookExW 関数で使われる、アプリケーション定義またはライブラリ定義のコールバック関数。 GetMessage または PeekMessageA/PeekMessageW 関数がアプリケーション メッセージ キューからメッセージを取得すると常に、システムはこの関数を呼び出します。 システムは、取得したメッセージを呼び出し元に返す前に、メッセージをフック プロシージャに渡します。

このコールバック関数へのポインターは、HOOKPROC 型で定義されています。 GetMsgProc は、アプリケーション定義またはライブラリ定義の関数名のプレースホルダーです。

LRESULT CALLBACK GetMsgProc(
  _In_ int    code,
  _In_ WPARAM wParam,
  _In_ LPARAM lParam
);

パラメータ

code [in]

型: int

フック プロシージャがメッセージを処理する必要があるかどうかを指定します。 codeHC_ACTION の場合、フック プロシージャはメッセージを処理する必要があります。 code が 0 未満の場合、フック プロシージャは、それ以上の処理を行わずにメッセージを CallNextHookEx 関数に渡す必要があり、CallNextHookEx から返された値を返す必要があります。

wParam [in]

型: WPARAM

メッセージがキューから削除されたかどうかを指定します。 このパラメーターには、次の値のいずれかを指定できます。

意味
PM_NOREMOVE 0x0000 メッセージはキューから削除されていません。 (アプリケーションは、PM_NOREMOVE フラグを指定して PeekMessage 関数を呼び出しました)。
PM_REMOVE 0x0001 メッセージはキューから削除されています。 (アプリケーションは、GetMessage を呼び出したか、または PM_REMOVE フラグを指定して PeekMessage 関数を呼び出しました)。

lParam [in]

型: LPARAM

メッセージに関する詳細を含む MSG 構造体へのポインター。

-returns

code が 0 未満の場合、フック プロシージャは CallNextHookEx によって返された値を返す必要があります。

code が 0 以上の場合は、CallNextHookEx を呼び出し、それによって返される値を返すことを強くお勧めします。そうしないと、WH_GETMESSAGE フックをインストールしている他のアプリケーションがフック通知を受け取らず、結果として正しく動作しない可能性があります。 フック プロシージャが CallNextHookEx を呼び出さない場合は、戻り値を 0 にする必要があります。

-remarks

GetMsgProc フック プロシージャでは、メッセージを調べたり変更したりできます。

フック プロシージャが制御をシステムに返した後、GetMessage または PeekMessageA/PeekMessageW 関数は、メッセージとすべての変更を、最初にそれを呼び出したアプリケーションに返します。

アプリケーションは、SetWindowsHookExA/SetWindowsHookExW 関数の呼び出しで、WH_GETMESSAGE フックの種類とフック プロシージャへのポインターを指定して、このフック プロシージャをインストールします。

関連項目

CallNextHookEx

GetMessage

MSG

PeekMessage

SetWindowsHookEx

フック