HOOKPROC
コールバックシグネチャ
LRESULT HOOKPROC(
INT code,
WPARAM wParam,
LPARAM lParam
);パラメーター
| フィールド | 型 | 説明 |
|---|---|---|
| code | INT | |
| wParam | WPARAM | メッセージが現在のプロセスから送信されたかどうかを示します。現在のプロセスから送信された場合は 0 以外の値になり、それ以外の場合は NULL になります。 |
| lParam | LPARAM | メッセージの詳細を格納する CWPSTRUCT 構造体または CWPRETSTRUCT 構造体へのポインターです。どちらになるかは、SetWindowsHookEx 関数を呼び出したときに指定したフックの種類によって決まります。 - nCode [in]型: int フックプロシージャがメッセージを処理する必要があるかどうかを示します。nCode が HC_ACTION の場合、フックプロシージャはメッセージを処理する必要があります。nCode が 0 未満の場合、フックプロシージャはそれ以上処理を行わずにメッセージを CallNextHookEx function 関数へ渡し、CallNextHookEx が返した値を返す必要があります。 |
公式ドキュメント
SetWindowsHookEx 関数と共に使用される、アプリケーション定義またはライブラリー定義のコールバック関数です。システムは、SendMessage 関数が呼び出された後にこの関数を呼び出します。フックプロシージャはメッセージを調べることはできますが、変更することはできません。
HOOKPROC 型は、このコールバック関数へのポインターを定義します。CallWndRetProc は、アプリケーション定義またはライブラリー定義の関数名のプレースホルダーです。
戻り値
型: LRESULT
nCode が 0 未満の場合、フックプロシージャは CallNextHookEx function が返した値を返す必要があります。
nCode が 0 以上の場合は、CallNextHookEx function を呼び出し、その戻り値を返すことを強く推奨します。そうしないと、WH_CALLWNDPROCRET フックをインストールしている他のアプリケーションがフックの通知を受け取れず、その結果として正しく動作しなくなる可能性があります。フックプロシージャが CallNextHookEx を呼び出さない場合、戻り値は 0 にする必要があります。
解説(Remarks)
アプリケーションは、WH_CALLWNDPROC または WH_CALLWNDPROCRET のフックの種類と、フックプロシージャへのポインターを SetWindowsHookEx 関数の呼び出しで指定することにより、フックプロシージャをインストールします。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)