#define WM_COMM_BREAK_DETECTED WM_USER+1 // A break was detected on input. #define WM_COMM_CTS_DETECTED WM_USER+2 // The CTS (clear-to-sennd) sig nal changed state. #define WM_COMM_DSR_DETECTED WM_USER+3 // The DSR (data-set-reaady) si gnal changed state. #define WM_COMM_ERR_DETECTED WM_USER+4 // A line-status error ooccurre d. Line-status errors are CE_FRAME, CE_OVERRUN, and CE_RXPARITY.
#define WM_COMM_RING_DETECTED WM_USER+5 // A ring indicator was etec ted. #define WM_COMM_RLSD_DETECTED WM_USER+6 // The RLSD (receive-lin -sig nal-detect) signal changed state. #define WM_COMM_RXCHAR WM_USER+7 // A character w s received and pl aced in the input buffer. #define WM_COMM_RXFLAG_DETECTED WM_USER+8 // The event character w s received and placed in the input buffer. #define WM_COMM_TXEMPTY_DETECTED WM_USER+9 // The last character in th e output buffer was sent.
class TSerialPort { public: // contrUCtion and destruction TSerialPort(); virtual ~TSerialPort();
// Event array. // One element is used for each event. There are two event handles fo r each port. // A Write event and a receive character event which is located in th e overlapped structure (m_ov.hEvent). // There is a general shutdown when the port is closed. HANDLE m_hEventArray[3];