RasDialDlgA 함수(rasdlg.h)
RasDialDlg 함수는 지정된 전화 번호부 항목과 로그온한 사용자의 자격 증명을 사용하여 RAS 연결을 설정합니다. 이 함수는 연결 작업의 상태를 나타내는 대화 상자 스트림을 표시합니다.
통사론
BOOL RasDialDlgA(
[in] LPSTR lpszPhonebook,
[in] LPSTR lpszEntry,
[in] LPSTR lpszPhoneNumber,
[in] LPRASDIALDLG lpInfo
);
매개 변수
[in] lpszPhonebook
전화 번호부(PBK) 파일의 전체 경로 및 파일 이름을 지정하는 null로 끝나는 문자열에 대한 포인터입니다. 이 매개 변수가 NULL
[in] lpszEntry
전화를 걸 전화 번호부 항목의 이름을 지정하는 null로 끝나는 문자열에 대한 포인터입니다.
[in] lpszPhoneNumber
전화 번호부 항목에 저장된 번호를 재정의하는 전화 번호를 지정하는 null로 끝나는 문자열에 대한 포인터입니다. 이 매개 변수가 NULL
[in] lpInfo
추가 입력 및 출력 매개 변수를 지정하는 RASDIALDLG 구조체에 대한 포인터입니다. 이 구조체의 dwSize 멤버는 sizeof(RASDIALDLG)를 지정해야 합니다. 오류가 발생하면 dwError 멤버가 오류 코드를 반환합니다. 그렇지 않으면 0을 반환합니다.
반환 값
함수가 RAS 연결을 설정하는 경우 반환 값은 TRUE
오류가 발생하면 RasDialDlgRASDIALDLG 구조체의 dwError 멤버를 라우팅 및 원격 액세스 오류 코드 또는 Winerror.h의 값으로 설정해야 합니다.
발언
RasDialDlg 함수는 사용자가 다이얼 단추를 선택할 때 기본 전화 접속 네트워킹 대화 상자가 표시되는 대화 상자와 유사한 일련의 대화 상자를 표시합니다. RasDialDlg 함수를 사용하여 기본 전화 번호부 대화 상자를 표시하지 않고도 연결 작업에 대한 표준 사용자 인터페이스를 표시합니다. 예를 들어 RAS AutoDial 서비스는 이 함수를 사용하여 원격 주소와 연결된 전화 번호부 항목을 사용하여 연결을 설정합니다.
RasDialDlg 함수는 연결 작업 중에 대화 상자를 표시하여 작업 진행률에 대한 피드백을 사용자에게 제공합니다. 예를 들어 대화 상자는 작업이 전화를 걸 때, 원격 서버에서 사용자의 자격 증명을 인증하는 경우 등을 나타낼 수 있습니다. 또한 대화 상자는 사용자가 작업을 종료할 취소 단추를 제공합니다.
RasDialDlg 연결이 설정되거나 사용자가 작업을 취소할 때 반환됩니다.
다음 샘플 코드는 변수 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;
}
메모
rasdlg.h 헤더는 RAsDialDlg를 UNICODE 전처리기 상수의 정의에 따라 이 함수의 ANSI 또는 유니코드 버전을 자동으로 선택하는 별칭으로 정의합니다. 인코딩 중립 별칭을 인코딩 중립이 아닌 코드와 혼합하면 컴파일 또는 런타임 오류가 발생하는 불일치가 발생할 수 있습니다. 자세한 내용은 함수 프로토타입대한
요구 사항
요구 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows 2000 Server [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | rasdlg.h |
라이브러리 | Rasdlg.lib |
DLL | Rasdlg.dll |
참고 항목
RASDIALDLG
RAS(원격 액세스 서비스) 개요
원격 액세스 서비스 함수