<Return[WXYZ]><Top>
WaitCommEvent |
Declare Function Api_WaitCommEvent& Lib "kernel32" Alias "WaitCommEvent" (ByVal hFile&, lpEvtMask&, lpOverlapped As OVERLAPPED) |
||||||||||||||||||||
Declare Function WaitCommEvent Lib "kernel32" Alias "WaitCommEvent" (ByVal hFile As Long, lpEvtMask As Long, lpOverlapped As OVERLAPPED) As Long |
|||||||||||||||||||||
指定した通信デバイスでイベントが発生するのを待機する。この関数で監視するイベントは、デバイスのハンドルに関連付けられているイベントマスクによって示される。 |
|||||||||||||||||||||
パラメータ る。それ以外の場合は、次のいずれかの値が格納される。
lpOverlapped
した場合はこの構造体が必要になる。
へのポインタを渡さなければならない。NULL
を渡すと、関数が操作の完了を誤って報告することがある。 関数は重複操作として実行される。このとき、OVERLAPPED 構造体に手動リセットイベントオブジェクト(CreateEvent 関数を使って作成す
る)のハンドルを指定しておく必要がある。
発生するまで制御が戻らない。
は、それぞれ SetCommMask 関数と
GetCommMask 関数を使u。 操作がバックグラウンドで実行中であることを示す。さらに、WaitCommEvent 関数が制御を返す前に、システムが OVERLAPPED 構造 体の hEvent メンバを非シグナル状態に設定する。監視状態のイベントまたはエラーが起こると、設定がシグナル状態に変わる。呼び出し 側のプロセスはいずれかの待機関数を使ってイベントオブジェクトの状態を調べた後、GetOverlappedResult 関数を使っ て WaitCommEvent の結果を調べることができる。GetOverlappedResult 関数は操作が成功したか失敗したかを報告し、lpEvtMask パ
ラメータが示す変数が、発生したイベントを示す値に設定される。 うとすると、WaitCommEvent 関数はただちに制御を戻す。このとき、lpEvtMask パラメータの示す変数は 0 に設定される。 |