WaitCommEvent

機能

指定した通信デバイスでイベントの発生を監視する

Declare Function WaitCommEvent Lib "kernel32.dll" _
(ByVal hFile As Long, lpEvtMask As Long, lpOverlapped As OVERLAPPED ) As Long

Declare Function WaitCommEvent Lib "kernel32.dll" _
(ByVal hFile As Integer, lpEvtMask As Integer, lpOverlapped As OVERLAPPED ) As Integer

BOOL WaitCommEvent(
HANDLE hFile,
LPDWORD lpEvtMask,
LPOVERLAPPED lpOverlapped,
);


引数
hFile

通信デバイスのハンドル(CreateFile()関数の戻り値)

lpEvtMask

(戻り値)イベントが発生したときに、その種類を受け取るためのLONG型変数
どんなイベントが起こったかを示す定数の組み合わせの値が返される

lpOverlapped

hFileのハンドルの属性がFILE_FLAG_OVERLAPPEDフラグを持つとき          OVERLAPPED構造体
同、持たないとき                                                    0

戻り値

正常終了のとき                0以外
エラーのとき                  0

備考

lpOverlappedに0を指定するとイベントが発生するまで制御が返ってこない。
通信デバイスのイベントマスクを設定・取得するにはSetCommMask()関数と GetCommMask()関数を使う。
詳細はMSDNを参照。

[:2]の定数

Const EV_BREAK = &H40                  'ブレークを受信した
Const EV_CTS = &H8                     'CTS(送信可)信号の状態が変化した
Const EV_DSR = &H10                    'DSR(データセットレディ)信号の状態が変化した
Const EV_ERR = &H80                    '回線状態エラーが発生
Const EV_RING = &H100                  '呼び出し信号を検出した
Const EV_RLSD = &H20                   'RLSD(受信線信号検出)信号の状態が変化した
Const EV_RXCHAR = &H1                  '1文字受信し、入力バッファに入れた
Const EV_RXFLAG = &H2                  'イベント文字を受信し、入力バッファに入れた
                    'イベント文字はデバイスのDCB構造体で指定する(SetCommState()関数)
Const EV_TXEMPTY = &H4                 '出力バッファの最後の文字を送信した