パラメータ
nCount
pHandles が指す配列で指定するオブジェクトハンドルの数を指定する。
オブジェクトハンドルの最大数は MAXIMUM_WAIT_OBJECTS - 1 である。
pHandles
オブジェクトハンドルの配列へのポインタを指定する。種類の異なるオブジェクトを同時に指定することができる。
Windows NT:ハンドルには SYNCHRONIZE アクセス権が必要である。
Windows 95:DuplicateHandle
で作成した複製とそのオリジナルのハンドルを同時に指定することはできない。
fWaitAll
待機方法を指定する。TRUE を指定すると、入力イベントを含む、pHandles
が指す配列に含まれるすべてのオブジェクトがシグナル状態に
なったときに制御が戻る。FALSE を指定すると、いずれか 1 つのオブジェクトがシグナル状態になったときに制御が戻る。
FALSE を指定した場合は、どのオブジェクトの状態によって制御が戻ったかが戻り値によって示される。
dwMilliseconds
タイムアウト時間をミリ秒単位で指定する。この時間が経過すると、fWaitAll または dwWakeMask
で指定する基準を満たしていなくても制
御が戻る。dwMilliseconds に 0 を指定すると、指定したオブジェクトの状態がテストされた後、ただちに制御が戻る。
INFINITE を指定すると、指定した基準が満たされるまで制御が戻らない。
dwWakeMask
オブジェクトハンドルの配列に加えられる入力イベントオブジェクトの種類を指定する。次の定数を組み合わせて指定する。
定数
|
意味
|
QS_ALLEVENTS
|
入力メッセージ、WM_TIMER メッセージ、WM_PAINT メッセージ、WM_HOTKEY
メッセージ、ポストされたメッセージのいずれか
|
QS_ALLINPUT |
すべてのメッセージ |
QS_ALLPOSTMESSAGE |
ポストされたメッセージ(この表に示すメッセージを除く) |
QS_HOTKEY WM_HOTKEY |
メッセージ |
QS_INPUT |
入力メッセージ |
QS_KEY WM_KEYUP
|
メッセージ、WM_KEYDOWN メッセージ、WM_SYSKEYUP メッセージ、
WM_SYSKEYDOWN メッセージのいずれか
|
QS_MOUSE WM_MOUSEMOVE
|
メッセージまたはマウスボタンメッセージ
(WM_LBUTTONUP、WM_RBUTTONDOWN など)
|
QS_MOUSEBUTTON |
マウスボタンメッセージ(WM_LBUTTONUP、WM_RBUTTONDOWN など) |
QS_MOUSEMOVE WM_MOUSEMOVE |
メッセージ |
QS_PAINT WM_PAINT |
メッセージ |
QS_POSTMESSAGE |
ポストされたメッセージ(この表に示すメッセージを除く) |
QS_SENDMESSAGE |
別のスレッドまたはアプリケーションが送信したメッセージ |
QS_TIMER WM_TIMER |
メッセージ |
戻り値
関数が成功すると、関数が制御を戻す条件を満たしたイベントを示す値が返る。成功時の戻り値は、次のいずれかになる。
WAIT_OBJECT_0 〜 (WAIT_OBJECT_0 + nCount - 1)
|
|
fWaitAll に TRUE を指定した場合は、指定したすべてのオブジェクトがシグナル状態になっている。
fWaitAll に FALSE を指定した場合は、戻り値から WAIT_OBJECT_0 を引いた値が、関数が制御を戻す条件を
満たしたオブジェクトの、pHandles が指す配列でのインデックスである。
|
|
dwWakeMask で指定した種類の新しい入力がスレッドの入力キーにある。PeekMessage、GetMessage、
WaitMessage、MsgWaitForMultipleObjects、MsgWaitForMultipleObjectsEx
などの関数は、キューにある
メッセージに“古いメッセージ”のマークを付ける。したがって、これらの関数の 1 つを呼び出した後に
MsgWaitForMultipleObjects 関数を呼び出すと、指定した種類の新しい入力が届くまで制御が戻らない。
この値は、フォアグラウンドアクティベーションなど、スレッドのアクションを必要とするシステムイベントが発生したとき
にも返る。そのため、対応する入力がない場合でも、また dwWaitMask に 0 を指定した場合でも、
MsgWaitForMultipleObjects 関数から制御が戻ることがある。その場合は、PeekMessage 関数または
GetMessage 関数を使ってシステムイベントを処理した後、MsgWaitForMultipleObjects 関数をもう一度呼び出
す。
|
WAIT_ABANDONED_0 to (WAIT_ABANDONED_0 + nCount - 1) |
|
fWaitAll に TRUE を指定した場合は、指定したすべてのオブジェクトがシグナル状態で、オブジェクトの少なくと
も
1 つが放棄されたミューテックスオブジェクトである。fWaitAll に FALSE を指定した場合は、戻り値から
WAIT_ABANDONED_0 を引いた値が、関数が制御を戻す条件を満たした放棄されたニューテックスオブジェクト
の、pHandles が指す配列でのインデックスである。 |
WAIT_TIMEOUT |
fWaitAll と dwWakeMask で指定した条件が満たされる前にタイムアウトになった。 |
関数が失敗すると、0xFFFFFFFF が返る。拡張エラー情報を取得するには、GetLastError 関数を使う。 |