comm/datamodem

La classe d’appareil comm/datamodem se compose d’appareils datamodem. Vous accédez à ces appareils à l’aide des fonctions de fichier et de communication. Les appareils de cette classe sont associés aux appareils de ligne qui prennent en charge le type de support LINEMEDIAMODE_DATAMODEM, spécifié dans le membre dwMediaModes de la structure LINEDEVCAPS pour l’appareil de ligne.

La fonction lineGetID remplit une structure VARSTRING , en définissant dwStringFormat sur la valeur STRINGFORMAT_BINARY et en ajoutant ces membres supplémentaires :

HANDLE hComm;            // file handle to data modem
CHAR   szDeviceName[1];  // name of data modem

Le membre hComm est le handle du port de communication ouvert. Ce membre a la valeur NULL si le port n’est pas encore ouvert ou si le paramètre dwSelect de lineGetID n’est pas la valeur LINECALLSELECT_CALL. Si un appel est actif, le fournisseur de services ouvre généralement le port lui-même pour obtenir un contrôle direct du matériel de communication, mais n’est nécessaire que pour retourner un handle valide si la ligne est connectée. Le fournisseur de services ouvre le port à l’aide de la valeur FILE_FLAG_OVERLAPPED, puis configure le port à l’aide des paramètres spécifiés par la fonction lineSetDevConfig . Vous pouvez définir des options de configuration supplémentaires pour l’appareil à l’aide de fonctions de communication avec le handle retourné.

Le membre szDeviceName est une chaîne terminée par null qui spécifie le nom du port de communication associé à la ligne, à l’adresse ou à l’appel.

Si hComm est un handle valide, vous pouvez l’utiliser dans les appels suivants aux fonctions de fichier, telles que ReadFile et WriteFile, pour envoyer et recevoir des données sur l’appel. Lorsque vous avez terminé d’utiliser le port de communication et de préférence avant d’utiliser la fonction lineDeallocateCall pour libérer l’appel, vous devez fermer le port à l’aide de la fonction CloseHandle .

Lorsque vous utilisez les fonctions lineGetDevConfig et lineSetDevConfig , certains fournisseurs de services nécessitent que les données de configuration de cette classe d’appareil aient le format suivant :

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;

Voici les informations de configuration d’appareil à utiliser avec les fonctions lineGetDevConfig et lineSetDevConfig .

dwSize

Somme de la taille de la structure DEVCFGHDR et de la taille réelle de la structure COMMCONFIG .

dwVersion

Numéro de version de la structure DevConfig Unimodem. Ce membre peut être MDMCFG_VERSION (0x00010003).

fwOptions

Indicateurs d’option qui s’affichent dans la page Option Unimodem. Ce membre peut être une combinaison de ces valeurs :

TERMINAL_PRE (1)

Affiche l’écran de pré-terminal.

TERMINAL_POST (2)

Affiche l’écran post-terminal.

MANUAL_DIAL (4)

Compose le téléphone manuellement, s’il est capable de le faire.

LAUNCH_LIGHTS (8)

Affiche l’icône de modem dans la zone d’état de la barre des tâches.

Seule la valeur LAUNCH_LIGHTS est définie par défaut

wWaitBong

Nombre de secondes (en deux secondes de granularité) pour remplacer l’attente du ton de crédit ($).

Commconfig

Structure COMMCONFIG qui peut être utilisée avec les fonctions de configuration des communications et des modems.