MouseProc 関数
SetWindowsHookExA SetWindowsHookExW関数で使用されるアプリケーション定義またはライブラリ定義のコールバック関数。/ アプリケーションが GetMessage または PeekMessageA/PeekMessageW 関数を呼び出し、処理するマウス メッセージがある場合は常に、この関数が呼び出されます。
HOOKPROC 型は、このコールバック関数へのポインターを定義します。 MouseProc は、アプリケーション定義またはライブラリ定義の関数名のプレースホルダーです。
LRESULT CALLBACK MouseProc(
_In_ int nCode,
_In_ WPARAM wParam,
_In_ LPARAM lParam
);
型: int
フック プロシージャがメッセージの処理方法を決定するために使用するコード。
nCode が 0 未満の場合、フック プロシージャは、それ以上の処理を行わずに CallNextHookEx 関数にメッセージを渡す必要があり、CallNextHookEx によって返される値を返す必要があります。
このパラメーターには、次の値のいずれかを指定できます。
値 | 説明 |
---|---|
HC_ACTION 0 | wParam パラメーターと lParam パラメーターには、マウス メッセージに関する情報が含まれています。 |
HC_NOREMOVE 3 | wParam パラメーターと lParam パラメーターにはマウス メッセージに関する情報が含まれており、マウス メッセージはメッセージ キューから削除されていません。 ( PeekMessage 関数を呼び出し、 PM_NOREMOVE フラグを指定するアプリケーション)。 |
型: WPARAM
マウス メッセージの識別子。
型: LPARAM
MOUSEHOOKSTRUCT 構造体へのポインター。
型: LRESULT
nCode が 0 未満の場合、フック プロシージャは CallNextHookEx によって返される値を返す必要があります。
nCode が 0 以上で、フック プロシージャがメッセージを処理しなかった場合は、CallNextHookEx を呼び出し、返される値を返すよう強くお勧めします。そうしないと、WH_MOUSEフックがインストールされている他のアプリケーションはフック通知を受け取らず、その結果として正しく動作しない可能性があります。
フック プロシージャがメッセージを処理した場合、システムがメッセージをターゲット ウィンドウ プロシージャに渡さないように、0 以外の値を返す可能性があります。
アプリケーションは、setWindowsHookExA SetWindowsHookExW関数の呼び出しで、WH_MOUSEフックの種類とフック プロシージャへのポインターを指定して、フック プロシージャをインストールします。/
フック プロシージャは 、WH_JOURNALPLAYBACK コールバック関数をインストールしないでください。
このフックは、インストールしたスレッドのコンテキストで呼び出される場合があります。 呼び出しは、フックをインストールしたスレッドにメッセージを送信することによって行われます。 したがって、フックをインストールしたスレッドにはメッセージ ループが必要です。