WaitCommEvent

指定した通信デバイスでイベントが発生するのを待機する。本関数が監視するイベントセットはデバイスハンドルに関連付けられたイベントマスクに含まれる。

WaitCommEvent hFile, lpEvtMask, lpOverlapped

hFile : [intptr] 通信デバイスのハンドル。CreateFile 関数が返す。
lpEvtMask : [var] 
lpOverlapped : [var] OVERLAPPED 構造体へのポインタ。hFile が FILE_FLAG_OVERLAPPED で開かれていれば必須である。

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

解説

指定した通信デバイスでイベントが発生するのを待機する。本関数が監視するイベントセットはデバイスハンドルに関連付けられたイベントマスクに含まれる。

[戻り値]
関数が成功した場合、戻り値は 0 以外である。関数が失敗した場合、戻り値は 0 となる。拡張エラー情報を取得するには
GetLastError を呼ぶ。

[備考]
WaitCommEvent は指定通信リソースに対するイベントセットを監視する。通信リソースの現在のイベントマスクを設定・取得するには
SetCommMask / GetCommMask を使う。オーバーラップ操作が即座に完了できない場合、関数は FALSE を返し
GetLastError は ERROR_IO_PENDING を返してバックグラウンド実行を示す。この場合、システムは
WaitCommEvent が戻る前に OVERLAPPED の hEvent
メンバを非シグナル状態に設定し、指定イベントまたはエラー発生時にシグナル状態にする。呼び出し側プロセスは待機関数の一つでイベントオブジェクト状態を判定し、GetOverlappedResultWaitCommEvent 結果を判定できる。GetOverlappedResult は操作の成否を報告し、lpEvtMask
が指す変数に発生イベントを示す。プロセスがオーバーラップ WaitCommEvent 進行中に SetCommMask
でデバイスハンドルのイベントマスクを変更しようとすると、WaitCommEvent は即座に戻る。lpEvtMask が指す変数は 0
となる。

情報

プラグイン / モジュール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