次の方法で共有


SendMessageCallbackW 関数 (winuser.h)

指定したメッセージをウィンドウまたはウィンドウに送信します。 指定したウィンドウのウィンドウ プロシージャを呼び出し、ウィンドウが別のスレッドに属している場合は直ちに返されます。 ウィンドウ プロシージャがメッセージを処理した後、システムは指定されたコールバック関数を呼び出し、メッセージ処理の結果とアプリケーション定義値をコールバック関数に渡します。

構文

BOOL SendMessageCallbackW(
  [in] HWND          hWnd,
  [in] UINT          Msg,
  [in] WPARAM        wParam,
  [in] LPARAM        lParam,
  [in] SENDASYNCPROC lpResultCallBack,
  [in] ULONG_PTR     dwData
);

パラメーター

[in] hWnd

型: HWND

ウィンドウ プロシージャがメッセージを受信するウィンドウへのハンドル。 このパラメーターが HWND_BROADCAST ((HWND)0xffff) の場合、メッセージは、無効または非表示の未所有ウィンドウ、重複ウィンドウ、ポップアップ ウィンドウなど、システム内のすべての最上位ウィンドウに送信されます。ただし、メッセージは子ウィンドウに送信されません。

[in] Msg

型: UINT

送信するメッセージ。

システム提供のメッセージの一覧については、「System-Defined メッセージ」を参照してください。

[in] wParam

型: WPARAM

追加のメッセージ固有の情報。

[in] lParam

型: LPARAM

追加のメッセージ固有の情報。

[in] lpResultCallBack

型: SENDASYNCPROC

ウィンドウ プロシージャがメッセージを処理した後にシステムが呼び出すコールバック関数へのポインター。 詳細については、SendAsyncProcを参照してください。

hWnd HWND_BROADCAST ((HWND)0xffff) の場合、システムは最上位ウィンドウごとに SendAsyncProc コールバック関数を 1 回呼び出します。

[in] dwData

型: ULONG_PTR

lpCallBack パラメーターによって指されるコールバック関数に送信されるアプリケーション定義の値。

戻り値

型: BOOL

関数が成功した場合、戻り値は 0 以外です。

関数が失敗した場合、戻り値は 0 です。 拡張エラー情報を取得するには、GetLastError呼び出します。

備考

ターゲット ウィンドウが呼び出し元と同じスレッドに属している場合、ウィンドウ プロシージャは同期的に呼び出され、ウィンドウ プロシージャが戻った直後にコールバック関数が呼び出されます。 ターゲット ウィンドウが呼び出し元とは別のスレッドに属している場合、コールバック関数は、SendMessageCallback を呼び出したスレッドが GetMessage、PeekMessage、または WaitMessage呼び出す場合にのみ呼び出されます。

以下の範囲のメッセージを非同期メッセージ関数 (PostMessage WM_USERSendNotifyMessage、および SendMessageCallback) に送信する場合、そのメッセージ パラメーターにはポインターを含めることはできません。 それ以外の場合、操作は失敗します。 関数は、受信スレッドがメッセージを処理する機会を得る前に戻り、送信者は使用される前にメモリを解放します。

HWND_BROADCAST を使用して通信する必要があるアプリケーションでは、RegisterWindowMessage 関数を使用して、アプリケーション間通信用の一意のメッセージを取得する必要があります。

システムは、システム メッセージ (0 ~ (WM_USER-1) の範囲のメッセージ) に対してのみマーシャリングを実行します。 他のメッセージ (>= WM_USER) を別のプロセスに送信するには、カスタム マーシャリングを実行する必要があります。

手記

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

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされる最小サーバー Windows 2000 Server [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー winuser.h (Windows.h を含む)
ライブラリ User32.lib
DLL User32.dll
API セットの ext-ms-win-ntuser-message-l1-1-0 (Windows 8 で導入)

関連項目

概念

メッセージとメッセージ キューの

PostMessage を する

リファレンス

RegisterWindowMessage の

SendAsyncProc の

SendMessageCallback の

SendNotifyMessage を する