タイムアウト時間を指定してメッセージを指定のウィンドウに送る
Declare Function SendMessageTimeout Lib "user32.dll" Alias "SendMessageTimeoutA" _
(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long _
ByVal fuFlags As Long, ByVal uTimeout As Long, lpdwResult As Long) As Long
Declare Function SendMessageTimeout Lib "user32.dll" Alias "SendMessageTimeoutA" _
(ByVal hWnd As Integer, ByVal Msg As Integer, ByVal wParam As Integer, ByVal lParam As Integer _
ByVal fuFlags As Integer, ByVal uTimeout As Integer, lpdwResult As Integer) As Integer
LRESULT SendMessageTimeout(
HWND hWnd,
UINT Msg,
WPARAM wParam,
LPARAM lParam,
UINT fuFlags,
UINT uTimeout,
PDWORD_PTR lpdwResult
);
引数
hWnd
メッセージを受け取るウィンドウのハンドルMsg
HWND_BROADCAST(=&HFFFF&)のとき、すべてのトップレベルウィンドウに送る
メッセージwParam
同、パラメータlParam
同上fuFlags
メッセージの送り方を指定する定数の組み合わせuTimeout
タイムアウトの時間(ミリ秒)lpdwResult
メッセージの処理結果戻り値
正常終了のとき 0以外備考
エラーのとき 0
指定のウィンドウが異なるスレッドの場合、メッセージ処理が完了するかfuFlagsの定数
指定のタイムアウト時間を経過するまで関数は戻らない。指定のウィンドウが関数を呼び出したスレッドと
同じ場合は、タイムアウト時間を無視し、ウィンドウプロシージャに直接メッセージを送る。
SMTO_ABORTIFHUNG = &H2 メッセージを受け取ったプロセスがハング状態に見えるとき
タイム時間を待たずに戻る
SMTO_BLOCK = &H1 関数が戻るまで別のメッセージを処理しない
SMTO_NORMAL = &H0 関数が戻るのを待っている間も別のメッセージを処理可能にする