CallMsgFilterA 関数 (winuser.h)

指定したメッセージとフック コードを、 WH_SYSMSGFILTERおよびWH_MSGFILTER フックに関連付けられているフック プロシージャに渡します。 WH_SYSMSGFILTERまたはWH_MSGFILTERフック プロシージャは、ダイアログ ボックス、メッセージ ボックス、メニュー、またはスクロール バーのメッセージを調べ、必要に応じて変更する、アプリケーション定義のコールバック関数です。

構文

BOOL CallMsgFilterA(
  [in] LPMSG lpMsg,
  [in] int   nCode
);

パラメーター

[in] lpMsg

種類: LPMSG

フック プロシージャに渡されるメッセージを含む MSG 構造体へのポインター。

[in] nCode

型: int

メッセージの処理方法を決定するためにフック プロシージャによって使用されるアプリケーション定義コード。 このコードには、WH_SYSMSGFILTERおよびWH_MSGFILTERフックに関連付けられているシステム定義のフック コード ( MSGF_およびHC_ ) と同じ値 持つ必要があります。

戻り値

種類: BOOL

アプリケーションでメッセージをさらに処理する必要がある場合、戻り値は 0 です。

アプリケーションがメッセージをさらに処理しない場合、戻り値は 0 以外です。

解説

システムは CallMsgFilter を呼び出して、ダイアログ ボックス、メッセージ ボックス、メニュー、スクロール バーの内部処理中、またはユーザーが Alt + TAB キーの組み合わせを押して別のウィンドウをアクティブ化するときに、アプリケーションがメッセージのフローを調べて制御できるようにします。

SetWindowsHookEx 関数を使用して、このフック プロシージャをインストールします。

例については、「 WH_MSGFILTERフックとWH_SYSMSGFILTERフック」を参照してください。

注意

winuser.h ヘッダーは、CallMsgFilter をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winuser.h (Windows.h を含む)
Library User32.lib
[DLL] User32.dll
API セット ext-ms-win-ntuser-message-l1-1-0 (Windows 8 で導入)

関連項目

概念

フック

Msg

MessageProc

参照

SetWindowsHookEx

SysMsgProc