Fungsi RasDialDlgA (rasdlg.h)
Fungsi RasDialDlg membuat koneksi RAS menggunakan entri buku telepon tertentu dan kredensial pengguna yang masuk. Fungsi menampilkan aliran kotak dialog yang menunjukkan status operasi koneksi.
Sintaks
BOOL RasDialDlgA(
[in] LPSTR lpszPhonebook,
[in] LPSTR lpszEntry,
[in] LPSTR lpszPhoneNumber,
[in] LPRASDIALDLG lpInfo
);
Parameter
[in] lpszPhonebook
Penunjuk ke string yang dihentikan null yang menentukan jalur lengkap dan nama file dari file buku telepon (PBK). Jika parameter ini ADALAH NULL, fungsi menggunakan file buku telepon default saat ini. File buku telepon default adalah file yang dipilih oleh pengguna di lembar properti Preferensi Pengguna dari kotak dialog Jaringan Dial-Up .
[in] lpszEntry
Penunjuk ke string yang dihentikan null yang menentukan nama entri buku telepon untuk dihubungi.
[in] lpszPhoneNumber
Penunjuk ke string yang dihentikan null yang menentukan nomor telepon yang mengambil alih nomor yang disimpan dalam entri buku telepon. Jika parameter ini NULL, RasDialDlg menggunakan nomor dalam entri buku telepon.
[in] lpInfo
Penunjuk ke struktur RASDIALDLG yang menentukan parameter input dan output tambahan. Anggota dwSize dari struktur ini harus menentukan sizeof(RASDIALDLG). Jika terjadi kesalahan, anggota dwError mengembalikan kode kesalahan; jika tidak, ia mengembalikan nol.
Mengembalikan nilai
Jika fungsi menetapkan koneksi RAS, nilai yang dikembalikan adalah TRUE. Jika tidak, fungsi harus mengembalikan FALSE.
Jika terjadi kesalahan, RasDialDlg harus mengatur anggota dwError dari struktur RASDIALDLG ke nilai dari Perutean dan Kode Kesalahan Akses Jarak Jauh atau Winerror.h.
Keterangan
Fungsi RasDialDlg menampilkan serangkaian kotak dialog yang mirip dengan kotak dialog kotak dialog Jaringan Dial-Up utama ditampilkan saat pengguna memilih tombol Putar Nomor. Gunakan fungsi RasDialDlg untuk menampilkan antarmuka pengguna standar untuk operasi koneksi tanpa menyajikan kotak dialog buku telepon utama. Misalnya, layanan RAS AutoDial menggunakan fungsi ini untuk membuat koneksi menggunakan entri buku telepon yang terkait dengan alamat jarak jauh.
Fungsi RasDialDlg menampilkan kotak dialog selama operasi koneksi untuk memberikan umpan balik kepada pengguna tentang kemajuan operasi. Misalnya, kotak dialog mungkin menunjukkan kapan operasi berputar, saat mengautentikasi kredensial pengguna di server jarak jauh, dan sebagainya. Kotak dialog juga menyediakan tombol Batalkan bagi pengguna untuk mengakhiri operasi.
RasDialDlg kembali saat koneksi dibuat, atau ketika pengguna membatalkan operasi.
Contoh kode berikut memanggil entri dalam buku telepon default yang ditentukan oleh variabel 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;
}
Catatan
Header rasdlg.h mendefinisikan RasDialDlg sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta pra-prosesor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Target Platform | Windows |
Header | rasdlg.h |
Pustaka | Rasdlg.lib |
DLL | Rasdlg.dll |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk