JournalRecordProc 関数

説明

SetWindowsHookEx 関数で使用されるアプリケーション定義またはライブラリ定義のコールバック関数。 この関数は、システムがシステム・メッセージ待ち行列から除去するメッセージを記録します。 後で、アプリケーションは JournalPlaybackProc フック プロシージャを使用してメッセージを再生できます。

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

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

パラメーター

code [in]

型: int

メッセージの処理方法を指定します。 コードが 0 未満の場合、フック プロシージャは、それ以上の処理を行わずにメッセージを CallNextHookEx 関数に渡す必要があり、CallNextHookEx によって返される値を返す必要があります。 このパラメーターには、次の値のいずれかを指定できます。

説明
HC_ACTION 0 lParam パラメーターは、システム キューから削除されたメッセージに関する情報を含む EVENTMSG 構造体へのポインターです。 フック プロシージャでは、構造体の内容をバッファーまたはファイルにコピーして記録する必要があります。
HC_SYSMODALOFF 5 システム モーダル ダイアログ ボックスが破棄されました。 フック・プロシージャーは記録を再開する必要があります。
HC_SYSMODALON 4 システム モーダル ダイアログ ボックスが表示されています。 ダイアログ ボックスが破棄されるまで、フック プロシージャは記録を停止する必要があります。

wParam

種類: WPARAM

このパラメーターは使用されません。

lParam [in]

型: LPARAM

記録するメッセージを含む EVENTMSG 構造体へのポインター。

戻り値

型: LRESULT

戻り値は無視されます。

解説

JournalRecordProc フック プロシージャは、メッセージをコピーする必要がありますが、変更することはできません。 フック・プロシージャーがシステムに制御を戻した後も、メッセージは処理され続けます。

SetWindowsHookEx 関数の呼び出しで、WH_JOURNALRECORD型とフック プロシージャへのポインターを指定して、JournalRecordProc フック プロシージャをインストールします。

JournalRecordProc フック プロシージャは、ダイナミック リンク ライブラリに存在する必要はありません。 JournalRecordProc フック プロシージャは、アプリケーション自体で使用できます。

他のほとんどのグローバル フック プロシージャとは異なり、 JournalRecordProc および JournalPlaybackProc フック プロシージャは常に、フックを設定するスレッドのコンテキストで呼び出されます。

JournalRecordProc フック プロシージャをインストールしたアプリケーションは、VK_CANCEL仮想キー コード (ほとんどのキーボードで Ctrl + BREAK キーの組み合わせとして実装されます) に対してwatchする必要があります。 この仮想キー コードは、ユーザーがジャーナル記録を停止することを望むシグナルとしてアプリケーションによって解釈される必要があります。 アプリケーションは、記録シーケンスを終了し、 JournalRecordProc フック プロシージャを削除して応答する必要があります。 削除は重要です。 これにより、ジャーナル処理アプリケーションがフック・プロシージャー内にぶら下がってシステムをロックするのを防ぐことができます。

この役割は、ジャーンの記録を停止するシグナルとして、Ctrl + BREAK キーの組み合わせを記録できないことを意味します。 Ctrl + C キーの組み合わせにはジャーナリング シグナルなどの役割がないため、記録できます。 記録できない他の 2 つのキーの組み合わせがあります。Ctrl + Esc キーと Ctrl + Alt + DEL キーです。 これら 2 つのキーの組み合わせにより、システムはすべてのジャーナル処理 (レコードまたは再生) を停止し、すべてのジャーナリング・フックを除去し、 WM_CANCELJOURNAL メッセージをジャーナル処理アプリケーションにポストします。

関連項目

CallNextHookEx

EVENTMSG

JournalPlaybackProc

SetWindowsHookEx

WM_CANCELJOURNAL

フック