This function waits for an event to occur for a specified communications device.
The set of events monitored by WaitCommEvent is contained in the event mask associated with the device handle.
BOOL WaitCommEvent( HANDLE hFile, LPDWORD lpEvtMask, LPOVERLAPPED lpOverlapped );
[in] Handle to the communications device, returned by the CreateFile function.
[out] Long pointer to a 32-bit variable that receives a mask indicating the events that occurred. If an error occurs, the value is zero. Otherwise, it is one or more of the values in the following table.
A break was detected on input.
The clear-to-send (CTS) signal changed state.
The data-set-ready (DSR) signal changed state.
A line-status error occurred. Line-status errors are CE_FRAME, CE_OVERRUN, and CE_RXPARITY.
Power event, which is generated whenever the device is powered on.
This value is specific to Windows Embedded CE.
A ring indicator was detected.
The receive-line-signal-detect (RLSD) signal changed state.
A character was received and placed in the input buffer.
The last character in the output buffer was sent.
[in] Ignored; set to NULL.
Nonzero indicates success. Zero indicates failure. To obtain extended error information, call the GetLastError function.
The WaitCommEvent function monitors a set of events for a specified communications resource. To set and query the current event mask of a communications resource, use the SetCommMask and GetCommMask functions. When a communications event that is set by SetCommMask occurs, WaitCommEvent returns.
Only one WaitCommEvent can be used for each open COM port handle. This means that if you have three threads in your application and each thread needs to wait on a specific comm event, each thread needs to open the COM port and then use the assigned port handle for their respective WaitCommEvent calls.