BuildCommDCBW 函式 (winbase.h)
以裝置控制字串中指定的值填入指定的 DCB 結構。 裝置控制字串會使用 模式 命令的語法。
語法
BOOL BuildCommDCBW(
[in] LPCWSTR lpDef,
[out] LPDCB lpDCB
);
參數
[in] lpDef
裝置控制資訊。 函式會採用此字串、加以剖析,然後在由 lpDCB所指向的 DCB 結構中設定適當的值。
字串的格式必須與命令的命令行自變數
COMx[:][baud=b][parity=p][data=d][stop=s][to={on|off}][xon={on|off}][odsr={on|off}][octs={on|off}][dtr={on|off|hs}][rts={on|off|hs|tg}][idsr={on|off}]
裝置名稱是選擇性的,但如果已使用,則必須指定有效的裝置。
例如,下列字串指定 1200 的傳輸速率、無同位、8 個數據位和 1 個停止位:
baud=1200 parity=N data=8 stop=1
[out] lpDCB
接收資訊之 DCB 結構的指標。
傳回值
如果函式成功,則傳回值為非零值。
如果函式失敗,傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
言論
BuildCommDCB 函式只會調整受 lpDef 參數特別影響之 DCB 結構的成員,但有下列例外狀況:
- 如果指定的baud速率為110,函式會將停止位設定為2,以與系統的 模式 命令保持相容。
- 根據預設,BuildCommDCB 會停用 XON/XOFF 和硬體流程控制。 若要啟用流程控制,您必須明確設定 DCB 結構的適當成員。
模式 語法有較舊且較新的形式。 BuildCommDCB 函式支援這兩種形式。 不過,您無法將這兩種窗體混合在一起。
模式 語法的較新形式可讓您明確設定 DCB 結構的流程控制成員值。 如果您使用舊格式的 模式 語法,BuildCommDCB 函式會設定 DCB 結構的流程控制成員,如下所示:
- 對於未以 x 或 p 結尾的字串:
- fInX、fOutX、fOutXDsrFlow和 fOutXCtsFlow 全都設定為 FALSE
- fDtrControl 設定為 DTR_CONTROL_ENABLE
- fRtsControl 設定為 RTS_CONTROL_ENABLE
- 若為以 x 結尾的字串:
- fInX 和 fOutX 都設定為 true
- fOutXDsrFlow 和 fOutXCtsFlow 都設定為 FALSE
- fDtrControl 設定為 DTR_CONTROL_ENABLE
- fRtsControl 設定為 RTS_CONTROL_ENABLE
- 針對以 p 結尾的字串:
- fInX 和 fOutX 都設定為 false
- fOutXDsrFlow 和 fOutXCtsFlow 都設定為 true
- fDtrControl 設定為 DTR_CONTROL_HANDSHAKE
- fRtsControl 設定為 RTS_CONTROL_HANDSHAKE
注意
winbase.h 標頭會將 BuildCommDCB 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows XP |
支援的最低伺服器 | Windows Server 2003 |
目標平臺 | 窗戶 |
標頭 | winbase.h (包括 Windows.h) |
連結庫 | Kernel32.lib |
DLL | Kernel32.dll |