VBでの解説だが、わかりやすかったので抜粋
SetCommState 関数 デバイス制御ブロック(DCB)構造体の指定により通信デバイスを構成し、シリアルポートの通信条件も設定する。 Declare Function SetCommState Lib "kernel32.dll" (ByVal hComm As Integer, ByRef lpDCB AsDCB)As Boolean hComm CreateFile 関数で取得したデバイスハンドルの値を代入。 lpDCB DCB 構造体へのポインタを指定。DCB 構造体を持つ変数を宣言して使用する。 DCB構造体 Structure DCB DCBlength As Int32 構造体のサイズ BaudRate As Int32 ボーレートの設定 fBitFields As Int32 ビット単位のフィールド定義(バイナリコードでの通信を行い、DTR・RTS制御を行い、DSR監視制御を行う設定は&H1019) wReserved As Int16 予約(0をセット) XonLim As Int16 Xon文字を送るときの受信バファのデータバイト数 XoffLim As Int16 Xoff文字を送るときの受信バファの空きバイト数 ByteSize As Byte 1データのビット数を指定(7か8) Parity As Byte パリティ方式の指定(0:無、1:奇数、2:偶数) StopBits As Byte ストップビット数を指定(0:1bit、1:1.5bit、2:2bit) XonChar As Byte Xon文字を指定 XoffChar As Byte Xoff文字を指定 ErrorChar As Byte パリティエラーの場合に使う文字を指定 EofChar As Byte 非バイナリモードの場合のデータ終了文字の指定 EvtChar As Byte イベントを生成する文字を指定 End Structure 戻り値として正常終了のときは True(0以外)をかえし、異常終了のときは False(0) をかえす