SendMessageCallbackA 関数 (winuser.h)
指定したメッセージをウィンドウまたはウィンドウに送信します。 指定したウィンドウのウィンドウ プロシージャを呼び出し、ウィンドウが別のスレッドに属している場合は直ちに を返します。 ウィンドウ プロシージャがメッセージを処理した後、システムは指定されたコールバック関数を呼び出し、メッセージ処理の結果とアプリケーション定義値をコールバック関数に渡します。
構文
BOOL SendMessageCallbackA(
[in] HWND hWnd,
[in] UINT Msg,
[in] WPARAM wParam,
[in] LPARAM lParam,
[in] SENDASYNCPROC lpResultCallBack,
[in] ULONG_PTR dwData
);
パラメーター
[in] hWnd
型: HWND
ウィンドウ プロシージャがメッセージを受信するウィンドウのハンドル。 このパラメーターが ((HWND)0xffff ) HWND_BROADCAST の場合、メッセージは、無効または非表示の未所有ウィンドウ、重複したウィンドウ、ポップアップ ウィンドウなど、システム内のすべての最上位ウィンドウに送信されます。ただし、メッセージは子ウィンドウに送信されません。
[in] Msg
型: UINT
送信されるメッセージ。
システム提供のメッセージの一覧については、「 システム定義メッセージ」を参照してください。
[in] wParam
型: WPARAM
追加のメッセージ固有情報。
[in] lParam
型: LPARAM
追加のメッセージ固有情報。
[in] lpResultCallBack
種類: SENDASYNCPROC
ウィンドウ プロシージャがメッセージを処理した後にシステムが呼び出すコールバック関数へのポインター。 詳細については、「 SendAsyncProc」を参照してください。
hWnd が ((HWND)0xffff) HWND_BROADCASTの場合、システムは最上位ウィンドウごとに SendAsyncProc コールバック関数を 1 回呼び出します。
[in] dwData
種類: ULONG_PTR
lpCallBack パラメーターによって指されるコールバック関数に送信されるアプリケーション定義値。
戻り値
種類: BOOL
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
ターゲット ウィンドウが呼び出し元と同じスレッドに属している場合、ウィンドウ プロシージャは同期的に呼び出され、ウィンドウ プロシージャが返された直後にコールバック関数が呼び出されます。 ターゲット ウィンドウが呼び出し元とは別のスレッドに属している場合、コールバック関数は、 SendMessageCallback を呼び出したスレッドが GetMessage、 PeekMessage、または WaitMessage も呼び出す場合にのみ呼び出されます。
以下の範囲のメッセージを非同期メッセージ関数 (PostMessage、SendNotifyMessage、SendMessageCallback) にWM_USERする場合、そのメッセージ パラメーターにポインターを含めることはできません。 そうでない場合、操作は失敗します。 関数は、受信スレッドがメッセージを処理する機会を得る前に を返し、送信側は使用される前にメモリを解放します。
HWND_BROADCASTを使用して通信する必要があるアプリケーションでは、RegisterWindowMessage 関数を使用して、アプリケーション間通信用の一意のメッセージを取得する必要があります。
システムは、システム メッセージ (0 ~ (WM_USER-1) の範囲) に対してのみマーシャリングを実行します。 他のメッセージ (これらの >= WM_USER) を別のプロセスに送信するには、カスタム マーシャリングを実行する必要があります。
注意
winuser.h ヘッダーは、SendMessageCallback をエイリアスとして定義し、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 で導入) |
関連項目
概念
リファレンス