[comp.windows.ms.programmer] Carrier Detection with Comm functions

Norbert_Unterberg@p4.f36.n245.z2.fidonet.org (Norbert Unterberg) (05/25/91)

Hello all,

is there a reliable way to query the current state of the carrier detect signal 
(the SDK calls this the RLSD, Receive Line Signal Detect). All I've found is 
the GetCommEventMask() function, which reports the _change_ of that signal. 
Even the COMMSTAT structure returned by GetCommError() only indicates that the 
transmission is waiting for this signal to be set. But what if no character is 
waiting in the transmit queue?

The way I'm currently `reading' the carrier detect is a frequent call to 
GetCommEventMask(nCid, EV_RLSD) and toggling a boolean carrier variable if the 
return value indicates a change of that signal. But there must be a better way 
of doing this things than polling.

Any ideas?

Norbert
Dortmund, FRG