SendMessageTimeout

機能
タイムアウト時間を指定してメッセージを指定のウィンドウに送る
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

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