SENDASYNCPROC
コールバックシグネチャ
void SENDASYNCPROC(
HWND param0,
DWORD param1,
UINT_PTR param2,
LRESULT param3
);パラメーター
| フィールド | 型 | 説明 |
|---|---|---|
| param0 | HWND | メッセージを受け取ったウィンドウプロシージャを持つウィンドウへのハンドルです。このパラメーターは通常 hWnd という名前になります。 SendMessageCallback 関数が hWnd パラメーターに HWND_BROADCAST を指定して呼び出された場合、システムは各トップレベルウィンドウについて SendAsyncProc 関数を 1 回ずつ呼び出します。 |
| param1 | DWORD | メッセージです。このパラメーターは通常 uMsg という名前になります。 |
| param2 | UINT_PTR | SendMessageCallback 関数から渡された、アプリケーション定義の値です。このパラメーターは通常 dwData という名前になります。 |
| param3 | LRESULT | メッセージ処理の結果です。この値はメッセージによって異なります。このパラメーターは通常 lResult という名前になります。 |
公式ドキュメント
SendMessageCallback 関数と共に使用される、アプリケーション定義のコールバック関数です。システムは、メッセージを宛先のウィンドウプロシージャに渡した後、そのメッセージをこのコールバック関数に渡します。SENDASYNCPROC 型は、このコールバック関数へのポインターを定義します。SendAsyncProc は、アプリケーション定義の関数名のプレースホルダーです。
解説(Remarks)
これらのパラメーターはヘッダー内で名前を持たずに定義されています: typedef VOID (CALLBACK* SENDASYNCPROC)(HWND, UINT, ULONG_PTR, LRESULT);。そのため、構文ブロックでは unnamedParam1 ~ unnamedParam4 として記載されています。アプリ内ではこれらのパラメーターに任意の名前を付けられますが、通常はパラメーターの説明に示した名前が使われます。
SendAsyncProc アプリケーション定義のコールバック関数は、SENDASYNCPROC ポインターを SendMessageCallback 関数に渡すことでインストールします。
このコールバック関数は、SendMessageCallback を呼び出したスレッドが GetMessage、PeekMessage、または WaitMessage を呼び出したときにのみ呼び出されます。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)