3 * @copy 2012 MinGW.org project
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the "Software"),
7 * to deal in the Software without restriction, including without limitation
8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 * and/or sell copies of the Software, and to permit persons to whom the
10 * Software is furnished to do so, subject to the following conditions:
12 * The above copyright notice and this permission notice (including the next
13 * paragraph) shall be included in all copies or substantial portions of the
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22 * DEALINGS IN THE SOFTWARE.
26 #pragma GCC system_header
37 include <basetsd.h> from winnt.h so that this typedef is not necessary
40 typedef unsigned long ULONG_PTR, *PULONG_PTR;
45 #define RAS_MaxDeviceType 16
46 #define RAS_MaxPhoneNumber 128
47 #define RAS_MaxIpAddress 15
48 #define RAS_MaxIpxAddress 21
49 #define RAS_MaxEntryName 256
50 #define RAS_MaxDeviceName 128
51 #define RAS_MaxCallbackNumber RAS_MaxPhoneNumber
52 #define RAS_MaxAreaCode 10
53 #define RAS_MaxPadType 32
54 #define RAS_MaxX25Address 200
55 #define RAS_MaxFacilities 200
56 #define RAS_MaxUserData 200
57 #define RAS_MaxReplyMessage 1024
58 #define RAS_MaxDnsSuffix 256
59 #define RDEOPT_UsePrefixSuffix 0x00000001
60 #define RDEOPT_PausedStates 0x00000002
61 #define RDEOPT_IgnoreModemSpeaker 0x00000004
62 #define RDEOPT_SetModemSpeaker 0x00000008
63 #define RDEOPT_IgnoreSoftwareCompression 0x00000010
64 #define RDEOPT_SetSoftwareCompression 0x00000020
65 #define RDEOPT_DisableConnectedUI 0x00000040
66 #define RDEOPT_DisableReconnectUI 0x00000080
67 #define RDEOPT_DisableReconnect 0x00000100
68 #define RDEOPT_NoUser 0x00000200
69 #define RDEOPT_PauseOnScript 0x00000400
70 #define RDEOPT_Router 0x00000800
71 #define REN_User 0x00000000
72 #define REN_AllUsers 0x00000001
75 #define VS_PptpFirst 2
77 #define VS_L2tpFirst 4
78 #define RASDIALEVENT "RasDialEvent"
79 #define WM_RASDIALEVENT 0xCCCD
80 #define RASEO_UseCountryAndAreaCodes 0x00000001
81 #define RASEO_SpecificIpAddr 0x00000002
82 #define RASEO_SpecificNameServers 0x00000004
83 #define RASEO_IpHeaderCompression 0x00000008
84 #define RASEO_RemoteDefaultGateway 0x00000010
85 #define RASEO_DisableLcpExtensions 0x00000020
86 #define RASEO_TerminalBeforeDial 0x00000040
87 #define RASEO_TerminalAfterDial 0x00000080
88 #define RASEO_ModemLights 0x00000100
89 #define RASEO_SwCompression 0x00000200
90 #define RASEO_RequireEncryptedPw 0x00000400
91 #define RASEO_RequireMsEncryptedPw 0x00000800
92 #define RASEO_RequireDataEncryption 0x00001000
93 #define RASEO_NetworkLogon 0x00002000
94 #define RASEO_UseLogonCredentials 0x00004000
95 #define RASEO_PromoteAlternates 0x00008000
96 #define RASNP_NetBEUI 0x00000001
97 #define RASNP_Ipx 0x00000002
98 #define RASNP_Ip 0x00000004
99 #define RASFP_Ppp 0x00000001
100 #define RASFP_Slip 0x00000002
101 #define RASFP_Ras 0x00000004
102 #define RASDT_Modem TEXT("modem")
103 #define RASDT_Isdn TEXT("isdn")
104 #define RASDT_X25 TEXT("x25")
105 #define RASDT_Vpn TEXT("vpn")
106 #define RASDT_Pad TEXT("pad")
107 #define RASDT_Generic TEXT("GENERIC")
108 #define RASDT_Serial TEXT("SERIAL")
109 #define RASDT_FrameRelay TEXT("FRAMERELAY")
110 #define RASDT_Atm TEXT("ATM")
111 #define RASDT_Sonet TEXT("SONET")
112 #define RASDT_SW56 TEXT("SW56")
113 #define RASDT_Irda TEXT("IRDA")
114 #define RASDT_Parallel TEXT("PARALLEL")
115 #define RASET_Phone 1
117 #define RASET_Direct 3
118 #define RASET_Internet 4
120 #define RASCS_PAUSED 0x1000
121 #define RASCS_DONE 0x2000
122 typedef enum tagRASCONNSTATE {
126 RASCS_DeviceConnected,
127 RASCS_AllDevicesConnected,
132 RASCS_AuthChangePassword,
136 RASCS_ReAuthenticate,
138 RASCS_PrepareForCallback,
139 RASCS_WaitForModemReset,
140 RASCS_WaitForCallback,
142 RASCS_StartAuthentication,
143 RASCS_CallbackComplete,
145 RASCS_SubEntryConnected,
146 RASCS_SubEntryDisconnected,
147 RASCS_Interactive = RASCS_PAUSED,
148 RASCS_RetryAuthentication,
149 RASCS_CallbackSetByCaller,
150 RASCS_PasswordExpired,
151 #if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
154 RASCS_Connected = RASCS_DONE,
156 } RASCONNSTATE, *LPRASCONNSTATE;
158 typedef enum tagRASPROJECTION {
160 RASP_PppNbf = 0x803F,
161 RASP_PppIpx = 0x802B,
163 #if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
164 RASP_PppCcp = 0x80FD,
166 RASP_PppLcp = 0xC021,
168 } RASPROJECTION, *LPRASPROJECTION;
170 DECLARE_HANDLE (HRASCONN);
171 typedef HRASCONN* LPHRASCONN;
173 typedef struct tagRASCONNW {
176 WCHAR szEntryName[RAS_MaxEntryName + 1];
177 WCHAR szDeviceType[RAS_MaxDeviceType + 1];
178 WCHAR szDeviceName[RAS_MaxDeviceName + 1];
179 #if (_WIN32_WINNT >= _WIN32_WINNT_NT4E)
180 WCHAR szPhonebook[MAX_PATH];
183 #if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
186 #if (_WIN32_WINNT >= _WIN32_WINNT_WINXP)
190 } RASCONNW, *LPRASCONNW;
192 typedef struct tagRASCONNA {
195 CHAR szEntryName[RAS_MaxEntryName + 1];
196 CHAR szDeviceType[RAS_MaxDeviceType + 1];
197 CHAR szDeviceName[RAS_MaxDeviceName + 1];
198 #if (_WIN32_WINNT >= _WIN32_WINNT_NT4E)
199 CHAR szPhonebook[MAX_PATH];
202 #if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
205 #if (_WIN32_WINNT >= _WIN32_WINNT_WINXP)
209 } RASCONNA, *LPRASCONNA;
211 typedef struct tagRASCONNSTATUSW {
213 RASCONNSTATE rasconnstate;
215 WCHAR szDeviceType[RAS_MaxDeviceType + 1];
216 WCHAR szDeviceName[RAS_MaxDeviceName + 1];
217 #if (_WIN32_WINNT >= _WIN32_WINNT_NT4E)
218 WCHAR szPhoneNumber[RAS_MaxPhoneNumber + 1];
220 } RASCONNSTATUSW, *LPRASCONNSTATUSW;
222 typedef struct tagRASCONNSTATUSA {
224 RASCONNSTATE rasconnstate;
226 CHAR szDeviceType[RAS_MaxDeviceType + 1];
227 CHAR szDeviceName[RAS_MaxDeviceName + 1];
228 #if (_WIN32_WINNT >= _WIN32_WINNT_NT4E)
229 CHAR szPhoneNumber[RAS_MaxPhoneNumber + 1];
231 } RASCONNSTATUSA, *LPRASCONNSTATUSA;
233 typedef struct tagRASDIALPARAMSW {
235 WCHAR szEntryName[RAS_MaxEntryName + 1];
236 WCHAR szPhoneNumber[RAS_MaxPhoneNumber + 1];
237 WCHAR szCallbackNumber[RAS_MaxCallbackNumber + 1];
238 WCHAR szUserName[UNLEN + 1];
239 WCHAR szPassword[PWLEN + 1];
240 WCHAR szDomain[DNLEN + 1];
241 #if (_WIN32_WINNT >= _WIN32_WINNT_NT4E)
243 ULONG_PTR dwCallbackId;
245 } RASDIALPARAMSW, *LPRASDIALPARAMSW;
247 typedef struct tagRASDIALPARAMSA {
249 CHAR szEntryName[RAS_MaxEntryName + 1];
250 CHAR szPhoneNumber[RAS_MaxPhoneNumber + 1];
251 CHAR szCallbackNumber[RAS_MaxCallbackNumber + 1];
252 CHAR szUserName[UNLEN + 1];
253 CHAR szPassword[PWLEN + 1];
254 CHAR szDomain[DNLEN + 1];
255 #if (_WIN32_WINNT >= _WIN32_WINNT_NT4E)
257 ULONG_PTR dwCallbackId;
259 } RASDIALPARAMSA, *LPRASDIALPARAMSA;
261 typedef struct tagRASDIALEXTENSIONS {
266 #if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
268 RASEAPINFO RasEapInfo;
270 } RASDIALEXTENSIONS, *LPRASDIALEXTENSIONS;
272 typedef struct tagRASENTRYNAMEW {
274 WCHAR szEntryName[RAS_MaxEntryName + 1];
275 #if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
277 WCHAR szPhonebookPath[MAX_PATH + 1];
279 } RASENTRYNAMEW, *LPRASENTRYNAMEW;
281 typedef struct tagRASENTRYNAMEA {
283 CHAR szEntryName[RAS_MaxEntryName + 1];
284 #if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
286 CHAR szPhonebookPath[MAX_PATH + 1];
288 } RASENTRYNAMEA, *LPRASENTRYNAMEA;
290 typedef struct tagRASAMBW {
293 WCHAR szNetBiosError[NETBIOS_NAME_LEN + 1];
295 } RASAMBW, *LPRASAMBW;
297 typedef struct tagRASAMBA {
300 CHAR szNetBiosError[NETBIOS_NAME_LEN + 1];
302 } RASAMBA, *LPRASAMBA;
304 typedef struct tagRASPPPNBFW {
307 DWORD dwNetBiosError;
308 WCHAR szNetBiosError[NETBIOS_NAME_LEN + 1];
309 WCHAR szWorkstationName[NETBIOS_NAME_LEN + 1];
311 } RASPPPNBFW, *LPRASPPPNBFW;
313 typedef struct tagRASPPPNBFA {
316 DWORD dwNetBiosError;
317 CHAR szNetBiosError[NETBIOS_NAME_LEN + 1];
318 CHAR szWorkstationName[NETBIOS_NAME_LEN + 1];
320 } RASPPPNBFA, *LPRASPPPNBFA;
322 typedef struct tagRASIPXW {
325 WCHAR szIpxAddress[RAS_MaxIpxAddress + 1];
326 } RASPPPIPXW, *LPRASPPPIPXW;
328 typedef struct tagRASIPXA {
331 CHAR szIpxAddress[RAS_MaxIpxAddress + 1];
332 } RASPPPIPXA, *LPRASPPPIPXA;
334 typedef struct tagRASPPPIPW {
337 WCHAR szIpAddress[RAS_MaxIpAddress + 1];
338 #ifndef WINNT35COMPATIBLE
339 WCHAR szServerIpAddress[RAS_MaxIpAddress + 1];
341 #if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
343 DWORD dwServerOptions;
345 } RASPPPIPW, *LPRASPPPIPW;
347 typedef struct tagRASPPPIPA {
350 CHAR szIpAddress[RAS_MaxIpAddress + 1];
351 #ifndef WINNT35COMPATIBLE
352 CHAR szServerIpAddress[RAS_MaxIpAddress + 1];
354 #if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
356 DWORD dwServerOptions;
358 } RASPPPIPA, *LPRASPPPIPA;
360 typedef struct tagRASPPPLCPW {
363 #if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
365 DWORD dwAuthenticationProtocol;
366 DWORD dwAuthenticationData;
368 DWORD dwServerAuthenticationProtocol;
369 DWORD dwServerAuthenticationData;
370 DWORD dwServerEapTypeId;
372 DWORD dwTerminateReason;
373 DWORD dwServerTerminateReason;
374 WCHAR szReplyMessage[RAS_MaxReplyMessage];
376 DWORD dwServerOptions;
378 } RASPPPLCPW, *LPRASPPPLCPW;
380 typedef struct tagRASPPPLCPA {
383 #if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
385 DWORD dwAuthenticationProtocol;
386 DWORD dwAuthenticationData;
388 DWORD dwServerAuthenticationProtocol;
389 DWORD dwServerAuthenticationData;
390 DWORD dwServerEapTypeId;
392 DWORD dwTerminateReason;
393 DWORD dwServerTerminateReason;
394 CHAR szReplyMessage[RAS_MaxReplyMessage];
396 DWORD dwServerOptions;
398 } RASPPPLCPA, *LPRASPPPLCPA;
400 typedef struct tagRASSLIPW {
403 WCHAR szIpAddress[RAS_MaxIpAddress + 1];
404 } RASSLIPW, *LPRASSLIPW;
407 typedef struct tagRASSLIPA {
410 CHAR szIpAddress[RAS_MaxIpAddress + 1];
411 } RASSLIPA, *LPRASSLIPA;
413 typedef struct tagRASDEVINFOW {
415 WCHAR szDeviceType[RAS_MaxDeviceType + 1];
416 WCHAR szDeviceName[RAS_MaxDeviceName + 1];
417 } RASDEVINFOW, *LPRASDEVINFOW;
419 typedef struct tagRASDEVINFOA {
421 CHAR szDeviceType[RAS_MaxDeviceType + 1];
422 CHAR szDeviceName[RAS_MaxDeviceName + 1];
423 } RASDEVINFOA, *LPRASDEVINFOA;
425 typedef struct tagRASCTRYINFO {
428 DWORD dwNextCountryID;
430 DWORD dwCountryNameOffset;
431 } RASCTRYINFO, *LPRASCTRYINFO;
433 typedef RASCTRYINFO RASCTRYINFOW, *LPRASCTRYINFOW;
434 typedef RASCTRYINFO RASCTRYINFOA, *LPRASCTRYINFOA;
436 typedef struct tagRASIPADDR {
443 typedef struct tagRASENTRYW {
448 WCHAR szAreaCode[RAS_MaxAreaCode + 1];
449 WCHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1];
450 DWORD dwAlternateOffset;
453 RASIPADDR ipaddrDnsAlt;
454 RASIPADDR ipaddrWins;
455 RASIPADDR ipaddrWinsAlt;
457 DWORD dwfNetProtocols;
458 DWORD dwFramingProtocol;
459 WCHAR szScript[MAX_PATH];
460 WCHAR szAutodialDll[MAX_PATH];
461 WCHAR szAutodialFunc[MAX_PATH];
462 WCHAR szDeviceType[RAS_MaxDeviceType + 1];
463 WCHAR szDeviceName[RAS_MaxDeviceName + 1];
464 WCHAR szX25PadType[RAS_MaxPadType + 1];
465 WCHAR szX25Address[RAS_MaxX25Address + 1];
466 WCHAR szX25Facilities[RAS_MaxFacilities + 1];
467 WCHAR szX25UserData[RAS_MaxUserData + 1];
471 #if (_WIN32_WINNT >= _WIN32_WINNT_NT4E)
474 DWORD dwDialExtraPercent;
475 DWORD dwDialExtraSampleSeconds;
476 DWORD dwHangUpExtraPercent;
477 DWORD dwHangUpExtraSampleSeconds;
478 DWORD dwIdleDisconnectSeconds;
480 #if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
482 DWORD dwEncryptionType;
483 DWORD dwCustomAuthKey;
485 WCHAR szCustomDialDll[MAX_PATH];
488 #if (_WIN32_WINNT >= _WIN32_WINNT_WINXP)
491 WCHAR szDnsSuffix[RAS_MaxDnsSuffix];
492 DWORD dwTcpWindowSize;
493 WCHAR szPrerequisitePbk[MAX_PATH];
494 WCHAR szPrerequisiteEntry[RAS_MaxEntryName + 1];
498 } RASENTRYW, *LPRASENTRYW;
500 typedef struct tagRASENTRYA {
505 CHAR szAreaCode[RAS_MaxAreaCode + 1];
506 CHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1];
507 DWORD dwAlternateOffset;
510 RASIPADDR ipaddrDnsAlt;
511 RASIPADDR ipaddrWins;
512 RASIPADDR ipaddrWinsAlt;
514 DWORD dwfNetProtocols;
515 DWORD dwFramingProtocol;
516 CHAR szScript[MAX_PATH];
517 CHAR szAutodialDll[MAX_PATH];
518 CHAR szAutodialFunc[MAX_PATH];
519 CHAR szDeviceType[RAS_MaxDeviceType + 1];
520 CHAR szDeviceName[RAS_MaxDeviceName + 1];
521 CHAR szX25PadType[RAS_MaxPadType + 1];
522 CHAR szX25Address[RAS_MaxX25Address + 1];
523 CHAR szX25Facilities[RAS_MaxFacilities + 1];
524 CHAR szX25UserData[RAS_MaxUserData + 1];
528 #if (_WIN32_WINNT >= _WIN32_WINNT_NT4E)
531 DWORD dwDialExtraPercent;
532 DWORD dwDialExtraSampleSeconds;
533 DWORD dwHangUpExtraPercent;
534 DWORD dwHangUpExtraSampleSeconds;
535 DWORD dwIdleDisconnectSeconds;
537 #if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
539 DWORD dwEncryptionType;
540 DWORD dwCustomAuthKey;
542 CHAR szCustomDialDll[MAX_PATH];
545 #if (_WIN32_WINNT >= _WIN32_WINNT_WINXP)
548 CHAR szDnsSuffix[RAS_MaxDnsSuffix];
549 DWORD dwTcpWindowSize;
550 CHAR szPrerequisitePbk[MAX_PATH];
551 CHAR szPrerequisiteEntry[RAS_MaxEntryName + 1];
555 } RASENTRYA, *LPRASENTRYA;
559 /* UNICODE typedefs for structures*/
560 typedef __AW(RASCONN) RASCONN, *LPRASCONN;
561 typedef __AW(RASENTRYW) RASENTRY, *LPRASENTRY;
562 typedef __AW(RASCONNSTATUS) RASCONNSTATUS, *LPRASCONNSTATUS;
563 typedef __AW(RASDIALPARAMS) RASDIALPARAMS, *LPRASDIALPARAMS;
564 typedef __AW(RASAMB) RASAMB, *LPRASAM;
565 typedef __AW(RASPPPNBF) RASPPPNBF, *LPRASPPPNBF;
566 typedef __AW(RASPPPIPX) RASPPPIPX, *LPRASPPPIPX;
567 typedef __AW(RASPPPIP) RASPPPIP, *LPRASPPPIP;
568 typedef __AW(RASPPPLCP) RASPPPLCP, *LPRASPPPLCP;
569 typedef __AW(RASSLIP) RASSLIP, *LPRASSLIP;
570 typedef __AW(RASDEVINFOW) RASDEVINFO, *LPRASDEVINFO;
571 typedef __AW(RASENTRYNAME) RASENTRYNAME, *LPRASENTRYNAME;
574 /* Callback prototypes */
575 typedef BOOL (WINAPI * ORASADFUNC) (HWND, LPSTR, DWORD, LPDWORD); /* deprecated */
576 typedef VOID (WINAPI * RASDIALFUNC) (UINT, RASCONNSTATE, DWORD);
577 typedef VOID (WINAPI * RASDIALFUNC1) (HRASCONN, UINT, RASCONNSTATE, DWORD,
579 typedef DWORD (WINAPI * RASDIALFUNC2) (ULONG_PTR, DWORD, HRASCONN, UINT,
580 RASCONNSTATE, DWORD, DWORD);
582 /* External functions */
583 DWORD APIENTRY RasDialA (LPRASDIALEXTENSIONS, LPCSTR, LPRASDIALPARAMSA,
584 DWORD, LPVOID, LPHRASCONN);
585 DWORD APIENTRY RasDialW (LPRASDIALEXTENSIONS, LPCWSTR, LPRASDIALPARAMSW,
586 DWORD, LPVOID, LPHRASCONN);
587 DWORD APIENTRY RasEnumConnectionsA (LPRASCONNA, LPDWORD, LPDWORD);
588 DWORD APIENTRY RasEnumConnectionsW (LPRASCONNW, LPDWORD, LPDWORD);
589 DWORD APIENTRY RasEnumEntriesA (LPCSTR, LPCSTR, LPRASENTRYNAMEA, LPDWORD,
591 DWORD APIENTRY RasEnumEntriesW (LPCWSTR, LPCWSTR, LPRASENTRYNAMEW, LPDWORD,
593 DWORD APIENTRY RasGetConnectStatusA (HRASCONN, LPRASCONNSTATUSA);
594 DWORD APIENTRY RasGetConnectStatusW (HRASCONN, LPRASCONNSTATUSW);
595 DWORD APIENTRY RasGetErrorStringA (UINT, LPSTR, DWORD);
596 DWORD APIENTRY RasGetErrorStringW (UINT, LPWSTR, DWORD);
597 DWORD APIENTRY RasHangUpA (HRASCONN);
598 DWORD APIENTRY RasHangUpW (HRASCONN);
599 DWORD APIENTRY RasGetProjectionInfoA (HRASCONN, RASPROJECTION, LPVOID,
601 DWORD APIENTRY RasGetProjectionInfoW (HRASCONN, RASPROJECTION, LPVOID,
603 DWORD APIENTRY RasCreatePhonebookEntryA (HWND, LPCSTR);
604 DWORD APIENTRY RasCreatePhonebookEntryW (HWND, LPCWSTR);
605 DWORD APIENTRY RasEditPhonebookEntryA (HWND, LPCSTR, LPCSTR);
606 DWORD APIENTRY RasEditPhonebookEntryW (HWND, LPCWSTR, LPCWSTR);
607 DWORD APIENTRY RasSetEntryDialParamsA (LPCSTR, LPRASDIALPARAMSA, BOOL);
608 DWORD APIENTRY RasSetEntryDialParamsW (LPCWSTR, LPRASDIALPARAMSW, BOOL);
609 DWORD APIENTRY RasGetEntryDialParamsA (LPCSTR, LPRASDIALPARAMSA, LPBOOL);
610 DWORD APIENTRY RasGetEntryDialParamsW (LPCWSTR, LPRASDIALPARAMSW, LPBOOL);
611 DWORD APIENTRY RasEnumDevicesA (LPRASDEVINFOA, LPDWORD, LPDWORD);
612 DWORD APIENTRY RasEnumDevicesW (LPRASDEVINFOW, LPDWORD, LPDWORD);
613 DWORD APIENTRY RasGetCountryInfoA (LPRASCTRYINFOA, LPDWORD);
614 DWORD APIENTRY RasGetCountryInfoW (LPRASCTRYINFOW, LPDWORD);
615 DWORD APIENTRY RasGetEntryPropertiesA (LPCSTR, LPCSTR, LPRASENTRYA, LPDWORD,
617 DWORD APIENTRY RasGetEntryPropertiesW (LPCWSTR, LPCWSTR, LPRASENTRYW,
618 LPDWORD, LPBYTE, LPDWORD);
619 DWORD APIENTRY RasSetEntryPropertiesA (LPCSTR, LPCSTR, LPRASENTRYA, DWORD,
621 DWORD APIENTRY RasSetEntryPropertiesW (LPCWSTR, LPCWSTR, LPRASENTRYW, DWORD,
623 DWORD APIENTRY RasRenameEntryA (LPCSTR, LPCSTR, LPCSTR);
624 DWORD APIENTRY RasRenameEntryW (LPCWSTR, LPCWSTR, LPCWSTR);
625 DWORD APIENTRY RasDeleteEntryA (LPCSTR, LPCSTR);
626 DWORD APIENTRY RasDeleteEntryW (LPCWSTR, LPCWSTR);
627 DWORD APIENTRY RasValidateEntryNameA (LPCSTR, LPCSTR);
628 DWORD APIENTRY RasValidateEntryNameW (LPCWSTR, LPCWSTR);
631 /* UNICODE defines for functions */
632 #define RasDial __AW(RasDial)
633 #define RasEnumConnections __AW(RasEnumConnections)
634 #define RasEnumEntries __AW(RasEnumEntries)
635 #define RasGetConnectStatus __AW(RasGetConnectStatus)
636 #define RasGetErrorString __AW(RasGetErrorString)
637 #define RasHangUp __AW(RasHangUp)
638 #define RasGetProjectionInfo __AW(RasGetProjectionInfo)
639 #define RasCreatePhonebookEntry __AW(RasCreatePhonebookEntry)
640 #define RasEditPhonebookEntry __AW(RasEditPhonebookEntry)
641 #define RasSetEntryDialParams __AW(RasSetEntryDialParams)
642 #define RasGetEntryDialParams __AW(RasGetEntryDialParams)
643 #define RasEnumDevices __AW(RasEnumDevices)
644 #define RasGetCountryInfo __AW(RasGetCountryInfo)
645 #define RasGetEntryProperties __AW(RasGetEntryProperties)
646 #define RasSetEntryProperties __AW(RasSetEntryProperties)
647 #define RasRenameEntry __AW(RasRenameEntry)
648 #define RasDeleteEntry __AW(RasDeleteEntry)
649 #define RasValidateEntryName __AW(RasValidateEntryName)
651 #if (_WIN32_WINNT >= _WIN32_WINNT_NT4E)
652 #define RASADFUNC __AW(RASADFUNC)
653 #define RasGetSubEntryHandle __AW(RasGetSubEntryHandle)
654 #define RasConnectionNotification __AW(RasConnectionNotification)
655 #define RasGetSubEntryProperties __AW(RasGetSubEntryProperties)
656 #define RasSetSubEntryProperties __AW(RasSetSubEntryProperties)
657 #define RasGetCredentials __AW(RasGetCredentials)
658 #define RasSetCredentials __AW(RasSetCredentials)
659 #define RasGetAutodialAddress __AW(RasGetAutodialAddress)
660 #define RasSetAutodialAddress __AW(RasSetAutodialAddress)
661 #define RasEnumAutodialAddresses __AW(RasEnumAutodialAddresses)
662 #define RasGetAutodialEnable __AW(RasGetAutodialEnable)
663 #define RasSetAutodialEnable __AW(RasSetAutodialEnable)
664 #define RasGetAutodialParam __AW(RasGetAutodialParam)
665 #define RasSetAutodialParam __AW(RasSetAutodialParam)
666 #define RASEO_SecureLocalFiles 0x00010000
667 #define RASCN_Connection 0x00000001
668 #define RASCN_Disconnection 0x00000002
669 #define RASCN_BandwidthAdded 0x00000004
670 #define RASCN_BandwidthRemoved 0x00000008
671 #define RASEDM_DialAll 1
672 #define RASEDM_DialAsNeeded 2
673 #define RASIDS_Disabled 0xffffffff
674 #define RASIDS_UseGlobalValue 0
675 #define RASADFLG_PositionDlg 0x00000001
676 #define RASCM_UserName 0x00000001
677 #define RASCM_Password 0x00000002
678 #define RASCM_Domain 0x00000004
679 #define RASADP_DisableConnectionQuery 0
680 #define RASADP_LoginSessionDisable 1
681 #define RASADP_SavedAddressesLimit 2
682 #define RASADP_FailedConnectionTimeout 3
683 #define RASADP_ConnectionQueryTimeout 4
685 typedef BOOL (WINAPI * RASADFUNCA) (LPSTR, LPSTR, LPRASADPARAMS, LPDWORD);
686 typedef BOOL (WINAPI * RASADFUNCW) (LPWSTR, LPWSTR, LPRASADPARAMS, LPDWORD);
688 DWORD APIENTRY RasGetSubEntryHandleA (HRASCONN, DWORD, LPHRASCONN);
689 DWORD APIENTRY RasGetSubEntryHandleW (HRASCONN, DWORD, LPHRASCONN);
690 DWORD APIENTRY RasGetCredentialsA (LPCSTR, LPCSTR, LPRASCREDENTIALSA);
691 DWORD APIENTRY RasGetCredentialsW (LPCWSTR, LPCWSTR, LPRASCREDENTIALSW);
692 DWORD APIENTRY RasSetCredentialsA (LPCSTR, LPCSTR, LPRASCREDENTIALSA, BOOL);
693 DWORD APIENTRY RasSetCredentialsW (LPCWSTR, LPCWSTR, LPRASCREDENTIALSW, BOOL);
694 DWORD APIENTRY RasConnectionNotificationA (HRASCONN, HANDLE, DWORD);
695 DWORD APIENTRY RasConnectionNotificationW (HRASCONN, HANDLE, DWORD);
696 DWORD APIENTRY RasGetSubEntryPropertiesA (LPCSTR, LPCSTR, DWORD,
697 LPRASSUBENTRYA, LPDWORD, LPBYTE, LPDWORD);
698 DWORD APIENTRY RasGetSubEntryPropertiesW (LPCWSTR, LPCWSTR, DWORD,
699 LPRASSUBENTRYW, LPDWORD, LPBYTE, LPDWORD);
700 DWORD APIENTRY RasSetSubEntryPropertiesA (LPCSTR, LPCSTR, DWORD,
701 LPRASSUBENTRYA, DWORD, LPBYTE, DWORD);
702 DWORD APIENTRY RasSetSubEntryPropertiesW (LPCWSTR, LPCWSTR, DWORD,
703 LPRASSUBENTRYW, DWORD, LPBYTE, DWORD);
704 DWORD APIENTRY RasGetAutodialAddressA (LPCSTR, LPDWORD, LPRASAUTODIALENTRYA,
706 DWORD APIENTRY RasGetAutodialAddressW (LPCWSTR, LPDWORD,
707 LPRASAUTODIALENTRYW, LPDWORD, LPDWORD);
708 DWORD APIENTRY RasSetAutodialAddressA (LPCSTR, DWORD, LPRASAUTODIALENTRYA,
710 DWORD APIENTRY RasSetAutodialAddressW (LPCWSTR, DWORD, LPRASAUTODIALENTRYW,
712 DWORD APIENTRY RasEnumAutodialAddressesA (LPSTR *, LPDWORD, LPDWORD);
713 DWORD APIENTRY RasEnumAutodialAddressesW (LPWSTR *, LPDWORD, LPDWORD);
714 DWORD APIENTRY RasGetAutodialEnableA (DWORD, LPBOOL);
715 DWORD APIENTRY RasGetAutodialEnableW (DWORD, LPBOOL);
716 DWORD APIENTRY RasSetAutodialEnableA (DWORD, BOOL);
717 DWORD APIENTRY RasSetAutodialEnableW (DWORD, BOOL);
718 DWORD APIENTRY RasGetAutodialParamA (DWORD, LPVOID, LPDWORD);
719 DWORD APIENTRY RasGetAutodialParamW (DWORD, LPVOID, LPDWORD);
720 DWORD APIENTRY RasSetAutodialParamA (DWORD, LPVOID, DWORD);
721 DWORD APIENTRY RasSetAutodialParamW (DWORD, LPVOID, DWORD);
722 typedef __AW(RASSUBENTRY) RASSUBENTRY, *LPRASSUBENTRY;
723 typedef __AW(RASCREDENTIALS) RASCREDENTIALS, *LPRASCREDENTIALS;
724 typedef __AW(RASAUTODIALENTRY) RASAUTODIALENTRY, *LPRASAUTODIALENTRY;
725 typedef struct tagRASADPARAMS {
731 } RASADPARAMS, *LPRASADPARAMS;
733 typedef struct tagRASSUBENTRYW {
736 WCHAR szDeviceType[RAS_MaxDeviceType + 1];
737 WCHAR szDeviceName[RAS_MaxDeviceName + 1];
738 WCHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1];
739 DWORD dwAlternateOffset;
740 } RASSUBENTRYW, *LPRASSUBENTRYW;
742 typedef struct tagRASSUBENTRYA {
745 CHAR szDeviceType[RAS_MaxDeviceType + 1];
746 CHAR szDeviceName[RAS_MaxDeviceName + 1];
747 CHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1];
748 DWORD dwAlternateOffset;
749 } RASSUBENTRYA, *LPRASSUBENTRYA;
751 typedef struct tagRASCREDENTIALSW {
754 WCHAR szUserName[UNLEN + 1];
755 WCHAR szPassword[PWLEN + 1];
756 WCHAR szDomain[DNLEN + 1];
757 } RASCREDENTIALSW, *LPRASCREDENTIALSW;
759 typedef struct tagRASCREDENTIALSA {
762 CHAR szUserName[UNLEN + 1];
763 CHAR szPassword[PWLEN + 1];
764 CHAR szDomain[DNLEN + 1];
765 } RASCREDENTIALSA, *LPRASCREDENTIALSA;
767 typedef struct tagRASAUTODIALENTRYW {
770 DWORD dwDialingLocation;
771 WCHAR szEntry[RAS_MaxEntryName + 1];
772 } RASAUTODIALENTRYW, *LPRASAUTODIALENTRYW;
774 typedef struct tagRASAUTODIALENTRYA {
777 DWORD dwDialingLocation;
778 CHAR szEntry[RAS_MaxEntryName + 1];
779 } RASAUTODIALENTRYA, *LPRASAUTODIALENTRYA;
781 #endif /* (_WIN32_WINNT >= _WIN32_WINNT_NT4E) */
783 #if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
784 #define RasGetEapUserData __AW(RasGetEapUserData)
785 #define RasSetEapUserData __AW(RasSetEapUserData)
786 #define RasGetCustomAuthData __AW(RasGetCustomAuthData)
787 #define RasSetCustomAuthData __AW(RasSetCustomAuthData)
788 #define RasGetEapUserIdentity __AW(RasGetEapUserIdentity)
789 #define RasFreeEapUserIdentity __AW(RasFreeEapUserIdentity)
790 #define RDEOPT_CustomDial 0x00001000
791 #define RASLCPAP_PAP 0xC023
792 #define RASLCPAP_SPAP 0xC027
793 #define RASLCPAP_CHAP 0xC223
794 #define RASLCPAP_EAP 0xC227
795 #define RASLCPAD_CHAP_MD5 0x05
796 #define RASLCPAD_CHAP_MS 0x80
797 #define RASLCPAD_CHAP_MSV2 0x81
798 #define RASLCPO_PFC 0x00000001
799 #define RASLCPO_ACFC 0x00000002
800 #define RASLCPO_SSHF 0x00000004
801 #define RASLCPO_DES_56 0x00000008
802 #define RASLCPO_3_DES 0x00000010
803 #define RASCCPCA_MPPC 0x00000006
804 #define RASCCPCA_STAC 0x00000005
805 #define RASCCPO_Compression 0x00000001
806 #define RASCCPO_HistoryLess 0x00000002
807 #define RASCCPO_Encryption56bit 0x00000010
808 #define RASCCPO_Encryption40bit 0x00000020
809 #define RASCCPO_Encryption128bit 0x00000040
810 #define RASEO_RequireEAP 0x00020000
811 #define RASEO_RequirePAP 0x00040000
812 #define RASEO_RequireSPAP 0x00080000
813 #define RASEO_Custom 0x00100000
814 #define RASEO_PreviewPhoneNumber 0x00200000
815 #define RASEO_SharedPhoneNumbers 0x00800000
816 #define RASEO_PreviewUserPw 0x01000000
817 #define RASEO_PreviewDomain 0x02000000
818 #define RASEO_ShowDialingProgress 0x04000000
819 #define RASEO_RequireCHAP 0x08000000
820 #define RASEO_RequireMsCHAP 0x10000000
821 #define RASEO_RequireMsCHAP2 0x20000000
822 #define RASEO_RequireW95MSCHAP 0x40000000
823 #define RASEO_CustomScript 0x80000000
824 #define RASIPO_VJ 0x00000001
825 #define RCD_SingleUser 0
826 #define RCD_AllUsers 0x00000001
827 #define RCD_Eap 0x00000002
828 #define RASEAPF_NonInteractive 0x00000002
829 #define RASEAPF_Logon 0x00000004
830 #define RASEAPF_Preview 0x00000008
835 #define ET_RequireMax 2
836 #define ET_Optional 3
838 typedef struct tagRASEAPINFO {
839 DWORD dwSizeofEapInfo;
842 typedef DWORD (WINAPI * RasCustomHangUpFn) (HRASCONN);
843 typedef DWORD (WINAPI * RasCustomDeleteEntryNotifyFn) (LPCTSTR, LPCTSTR, DWORD);
844 typedef DWORD (WINAPI * RasCustomDialFn) (HINSTANCE, LPRASDIALEXTENSIONS,
845 LPCTSTR, LPRASDIALPARAMS, DWORD, LPVOID, LPHRASCONN, DWORD);
847 DWORD APIENTRY RasInvokeEapUI (HRASCONN, DWORD, LPRASDIALEXTENSIONS, HWND);
848 DWORD APIENTRY RasGetLinkStatistics (HRASCONN, DWORD, RAS_STATS*);
849 DWORD APIENTRY RasGetConnectionStatistics (HRASCONN, RAS_STATS*);
850 DWORD APIENTRY RasClearLinkStatistics (HRASCONN, DWORD);
851 DWORD APIENTRY RasClearConnectionStatistics (HRASCONN);
852 DWORD APIENTRY RasGetEapUserDataA (HANDLE, LPCSTR, LPCSTR, BYTE*, DWORD*);
853 DWORD APIENTRY RasGetEapUserDataW (HANDLE, LPCWSTR, LPCWSTR, BYTE*, DWORD*);
854 DWORD APIENTRY RasSetEapUserDataA (HANDLE, LPCSTR, LPCSTR, BYTE*, DWORD);
855 DWORD APIENTRY RasSetEapUserDataW (HANDLE, LPCWSTR, LPCWSTR, BYTE*, DWORD);
856 DWORD APIENTRY RasGetCustomAuthDataA (LPCSTR, LPCSTR, BYTE*, DWORD*);
857 DWORD APIENTRY RasGetCustomAuthDataW (LPCWSTR, LPCWSTR, BYTE*, DWORD*);
858 DWORD APIENTRY RasSetCustomAuthDataA (LPCSTR, LPCSTR, BYTE*, DWORD);
859 DWORD APIENTRY RasSetCustomAuthDataW (LPCWSTR, LPCWSTR, BYTE*, DWORD);
860 DWORD APIENTRY RasGetEapUserIdentityW (LPCWSTR, LPCWSTR, DWORD, HWND, LPRASEAPUSERIDENTITYW*);
861 DWORD APIENTRY RasGetEapUserIdentityA (LPCSTR, LPCSTR, DWORD, HWND, LPRASEAPUSERIDENTITYA*);
862 VOID APIENTRY RasFreeEapUserIdentityW (LPRASEAPUSERIDENTITYW);
863 VOID APIENTRY RasFreeEapUserIdentityA (LPRASEAPUSERIDENTITYA);
864 typedef __AW(RASEAPUSERIDENTITY) RASEAPUSERIDENTITY, *LPRASEAPUSERIDENTITY;
865 typedef struct tagRASPPPCCP {
868 DWORD dwCompressionAlgorithm;
870 DWORD dwServerCompressionAlgorithm;
871 DWORD dwServerOptions;
872 } RASPPPCCP, *LPRASPPPCCP;
874 typedef struct tagRASEAPUSERIDENTITYW {
875 WCHAR szUserName[UNLEN + 1];
876 DWORD dwSizeofEapInfo;
878 } RASEAPUSERIDENTITYW, *LPRASEAPUSERIDENTITYW;
880 typedef struct tagRASEAPUSERIDENTITYA {
881 CHAR szUserName[UNLEN + 1];
882 DWORD dwSizeofEapInfo;
884 } RASEAPUSERIDENTITYA, *LPRASEAPUSERIDENTITYA;
886 typedef struct tagRAS_STATS {
890 DWORD dwFramesXmited;
894 DWORD dwAlignmentErr;
895 DWORD dwHardwareOverrunErr;
897 DWORD dwBufferOverrunErr;
898 DWORD dwCompressionRatioIn;
899 DWORD dwCompressionRatioOut;
901 DWORD dwConnectDuration;
902 } RAS_STATS, *PRAS_STATS;
904 #endif /* (_WIN32_WINNT >= _WIN32_WINNT_WIN2K) */
906 #if (_WIN32_WINNT >= _WIN32_WINNT_WINXP)
907 #define RASEO2_SecureFileAndPrint 0x00000001
908 #define RASEO2_SecureClientForMSNet 0x00000002
909 #define RASEO2_DontNegotiateMultilink 0x00000004
910 #define RASEO2_DontUseRasCredentials 0x00000008
911 #define RASEO2_UsePreSharedKey 0x00000010
912 #define RASEO2_Internet 0x00000020
913 #define RASEO2_DisableNbtOverIP 0x00000040
914 #define RASEO2_UseGlobalDeviceSettings 0x00000080
915 #define RASEO2_ReconnectIfDropped 0x00000100
916 #define RASEO2_SharePhoneNumbers 0x00000200