<Return[S]><Top>

SendNotifyMessage

Declare Function Api_SendNotifyMessage& Lib "user32" Alias "SendNotifyMessageA" (ByVal hWnd&, ByVal msg&, ByVal wParam&, lParam As Any)

Declare Function SendNotifyMessage Lib "user32" Alias "SendNotifyMessageA" (ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Any) As Long

指定されたメッセージを 1 つまたは複数のウィンドウへ送信する。指定されたウィンドウが、呼び出し側スレッドが作成したものであった場合、この関数はそのウィンドウのウィンドウプロシージャを直接呼び出し、そのウィンドウプロシージャがメッセージの処理を終えるまで制御を返さない。指定されたウィンドウが、ほかのスレッドが作成したものであった場合、この関数はそのウィンドウのウィンドウプロシージャへメッセージを渡し、即座に制御を返す。そして、そのウィンドウプロシージャがメッセージの処理を終えるのを待たない。

パラメータ
hWnd
    1 つのウィンドウのハンドルを指定する。このウィンドウのウィンドウプロシージャがメッセージを受信する。

    HWND_BROADCAST を指定すると、この関数は、システム内のすべてのトップレベルウィンドウ(親を持たないウィンドウ)へメッセージを  

    送信する。無効になっている所有されていないウィンドウ、不可視の所有されていないウィンドウ、オーバーラップされた(手前にほかのウィ

    ンドウがあって覆い隠されている)ウィンドウ、ポップアップウィンドウも送信先になる。子ウィンドウへはメッセージを送信しない。
Msg
    送信するべきメッセージを指定する。
wParam
    メッセージ特有の追加情報を指定する。
lParam
    メッセージ特有の追加情報を指定する。
 

戻り値
    関数が成功すると、0 以外の値が返る。
    関数が失敗すると、0 が返する。拡張エラー情報を取得するには、GetLastError 関数を使う。

解説
    非同期メッセージ関数(PostMessage、SendNotifyMessage、SendMessageCallback の各関数)を使って、WM_USER 未満のメッセー

    ジ(メッセージの値が 0x8000 未満)を送信する場合は、メッセージのパラメータでポインタを使うことはできない。もしポインタを使っている場

    合、その操作は失敗する。SendNotifyMessage 関数は、受信側スレッドがそのメッセージを処理する前に制御を返す。そのため、受信側

    スレッドがメッセージの処理を開始する前に、送信側スレッドはポインタが指すメモリを解放してしまう。
    HWND_BROADCAST フラグを使って通信を行う必要がある複数のアプリケーションは、アプリケーション間通信の専用メッセージを取得す

    る目的では、RegisterWindowMessage 関数を呼び出すべきである。