SendNotifyMessageW 関数 (winuser.h)

指定したメッセージをウィンドウまたはウィンドウに送信します。 呼び出し元のスレッドによってウィンドウが作成された場合、 SendNotifyMessage はウィンドウのウィンドウ プロシージャを呼び出し、ウィンドウ プロシージャがメッセージを処理するまで戻りません。 ウィンドウが別のスレッドによって作成された場合、 SendNotifyMessage は メッセージをウィンドウ プロシージャに渡し、すぐに返します。ウィンドウ プロシージャがメッセージの処理を完了するまで待機しません。

構文

BOOL SendNotifyMessageW(
  [in] HWND   hWnd,
  [in] UINT   Msg,
  [in] WPARAM wParam,
  [in] LPARAM lParam
);

パラメーター

[in] hWnd

型: HWND

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

[in] Msg

型: UINT

送信されるメッセージ。

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

[in] wParam

型: WPARAM

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

[in] lParam

型: LPARAM

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

戻り値

種類: BOOL

関数が成功すると、戻り値は 0 以外になります。

関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。

解説

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

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

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

注意

winuser.h ヘッダーは、SendNotifyMessage をエイリアスとして定義し、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-3 (Windows 10 バージョン 10.0.14393 で導入)

関連項目

概念

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

PostMessage

PostThreadMessage

リファレンス

RegisterWindowMessage

SendMessage

SendMessageCallback

SendNotifyMessage