Função RasDialDlgA (rasdlg.h)
A função RasDialDlg estabelece uma conexão RAS usando uma entrada de lista telefônica especificada e as credenciais do usuário conectado. A função exibe um fluxo de caixas de diálogo que indicam o estado da operação de conexão.
Sintaxe
BOOL RasDialDlgA(
[in] LPSTR lpszPhonebook,
[in] LPSTR lpszEntry,
[in] LPSTR lpszPhoneNumber,
[in] LPRASDIALDLG lpInfo
);
Parâmetros
[in] lpszPhonebook
Ponteiro para uma cadeia de caracteres terminada em nulo que especifica o caminho completo e o nome do arquivo de um PBK (lista telefônica). Se esse parâmetro for NULL, a função usará o arquivo de agendamento telefônico padrão atual. O arquivo de lista telefônica padrão é o selecionado pelo usuário na folha de propriedades preferências do usuário
[in] lpszEntry
Ponteiro para uma cadeia de caracteres terminada em nulo que especifica o nome da entrada da lista telefônica a ser discada.
[in] lpszPhoneNumber
Ponteiro para uma cadeia de caracteres terminada em nulo que especifica um número de telefone que substitui os números armazenados na entrada da lista telefônica. Se esse parâmetro for NULL, RasDialDlg usará os números na entrada da lista telefônica.
[in] lpInfo
Ponteiro para uma estrutura RASDIALDLG
Valor de retorno
Se a função estabelecer uma conexão RAS, o valor retornado será VERDADEIRO. Caso contrário, a função deverá retornar FALSE .
Se ocorrer um erro,
Observações
A função RasDialDlg exibe uma série de caixas de diálogo semelhantes às caixas de diálogo que a caixa de diálogo principal caixa de diálogo de Rede Discada é exibida quando o usuário seleciona o botão Discar. Use a função RasDialDlg para exibir uma interface do usuário padrão para uma operação de conexão sem apresentar a caixa de diálogo principal da lista telefônica. Por exemplo, o serviço RAS AutoDial usa essa função para estabelecer uma conexão usando a entrada do catálogo telefônico associada a um endereço remoto.
A função RasDialDlg exibe caixas de diálogo durante a operação de conexão para fornecer comentários ao usuário sobre o andamento da operação. Por exemplo, as caixas de diálogo podem indicar quando a operação está discando, quando está autenticando as credenciais do usuário no servidor remoto e assim por diante. As caixas de diálogo também fornecem um botão Cancelar para o usuário encerrar a operação.
RasDialDlg retorna quando a conexão é estabelecida ou quando o usuário cancela a operação.
O código de exemplo a seguir disca a entrada na lista telefônica padrão especificada pela variável 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;
}
Nota
O cabeçalho rasdlg.h define RasDialDlg como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
de cliente com suporte mínimo | Windows 2000 Professional [somente aplicativos da área de trabalho] |
servidor com suporte mínimo | Windows 2000 Server [somente aplicativos da área de trabalho] |
da Plataforma de Destino |
Windows |
cabeçalho | rasdlg.h |
biblioteca | Rasdlg.lib |
de DLL |
Rasdlg.dll |
Consulte também
RASDIALDLG