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 à des appareils de ligne qui prennent en charge le type de média LINEMEDIAMODE_DATAMODEM, qui est 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 le contrôle direct du matériel de communication, mais il n’est nécessaire de retourner un handle valide que 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 exigent 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 de l’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 des valeurs suivantes :
-
TERMINAL_PRE (1)
-
Affiche l’écran pré-terminal.
-
TERMINAL_POST (2)
-
Affiche l’écran post-terminal.
-
MANUAL_DIAL (4)
-
Compose le téléphone manuellement, s’il est en mesure de le faire.
-
LAUNCH_LIGHTS (8)
-
Affiche l’icône de modem dans la zone status de la barre des tâches.
Seule la valeur LAUNCH_LIGHTS est définie par défaut
-
-
wWaitBong
-
Nombre de secondes (granularité de deux secondes) pour remplacer le ton d’attente pour le crédit ($).
-
Commconfig
-
Structure COMMCONFIG qui peut être utilisée avec les fonctions de configuration des communications et des modems.