指定されたメッセージをウィンドウに送信します。この関数は、指定したウィンドウのウィンドウプロシージャが処理を完了するか、指定されたタイムアウト時間が経過するまで制御を返しません。
LRESULT SendMessageTimeoutA( HWND hWnd, // window handle UINT Msg, // message code WPARAM wParam, // wParam parameter LPARAM lParam, // lParam parameter UINT fuFlags, // message code UINT uTimeout, // wParam parameter PDWORD_PTR pdwResult // lParam parameter );
USER32.DLL
メッセージを受け取るウィンドウのハンドルを指定します。
0xFFFF (HWND_BROADCAST) を指定すると、システム上のすべてのトップレベルウィンドウにポストされます。これには、無効あるいは不可視の非所有ウィンドウ、オーバーラップウィンドウ、ポップアップウィンドウも含まれます。子ウィンドウにはメッセージは送信されません。
送信されるメッセージコードを指定します。
追加のメッセージ固有情報(ウィンドウプロシージャのwParamパラメータ)を指定します。
Windows 95/98/Me: この値は16ビット値に制限されます。
追加のメッセージ固有情報(ウィンドウプロシージャのlParamパラメータ)を指定します。
どのようにメッセージを送信するかを指定します。以下の値の組み合わせを指定することができます。
関数が制御を返すのを待機している間、呼び出しスレッドが他の要求に対する処理を行うことができるようにします。
関数が制御を返すのを待機している間、他の要求に対する処理が行われないようにします。
受け取り側スレッドが応答しない状態である(ハングアップしている)と思われる場合には、タイムアウト時間が経過するのを待つことなく制御を返します。
Windows 2000/XP: 受け取り側スレッドが応答を中断した場合に、タイムアウト時間が経過しても制御を返しません。
処理の継続時間をミリ秒単位で指定します。メッセージがブロードキャストメッセージである場合には、それぞれのウィンドウに対してタイムアウト時間が適用されます。例えば、メッセージ処理を行うことのできない3つのトップレベルウィンドウが存在している状態で5秒のタイムアウト時間を指定した場合、15秒の遅延が生じる可能性があります。
メッセージ処理の結果を受け取る変数のアドレスを指定します。受け取る値は送信されたメッセージに依存します。
メッセージ処理の結果(ウィンドウプロシージャの戻り値)が返ります。戻り値は送られたメッセージによって異なります。
この関数は、指定されたウィンドウのウィンドウプロシージャを呼び出します。指定されたウィンドウが異なるスレッドに属する場合には、ウィンドウプロシージャがメッセージ処理を終了するか、指定されたタイムアウト時間が経過するまで制御を返しません。指定されたウィンドウが呼び出しスレッドと同じスレッドキューに属する場合には、直接ウィンドウプロシージャが呼び出されます。この場合にはタイムアウト時間は無視されます。
この関数は、対象ウィンドウが属するスレッドがGetMessage関数またはそれに類する関数を5秒間呼び出していない場合に、そのスレッドが応答しない状態であると判断します。
システムは、システムメッセージ(0から までの範囲)に対してマーシャリングを行います。それ以外のメッセージ( 以降)を別プロセスに送信する場合には、カスタムマーシャリングを行う必要があります。
Windows 95 以降 / Windows NT 3.1 以降