comm/datamodem
comm/datamodem デバイス クラスは、datamodem デバイスで構成されます。 これらのデバイスには 、ファイル と 通信の機能を使用してアクセスします。 このクラスのデバイスは、ライン デバイスの LINEDEVCAPS 構造体の dwMediaModes メンバーで指定されている、LINEMEDIAMODE_DATAMODEM メディアの種類をサポートする回線デバイスに関連付けられます。
lineGetID 関数は VARSTRING 構造体を埋め、dwStringFormat をSTRINGFORMAT_BINARY値に設定し、次の追加メンバーを追加します。
HANDLE hComm; // file handle to data modem
CHAR szDeviceName[1]; // name of data modem
hComm メンバーは、オープン通信ポートのハンドルです。 ポートがまだ開いていない場合、または lineGetID の dwSelect パラメーターがLINECALLSELECT_CALL値でない場合、このメンバーは NULL です。 呼び出しがアクティブな場合、サービス プロバイダーは通常、通信ハードウェアを直接制御するためにポート自体を開きますが、回線が接続されている場合にのみ有効なハンドルを返すために必要です。 サービス プロバイダーは、FILE_FLAG_OVERLAPPED値を使用してポートを開き、 lineSetDevConfig 関数で指定された設定を使用してポートを構成します。 返されたハンドルと通信関数を使用して、デバイスの追加の構成オプションを設定できます。
szDeviceName メンバーは、行、アドレス、または呼び出しに関連付けられている通信ポートの名前を指定する null で終わる文字列です。
hComm が有効なハンドルの場合は、ReadFile や WriteFile などのファイル関数の後続の呼び出しで使用して、呼び出しのデータを送受信できます。 通信ポートの使用が完了し、できれば lineDeallocateCall 関数を使用して呼び出しの割り当てを解除する前に、 CloseHandle 関数を使用してポートを閉じる必要があります。
lineGetDevConfig 関数と lineSetDevConfig 関数を使用する場合、一部のサービス プロバイダーでは、このデバイス クラスの構成データが次の形式である必要があります。
typedef struct tagDEVCFG {
DEVCFGHDR dfgHdr;
COMMCONFIG commconfig;
} DEVCFG, *PDEVCFG, FAR* LPDEVCFG;
// Device setting information
typedef struct tagDEVCFGDR {
DWORD dwSize;
DWORD dwVersion;
WORD fwOptions;
WORD wWaitBong;
} DEVCFGHDR;
lineGetDevConfig 関数と lineSetDevConfig 関数で使用するデバイス構成情報を次に示します。
-
Dwsize
-
DEVCFGHDR 構造体のサイズと COMMCONFIG 構造体の実際のサイズの合計。
-
dwVersion
-
Unimodem DevConfig 構造体のバージョン番号。 このメンバーはMDMCFG_VERSIONできます (0x00010003)。
-
fwOptions
-
[Unimodem オプション] ページに表示されるオプション フラグ。 このメンバーには、次の値の組み合わせを指定できます。
-
TERMINAL_PRE (1)
-
端末前画面を表示します。
-
TERMINAL_POST (2)
-
端末後画面を表示します。
-
MANUAL_DIAL (4)
-
電話を手動でダイヤルします (可能な場合)。
-
LAUNCH_LIGHTS (8)
-
タスク バーの状態領域にモデム アイコンを表示します。
既定では、LAUNCH_LIGHTS値のみが設定されます
-
-
wWaitBong
-
クレジット トーンの待機 ($) を置き換える秒数 (2 秒単位)。
-
Commconfig
-
通信およびモデム構成機能と共に使用できる COMMCONFIG 構造体。