MsgWaitForMultipleObjects

指定オブジェクトのうちの 1 つまたはすべてがシグナル状態になるか、タイムアウト間隔が経過するまで待機する。オブジェクトには入力イベントオブジェクトを含めることができる。

MsgWaitForMultipleObjects nCount, pHandles, fWaitAll, dwMilliseconds, dwWakeMask

nCount : [int] pHandles が指す配列内のオブジェクトハンドル数。最大は MAXIMUM_WAIT_OBJECTS - 1。0 の場合、入力イベントのみを待機する。
pHandles : [intptr] オブジェクトハンドルの配列。配列には異なる種類のオブジェクトハンドルを含められる。同じハンドルを複数含めてはならない。
fWaitAll : [int] TRUE なら、pHandles 内のすべてのオブジェクトがシグナル状態になり入力イベントを受信したときに戻る。FALSE なら、いずれか 1 つがシグナル状態になるか入力イベントを受信したときに戻る。
dwMilliseconds : [int] タイムアウト間隔(ミリ秒単位)。非ゼロを指定すると、指定オブジェクトがシグナル状態になるかタイムアウトまで待機する。0 の場合、シグナル状態でなくても待機状態に入らず即座に戻る。INFINITE の場合、シグナル状態になったときのみ戻る。
dwWakeMask : [int] 入力イベントオブジェクトハンドルがオブジェクトハンドル配列に追加される入力種別。

(プラグイン / モジュール : user32.dll)

解説

指定オブジェクトのうちの 1
つまたはすべてがシグナル状態になるか、タイムアウト間隔が経過するまで待機する。オブジェクトには入力イベントオブジェクトを含めることができる。

[戻り値]
関数が成功した場合、戻り値は関数を戻らせたイベントを示す。
(以下省略)

[備考]
MsgWaitForMultipleObjects 関数は待機基準が満たされたかを判定する。bWaitAll が TRUE
の場合、すべてのオブジェクトがシグナル状態になり入力イベントを受信するまで待機が完了しない。そのため、ウィンドウを作成するスレッドでは
bWaitAll を TRUE にしないこと。

情報

プラグイン / モジュールuser32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の user32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_user32_gen2.hs