RasDialDlgA, fonction (rasdlg.h)
La fonction RasDialDlg établit une connexion RAS à l’aide d’une entrée téléphonique spécifiée et des informations d’identification de l’utilisateur connecté. La fonction affiche un flux de boîtes de dialogue qui indiquent l’état de l’opération de connexion.
Syntaxe
BOOL RasDialDlgA(
[in] LPSTR lpszPhonebook,
[in] LPSTR lpszEntry,
[in] LPSTR lpszPhoneNumber,
[in] LPRASDIALDLG lpInfo
);
Paramètres
[in] lpszPhonebook
Pointeur vers une chaîne terminée par null qui spécifie le chemin d’accès complet et le nom de fichier d’un fichier PBK (Phone-Book). Si ce paramètre est NULL, la fonction utilise le fichier de livre téléphonique par défaut actuel. Le fichier de carnet téléphonique par défaut est celui sélectionné par l’utilisateur dans la feuille de propriétés Préférences utilisateur de la boîte de dialogue Mise en réseau rendez-vous.
[in] lpszEntry
Pointeur vers une chaîne terminée par null qui spécifie le nom de l’entrée phone-book à composer.
[in] lpszPhoneNumber
Pointeur vers une chaîne terminée par null qui spécifie un numéro de téléphone qui remplace les numéros stockés dans l’entrée de carnet de téléphone. Si ce paramètre est NULL, RasDialDlg utilise les numéros dans l’entrée de carnet téléphonique.
[in] lpInfo
Pointeur vers une structure RASDIALDLG qui spécifie des paramètres d’entrée et de sortie supplémentaires. Le dwSize membre de cette structure doit spécifier sizeof(RASDIALDLG). Si une erreur se produit, le membre dwError retourne un code d’erreur ; sinon, elle retourne zéro.
Valeur de retour
Si la fonction établit une connexion RAS, la valeur de retour est TRUE. Sinon, la fonction doit retourner FALSE.
Si une erreur se produit,
Remarques
La fonction RasDialDlg affiche une série de boîtes de dialogue similaires aux boîtes de dialogue que la boîte de dialogue principale boîte de dialogue Mise en réseau rendez-vous s’affiche lorsque l’utilisateur sélectionne le bouton Composer. Utilisez la fonction RasDialDlg pour afficher une interface utilisateur standard pour une opération de connexion sans présenter la boîte de dialogue de livre téléphonique principale. Par exemple, le service RAS AutoDial utilise cette fonction pour établir une connexion à l’aide de l’entrée de carnet téléphonique associée à une adresse distante.
La fonction RasDialDlg affiche les boîtes de dialogue pendant l’opération de connexion pour fournir des commentaires à l’utilisateur sur la progression de l’opération. Par exemple, les boîtes de dialogue peuvent indiquer quand l’opération compose, lorsqu’elle authentifie les informations d’identification de l’utilisateur sur le serveur distant, et ainsi de suite. Les boîtes de dialogue fournissent également un bouton Annuler pour que l’utilisateur termine l’opération.
RasDialDlg retourne lorsque la connexion est établie ou lorsque l’utilisateur annule l’opération.
L’exemple de code suivant compose l’entrée dans le livre téléphonique par défaut spécifié par la variable lpszEntry.
#include <windows.h>
#include <stdio.h>
#include "ras.h"
#include "rasdlg.h"
#include <tchar.h>
#include "strsafe.h"
#define PHONE_NUMBER_LENGTH 7
#define DEVICE_NAME_LENGTH 5
#define DEVICE_TYPE_LENGTH 5
DWORD __cdecl wmain(){
DWORD dwError = ERROR_SUCCESS;
BOOL nRet = TRUE;
LPTSTR lpszEntry = L"EntryName";
LPTSTR lpszphonenumber = L"5555555";
LPTSTR lpszdevicename = L"Modem";
LPTSTR lpszdevicetype = RASDT_Modem;
// Allocate heap memory and initialize RASENTRY structure
LPRASENTRY lpentry = (LPRASENTRY)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(RASENTRY));
// Allocate heap memory and initialize RASDIALDLG structure
LPRASDIALDLG lpInfo = (LPRASDIALDLG) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(RASDIALDLG));
if (lpentry == NULL || lpInfo == NULL){
wprintf(L"HeapAlloc failed");
HeapFree(GetProcessHeap(), 0, lpentry);
HeapFree(GetProcessHeap(), 0, lpInfo);
return 0;
}
// The RASDIALDLG and RASENTRY dwSize members have to be initialized or the RasDialDlg()
// RasSetEntryProperties() APIs will fail below.
lpInfo->dwSize = sizeof(RASDIALDLG);
lpentry->dwSize = sizeof(RASENTRY);
lpentry->dwFramingProtocol = RASFP_Ppp;
lpentry->dwfOptions = 0;
lpentry->dwType = RASFP_Ppp;
dwError |= StringCchCopyN(lpentry->szLocalPhoneNumber, RAS_MaxPhoneNumber, lpszphonenumber, PHONE_NUMBER_LENGTH);
dwError |= StringCchCopyN(lpentry->szDeviceName, RAS_MaxDeviceName, lpszdevicename, DEVICE_NAME_LENGTH);
dwError |= StringCchCopyN(lpentry->szDeviceType, RAS_MaxDeviceType, lpszdevicetype, DEVICE_TYPE_LENGTH);
if (dwError != S_OK){
wprintf(L"Structure initialization failed: Error = %d\n", dwError);
HeapFree(GetProcessHeap(), 0, lpentry);
HeapFree(GetProcessHeap(), 0, lpInfo);
return 0;
}
// Validate the new entry's name
dwError = RasValidateEntryName(NULL, lpszEntry);
if (dwError != ERROR_SUCCESS){
wprintf(L"RasValidateEntryName failed: Error = %d\n", dwError);
HeapFree(GetProcessHeap(), 0, lpentry);
HeapFree(GetProcessHeap(), 0, lpInfo);
return 0;
}
// Create and set the new entry's properties
dwError = RasSetEntryProperties(NULL, lpszEntry, lpentry, lpentry->dwSize, NULL, 0);
if (dwError != ERROR_SUCCESS){
wprintf(L"RasSetEntryProperties failed: Error = %d\n", dwError);
HeapFree(GetProcessHeap(), 0, lpentry);
HeapFree(GetProcessHeap(), 0, lpInfo);
return 0;
}
// Connect using the new entry
nRet = RasDialDlg(NULL, lpszEntry, NULL, lpInfo);
if (nRet != TRUE){
wprintf(L"RasDialDlg failed: Error = %d\n", lpInfo->dwError);
}
// Clean up: delete the new entry
dwError = RasDeleteEntry(NULL, lpszEntry);
if (dwError != ERROR_SUCCESS){
wprintf(L"RasDeleteEntry failed: Error = %d\n", dwError);
}
HeapFree(GetProcessHeap(), 0, lpentry);
HeapFree(GetProcessHeap(), 0, lpInfo);
return 0;
}
Note
L’en-tête rasdlg.h définit RasDialDlg comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
serveur minimum pris en charge | Windows 2000 Server [applications de bureau uniquement] |
plateforme cible | Windows |
d’en-tête | rasdlg.h |
bibliothèque | Rasdlg.lib |
DLL | Rasdlg.dll |
Voir aussi
Vue d’ensemble service d’accès à distance (RAS)