The information in this article applies to:
SUMMARYIn the Microsoft Windows graphical environment, versions 3.0 and 3.1 of the communications driver (COMM.DRV) do not provide the absolute states of the following control lines:
The RLSD signal is probably the most important (for modem software),
and is often necessary. This article provides a method to obtain this
information. Although this method is undocumented, it will be
supported in future versions of 16-bit Windows.
MORE INFORMATION
The Windows Software Development Kit (SDK) documentation indicates
that SetCommEventMask() can be used to determine the absolute state of
these signals, using the EV_CTSS, EV_DSRS, EV_RING, and EV_RLSDS
events. However, in all cases, the EV_* bits are OR'd into the EvtWord
without clearing the previous value of the EvtWord. If a modem status
register (MSR) bit has become set, it will not be cleared until
GetCommEventMask() is called. Therefore, if a bit is set, but then
changes state, the EvtWord will still indicate that it is set until
GetcommEventMask() is called. (Note, however, that EV_RLSDS will never
be set. This is a bug in the Windows versions 3.0 and 3.1 COMM.DRV.)
Once this pointer is available, it can be used as follows:
Althought this method is supported in a Win32-based application, you should
use GetCommModemStatus() instead.
Additional query words: no32bit 3.00 3.10 DDKCOMM
Keywords : kb16bitonly KrCommapi |
Last Reviewed: November 4, 1999 © 2000 Microsoft Corporation. All rights reserved. Terms of Use. |