<Return[B]><Top>

BuildCommDCBAndTimeouts

Declare Function Api_BuildCommDCBAndTimeouts& Lib "kernel32" Alias "BuildCommDCBAndTimeoutsA" (ByVal lpDef$, lpDCB As DCB, lpCommTimeouts As COMMTIMEOUTS)

Declare Function BuildCommDCBAndTimeouts Lib "kernel32" Alias "BuildCommDCBAndTimeoutsA" (ByVal lpDef As String, lpDCB As DCB, lpCommTimeouts As COMMTIMEOUTS) As Long

デバイス定義文字列をデバイス制御ブロックコードに変換した後、デバイス制御ブロックに格納する。デバイスのタイムアウト値の設定やタイムアウトの解除も可能である。タイムアウト値の設定に関する動作は、デバイス定義文字列の内容によって異なる。

パラメータ
lpDef
    目的のデバイスのデバイス制御情報を表す、NULL で終わる文字列へのポインタを指定する。この文字列が解析され、lpDCB が示す

    DCB 構造体への設定値が決まる。
lpDCB
    DCB 構造体へのポインタを指定する。lpDef が示すデバイス制御情報文字列の情報が DCB 構造体に格納される。この構造体は、通信

    デバイスの制御設定を定義する。
lpCommTimeouts
    COMMTIMEOUTS 構造体へのポインタを指定する。COMMTIMEOUTS 構造体では、デバイスのタイムアウト値を設定できる。
    BuildCommDcbAndTimeouts 関数は、lpDef パラメータが示す文字列に "TO=xxx" が含まれているかどうかによって、タイムアウトの動作

    を次のように設定する。
    •文字列に "TO=ON" が含まれている場合、デバイスの読み書きの合計タイムアウト値を、lpCommTimeouts が示す COMMTIMEOUTS

      構造体に基づいて設定する。
    •文字列に "TO=OFF" が含まれている場合、タイムアウトのない設定になる。
    •文字列に "TO=ON" と "TO=OFF" がどちらも含まれていない場合は、lpCommTimeouts が指定する構造体を無視する。したがって、

      COMMTIMEOUTS 構造体へのアクセスは行われない。

戻り値
    関数が成功すると、0 以外の値が返る。
    関数が失敗すると、0 が返る。拡張エラー情報を取得するには、GetLastError 関数を使う。