BuildCommDCB
The BuildCommDCB
function fills a specified DCB
BOOL BuildCommDCB(
LPCTSTR lpDef, |
// pointer to
device-control string |
LPDCB lpDCB |
// pointer to
device-control block |
); |
|
Parameters
lpDef
Pointer to a
null-terminated string that specifies device-control information. The string
must have the same form as the mode command s command-line arguments.
For example, the following string specifies a baud rate of 1200, no parity, 8
data bits, and 1 stop bit:
baud=1200 parity=N data=8 stop=1
The device
name is ignored if it is included in the string, but it must specify a valid
device, as follows:
COM1: baud=1200 parity=N data=8 stop=1
For further
information on mode command syntax, refer to the end-user documentation
for your operating system.
lpDCB
Pointer to a DCB
Return Values
If the
function succeeds, the return value is nonzero.
If the
function fails, the return value is zero. To get extended error information,
call GetLastError
Remarks
The BuildCommDCB
function adjusts only those members of the DCB structure that are
specifically affected by the lpDef parameter, with the following
exceptions:
If the specified baud rate is
110, the function sets the stop bits to 2 to remain compatible with the Windows
NT or MS-DOS mode command.
By default, BuildCommDCB
disables XON/XOFF and hardware flow control. To enable flow control, you must
explicitly set the appropriate members of the DCB structure.
The BuildCommDCB
function only fills in the members of the DCB structure. To apply these
settings to a serial port, use the SetCommState
There are
older and newer forms of the mode command syntax. The BuildCommDCB
function supports both forms. However, you cannot mix the two forms together.
The newer
form of the mode command syntax lets you explicitly set the values of
the flow control members of the DCB
For a string such as 96,n,8,1
or any other older-form mode string that doesn't end with an x or
a p:
fInX, fOutX,fOutXDsrFlow,and fOutXCtsFlow
are all set to FALSE
fDtrControl is set to DTR_CONTROL_ENABLE
fRtsControl is set to RTS_CONTROL_ENABLE
For a string such as 96,n,8,1,x
or any other older-form mode string that finishes with an x:
fInX, fOutX are both set to TRUE
fOutXDsrFlow,fOutXCtsFlow are both set to FALSE.
fDtrControl is set to DTR_CONTROL_ENABLE
fRtsControl is set to RTS_CONTROL_ENABLE
For a string such as 96,n,8,1,p
or any other older-form mode string that finishes with a p:
fInX, fOutX are both set to FALSE
fOutXDsrFlow,fOutXCtsFlow are both set to TRUE.
fDtrControl is set to DTR_CONTROL_HANDSHAKE
fRtsControl is set to RTS_CONTROL_HANDSHAKE
See Also