BuildCommDCBW 関数 (winbase.h)
指定した DCB 構造体に、デバイス制御文字列で指定された値を入力します。 device-control 文字列は 、mode コマンドの構文を使用します。
構文
BOOL BuildCommDCBW(
[in] LPCWSTR lpDef,
[out] LPDCB lpDCB
);
パラメーター
[in] lpDef
デバイス制御情報。 関数は、この文字列を受け取って解析し、lpDCB が指す DCB 構造体に適切な値を設定します。
文字列の形式は、 mode コマンドのコマンド ライン引数と同じである必要があります。
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}][on|off|hs}][idsr={on|off}]
デバイス名は省略可能ですが、使用する場合は有効なデバイスを指定する必要があります。
たとえば、次の文字列はボー レート 1200、パリティなし、8 データ ビット、1 ストップ ビットを指定します。
baud=1200 parity=N data=8 stop=1
[out] lpDCB
情報を受け取る DCB 構造体へのポインター。
戻り値
関数が成功すると、戻り値は 0 以外になります。
関数が失敗した場合は、0 を返します。 詳細なエラー情報を得るには、GetLastError を呼び出します。
解説
BuildCommDCB 関数は、特に lpDef パラメーターの影響を受ける DCB 構造体のメンバーのみを調整しますが、次の例外があります。
- 指定されたボー レートが 110 の場合、関数はストップ ビットを 2 に設定して、システムの mode コマンドとの互換性を維持します。
- 既定では、 BuildCommDCB は XON/XOFF とハードウェア フロー制御を無効にします。 フロー制御を有効にするには、 DCB 構造体の適切なメンバーを明示的に設定する必要があります。
モード構文には、古いものと新しい形式があります。 BuildCommDCB 関数は、両方のフォームをサポートします。 ただし、2 つのフォームを混在させることはできません。
モード構文の新しい形式では、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 ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして BuildCommDCB を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP |
サポートされている最小のサーバー | Windows Server 2003 |
対象プラットフォーム | Windows |
ヘッダー | winbase.h (Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |