WaitForMultipleObjects

指定したオブジェクトの 1 つまたはすべてがシグナル状態になるか、タイムアウト間隔が経過するまで待機する。

WaitForMultipleObjects nCount, lpHandles, bWaitAll, dwMilliseconds

nCount : [int] lpHandles が指す配列内のオブジェクトハンドル数。最大は MAXIMUM_WAIT_OBJECTS。0 にはできない。
lpHandles : [intptr] オブジェクトハンドルの配列。配列には異なる種類のオブジェクトのハンドルを含めることができるが、同じハンドルの複数コピーを含めてはならない。ハンドルには SYNCHRONIZE アクセス権が必要。
bWaitAll : [int] TRUE なら lpHandles 内のすべてのオブジェクトがシグナル状態になったときに戻る。FALSE なら 1 つでもシグナル状態になったときに戻る。後者の場合、戻り値は関数を戻らせたオブジェクトを示す。
dwMilliseconds : [int] タイムアウト間隔(ミリ秒単位)。0 以外なら指定オブジェクトがシグナル状態になるか時間が経過するまで待機する。0 ならシグナル状態でない場合即座に戻る。INFINITE ならシグナル状態になるまで戻らない。

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

解説

指定したオブジェクトの 1 つまたはすべてがシグナル状態になるか、タイムアウト間隔が経過するまで待機する。

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

[備考]
待機条件が満たされるかタイムアウトするまで呼び出し元スレッドは待機状態になる。bWaitAll が TRUE
の場合、すべてのオブジェクトの状態がシグナル状態にセットされるまで待機操作は完了しない。関数はすべてのオブジェクトの状態がシグナル状態になるまでオブジェクトの状態を変更しない。bWaitAll
が FALSE の場合、インデックス 0
から順にハンドルをチェックし、シグナル状態のオブジェクトが見つかると戻る。複数がシグナル状態になった場合、配列内の最初のインデックスを返す。MAXIMUM_WAIT_OBJECTS
を超えるハンドルを待機するには複数の方法がある。
(以下省略)

情報

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