root/trunk/win32/ras.d

Revision 372, 30.5 kB (checked in by CyberShadow, 5 months ago)

win32: Replace typedef with compatibility wrapper template

Line 
1 /***********************************************************************\
2 *                                 ras.d                                 *
3 *                                                                       *
4 *                       Windows API header module                       *
5 *                                                                       *
6 *                 Translated from MinGW Windows headers                 *
7 *                                                                       *
8 *                       Placed into public domain                       *
9 \***********************************************************************/
10 module win32.ras;
11 pragma(lib, "rasapi32.lib");
12
13 private import win32.basetyps, win32.lmcons, win32.w32api, win32.windef;
14
15 align(4):
16
17 const RAS_MaxDeviceType = 16;
18 const RAS_MaxPhoneNumber = 128;
19 const RAS_MaxIpAddress = 15;
20 const RAS_MaxIpxAddress = 21;
21 const RAS_MaxEntryName = 256;
22 const RAS_MaxDeviceName = 128;
23 const RAS_MaxCallbackNumber = RAS_MaxPhoneNumber;
24 const RAS_MaxAreaCode = 10;
25 const RAS_MaxPadType = 32;
26 const RAS_MaxX25Address = 200;
27 const RAS_MaxFacilities = 200;
28 const RAS_MaxUserData = 200;
29 const RAS_MaxReplyMessage = 1024;
30
31 const RDEOPT_UsePrefixSuffix           = 0x00000001;
32 const RDEOPT_PausedStates              = 0x00000002;
33 const RDEOPT_IgnoreModemSpeaker        = 0x00000004;
34 const RDEOPT_SetModemSpeaker           = 0x00000008;
35 const RDEOPT_IgnoreSoftwareCompression = 0x00000010;
36 const RDEOPT_SetSoftwareCompression    = 0x00000020;
37 const RDEOPT_DisableConnectedUI        = 0x00000040;
38 const RDEOPT_DisableReconnectUI        = 0x00000080;
39 const RDEOPT_DisableReconnect          = 0x00000100;
40 const RDEOPT_NoUser                    = 0x00000200;
41 const RDEOPT_PauseOnScript             = 0x00000400;
42 const RDEOPT_Router                    = 0x00000800;
43
44 const REN_User = 0x00000000;
45 const REN_AllUsers = 0x00000001;
46 const VS_Default = 0;
47 const VS_PptpOnly = 1;
48 const VS_PptpFirst = 2;
49 const VS_L2tpOnly = 3;
50 const VS_L2tpFirst = 4;
51
52 const RASDIALEVENT = "RasDialEvent";
53 const WM_RASDIALEVENT = 0xCCCD;
54
55 const RASEO_UseCountryAndAreaCodes = 0x00000001;
56 const RASEO_SpecificIpAddr = 0x00000002;
57 const RASEO_SpecificNameServers = 0x00000004;
58 const RASEO_IpHeaderCompression = 0x00000008;
59 const RASEO_RemoteDefaultGateway = 0x00000010;
60 const RASEO_DisableLcpExtensions = 0x00000020;
61 const RASEO_TerminalBeforeDial = 0x00000040;
62 const RASEO_TerminalAfterDial = 0x00000080;
63 const RASEO_ModemLights = 0x00000100;
64 const RASEO_SwCompression = 0x00000200;
65 const RASEO_RequireEncryptedPw = 0x00000400;
66 const RASEO_RequireMsEncryptedPw = 0x00000800;
67 const RASEO_RequireDataEncryption = 0x00001000;
68 const RASEO_NetworkLogon = 0x00002000;
69 const RASEO_UseLogonCredentials = 0x00004000;
70 const RASEO_PromoteAlternates = 0x00008000;
71 const RASNP_NetBEUI = 0x00000001;
72 const RASNP_Ipx = 0x00000002;
73 const RASNP_Ip = 0x00000004;
74 const RASFP_Ppp = 0x00000001;
75 const RASFP_Slip = 0x00000002;
76 const RASFP_Ras = 0x00000004;
77
78 const TCHAR[]
79     RASDT_Modem = "modem",
80     RASDT_Isdn = "isdn",
81     RASDT_X25 = "x25",
82     RASDT_Vpn = "vpn",
83     RASDT_Pad = "pad",
84     RASDT_Generic = "GENERIC",
85     RASDT_Serial = "SERIAL",
86     RASDT_FrameRelay = "FRAMERELAY",
87     RASDT_Atm = "ATM",
88     RASDT_Sonet = "SONET",
89     RASDT_SW56 = "SW56",
90     RASDT_Irda = "IRDA",
91     RASDT_Parallel = "PARALLEL";
92
93 const RASET_Phone = 1;
94 const RASET_Vpn = 2;
95 const RASET_Direct = 3;
96 const RASET_Internet = 4;
97
98 static if (WINVER >= 0x0401) {
99     const RASEO_SecureLocalFiles = 0x00010000;
100     const RASCN_Connection = 0x00000001;
101     const RASCN_Disconnection = 0x00000002;
102     const RASCN_BandwidthAdded = 0x00000004;
103     const RASCN_BandwidthRemoved = 0x00000008;
104     const RASEDM_DialAll = 1;
105     const RASEDM_DialAsNeeded = 2;
106     const RASIDS_Disabled = 0xffffffff;
107     const RASIDS_UseGlobalValue = 0;
108     const RASADFLG_PositionDlg = 0x00000001;
109     const RASCM_UserName = 0x00000001;
110     const RASCM_Password = 0x00000002;
111     const RASCM_Domain = 0x00000004;
112     const RASADP_DisableConnectionQuery = 0;
113     const RASADP_LoginSessionDisable = 1;
114     const RASADP_SavedAddressesLimit = 2;
115     const RASADP_FailedConnectionTimeout = 3;
116     const RASADP_ConnectionQueryTimeout = 4;
117 }
118 static if (WINVER >= 0x0500) {
119     const RDEOPT_CustomDial = 0x00001000;
120     const RASLCPAP_PAP = 0xC023;
121     const RASLCPAP_SPAP = 0xC027;
122     const RASLCPAP_CHAP = 0xC223;
123     const RASLCPAP_EAP = 0xC227;
124     const RASLCPAD_CHAP_MD5 = 0x05;
125     const RASLCPAD_CHAP_MS = 0x80;
126     const RASLCPAD_CHAP_MSV2 = 0x81;
127     const RASLCPO_PFC    = 0x00000001;
128     const RASLCPO_ACFC   = 0x00000002;
129     const RASLCPO_SSHF   = 0x00000004;
130     const RASLCPO_DES_56 = 0x00000008;
131     const RASLCPO_3_DES  = 0x00000010;
132
133     const RASCCPCA_MPPC = 0x00000006;
134     const RASCCPCA_STAC = 0x00000005;
135
136     const RASCCPO_Compression      = 0x00000001;
137     const RASCCPO_HistoryLess      = 0x00000002;
138     const RASCCPO_Encryption56bit  = 0x00000010;
139     const RASCCPO_Encryption40bit  = 0x00000020;
140     const RASCCPO_Encryption128bit = 0x00000040;
141
142     const RASEO_RequireEAP          = 0x00020000;
143     const RASEO_RequirePAP          = 0x00040000;
144     const RASEO_RequireSPAP         = 0x00080000;
145     const RASEO_Custom              = 0x00100000;
146     const RASEO_PreviewPhoneNumber  = 0x00200000;
147     const RASEO_SharedPhoneNumbers  = 0x00800000;
148     const RASEO_PreviewUserPw       = 0x01000000;
149     const RASEO_PreviewDomain       = 0x02000000;
150     const RASEO_ShowDialingProgress = 0x04000000;
151     const RASEO_RequireCHAP         = 0x08000000;
152     const RASEO_RequireMsCHAP       = 0x10000000;
153     const RASEO_RequireMsCHAP2      = 0x20000000;
154     const RASEO_RequireW95MSCHAP    = 0x40000000;
155     const RASEO_CustomScript        = 0x80000000;
156
157     const RASIPO_VJ = 0x00000001;
158     const RCD_SingleUser = 0;
159     const RCD_AllUsers = 0x00000001;
160     const RCD_Eap = 0x00000002;
161     const RASEAPF_NonInteractive = 0x00000002;
162     const RASEAPF_Logon = 0x00000004;
163     const RASEAPF_Preview = 0x00000008;
164     const ET_40Bit = 1;
165     const ET_128Bit = 2;
166     const ET_None = 0;
167     const ET_Require = 1;
168     const ET_RequireMax = 2;
169     const ET_Optional = 3;
170 }
171
172 const RASCS_PAUSED = 0x1000;
173 const RASCS_DONE = 0x2000;
174 enum RASCONNSTATE {
175     RASCS_OpenPort = 0,
176     RASCS_PortOpened,
177     RASCS_ConnectDevice,
178     RASCS_DeviceConnected,
179     RASCS_AllDevicesConnected,
180     RASCS_Authenticate,
181     RASCS_AuthNotify,
182     RASCS_AuthRetry,
183     RASCS_AuthCallback,
184     RASCS_AuthChangePassword,
185     RASCS_AuthProject,
186     RASCS_AuthLinkSpeed,
187     RASCS_AuthAck,
188     RASCS_ReAuthenticate,
189     RASCS_Authenticated,
190     RASCS_PrepareForCallback,
191     RASCS_WaitForModemReset,
192     RASCS_WaitForCallback,
193     RASCS_Projected,
194     RASCS_StartAuthentication,
195     RASCS_CallbackComplete,
196     RASCS_LogonNetwork,
197     RASCS_SubEntryConnected,
198     RASCS_SubEntryDisconnected,
199     RASCS_Interactive = RASCS_PAUSED,
200     RASCS_RetryAuthentication,
201     RASCS_CallbackSetByCaller,
202     RASCS_PasswordExpired,
203 //  static if (WINVER >= 0x0500) {
204         RASCS_InvokeEapUI,
205 //  }
206     RASCS_Connected = RASCS_DONE,
207     RASCS_Disconnected
208 }
209 alias RASCONNSTATE* LPRASCONNSTATE;
210
211 enum RASPROJECTION {
212     RASP_Amb =      0x10000,
213     RASP_PppNbf =   0x803F,
214     RASP_PppIpx =   0x802B,
215     RASP_PppIp =    0x8021,
216 //  static if (WINVER >= 0x0500) {
217         RASP_PppCcp =   0x80FD,
218 //  }
219     RASP_PppLcp =   0xC021,
220     RASP_Slip =     0x20000
221 }
222 alias RASPROJECTION* LPRASPROJECTION;
223
224 alias TypeDef!(HANDLE) HRASCONN;
225 alias HRASCONN* LPHRASCONN;
226
227 struct RASCONNW {
228     DWORD dwSize;
229     HRASCONN hrasconn;
230     WCHAR szEntryName[RAS_MaxEntryName + 1];
231     static if (WINVER >= 0x0400) {
232         WCHAR szDeviceType[RAS_MaxDeviceType + 1];
233         WCHAR szDeviceName[RAS_MaxDeviceName + 1];
234     }
235     static if (WINVER >= 0x0401) {
236         WCHAR szPhonebook[MAX_PATH];
237         DWORD dwSubEntry;
238     }
239     static if (WINVER >= 0x0500) {
240         GUID guidEntry;
241     }
242     static if (WINVER >= 0x0501) {
243         DWORD dwFlags;
244         LUID luid;
245     }
246 }
247 alias RASCONNW* LPRASCONNW;
248
249 struct RASCONNA {
250     DWORD dwSize;
251     HRASCONN hrasconn;
252     CHAR szEntryName[RAS_MaxEntryName + 1];
253     static if (WINVER >= 0x0400) {
254         CHAR szDeviceType[RAS_MaxDeviceType + 1];
255         CHAR szDeviceName[RAS_MaxDeviceName + 1];
256     }
257     static if (WINVER >= 0x0401) {
258         CHAR szPhonebook[MAX_PATH];
259         DWORD dwSubEntry;
260     }
261     static if (WINVER >= 0x0500) {
262         GUID guidEntry;
263     }
264     static if (WINVER >= 0x0501) {
265         DWORD dwFlags;
266         LUID luid;
267     }
268 }
269 alias RASCONNA* LPRASCONNA;
270
271 struct RASCONNSTATUSW {
272     DWORD dwSize;
273     RASCONNSTATE rasconnstate;
274     DWORD dwError;
275     WCHAR szDeviceType[RAS_MaxDeviceType + 1];
276     WCHAR szDeviceName[RAS_MaxDeviceName + 1];
277     static if (WINVER >= 0x0401) {
278         WCHAR szPhoneNumber[RAS_MaxPhoneNumber + 1];
279     }
280 }
281 alias RASCONNSTATUSW* LPRASCONNSTATUSW;
282
283 struct RASCONNSTATUSA {
284     DWORD dwSize;
285     RASCONNSTATE rasconnstate;
286     DWORD dwError;
287     CHAR szDeviceType[RAS_MaxDeviceType + 1];
288     CHAR szDeviceName[RAS_MaxDeviceName + 1];
289     static if (WINVER >= 0x0401) {
290         CHAR szPhoneNumber[RAS_MaxPhoneNumber + 1];
291     }
292 }
293 alias RASCONNSTATUSA* LPRASCONNSTATUSA;
294
295 struct RASDIALPARAMSW {
296     DWORD dwSize;
297     WCHAR szEntryName[RAS_MaxEntryName + 1];
298     WCHAR szPhoneNumber[RAS_MaxPhoneNumber + 1];
299     WCHAR szCallbackNumber[RAS_MaxCallbackNumber + 1];
300     WCHAR szUserName[UNLEN + 1];
301     WCHAR szPassword[PWLEN + 1];
302     WCHAR szDomain[DNLEN + 1];
303     static if (WINVER >= 0x0401) {
304         DWORD dwSubEntry;
305         ULONG_PTR dwCallbackId;
306     }
307 }
308 alias RASDIALPARAMSW* LPRASDIALPARAMSW;
309
310 struct RASDIALPARAMSA{
311     DWORD dwSize;
312     CHAR szEntryName[RAS_MaxEntryName + 1];
313     CHAR szPhoneNumber[RAS_MaxPhoneNumber + 1];
314     CHAR szCallbackNumber[RAS_MaxCallbackNumber + 1];
315     CHAR szUserName[UNLEN + 1];
316     CHAR szPassword[PWLEN + 1];
317     CHAR szDomain[DNLEN + 1];
318     static if (WINVER >= 0x0401) {
319         DWORD dwSubEntry;
320         ULONG_PTR dwCallbackId;
321     }
322 }
323 alias RASDIALPARAMSA* LPRASDIALPARAMSA;
324
325 static if (WINVER >= 0x0500) {
326     struct RASEAPINFO {
327         DWORD dwSizeofEapInfo;
328         BYTE *pbEapInfo;
329     }
330 }
331
332 struct RASDIALEXTENSIONS {
333     DWORD dwSize;
334     DWORD dwfOptions;
335     HWND hwndParent;
336     ULONG_PTR reserved;
337     static if (WINVER >= 0x0500) {
338         ULONG_PTR reserved1;
339         RASEAPINFO RasEapInfo;
340     }
341 }
342 alias RASDIALEXTENSIONS* LPRASDIALEXTENSIONS;
343
344 struct RASENTRYNAMEW {
345     DWORD dwSize;
346     WCHAR szEntryName[RAS_MaxEntryName + 1];
347     static if (WINVER >= 0x0500) {
348         DWORD dwFlags;
349         WCHAR szPhonebookPath[MAX_PATH + 1];
350     }
351 }
352 alias RASENTRYNAMEW* LPRASENTRYNAMEW;
353
354 struct RASENTRYNAMEA{
355     DWORD dwSize;
356     CHAR szEntryName[RAS_MaxEntryName + 1];
357     static if (WINVER >= 0x0500) {
358         DWORD dwFlags;
359         CHAR szPhonebookPath[MAX_PATH + 1];
360     }
361 }
362 alias RASENTRYNAMEA* LPRASENTRYNAMEA;
363
364 struct RASAMBW{
365     DWORD dwSize;
366     DWORD dwError;
367     WCHAR szNetBiosError[NETBIOS_NAME_LEN + 1];
368     BYTE bLana;
369 }
370 alias RASAMBW* LPRASAMBW;
371
372 struct RASAMBA{
373     DWORD dwSize;
374     DWORD dwError;
375     CHAR szNetBiosError[NETBIOS_NAME_LEN + 1];
376     BYTE bLana;
377 }
378 alias RASAMBA* LPRASAMBA;
379
380 struct RASPPPNBFW{
381     DWORD dwSize;
382     DWORD dwError;
383     DWORD dwNetBiosError;
384     WCHAR szNetBiosError[NETBIOS_NAME_LEN + 1];
385     WCHAR szWorkstationName[NETBIOS_NAME_LEN + 1];
386     BYTE bLana;
387 }
388 alias RASPPPNBFW* LPRASPPPNBFW;
389
390 struct RASPPPNBFA{
391     DWORD dwSize;
392     DWORD dwError;
393     DWORD dwNetBiosError;
394     CHAR szNetBiosError[NETBIOS_NAME_LEN + 1];
395     CHAR szWorkstationName[NETBIOS_NAME_LEN + 1];
396     BYTE bLana;
397 }
398 alias RASPPPNBFA* LPRASPPPNBFA;
399
400 struct RASPPPIPXW {
401     DWORD dwSize;
402     DWORD dwError;
403     WCHAR szIpxAddress[RAS_MaxIpxAddress + 1];
404 }
405 alias RASPPPIPXW* LPRASPPPIPXW;
406
407 struct RASPPPIPXA {
408     DWORD dwSize;
409     DWORD dwError;
410     CHAR szIpxAddress[RAS_MaxIpxAddress + 1];
411 }
412 alias RASPPPIPXA* LPRASPPPIPXA;
413
414 struct RASPPPIPW{
415     DWORD dwSize;
416     DWORD dwError;
417     WCHAR szIpAddress[RAS_MaxIpAddress + 1];
418     //#ifndef WINNT35COMPATIBLE
419     WCHAR szServerIpAddress[RAS_MaxIpAddress + 1];
420     //#endif
421     static if (WINVER >= 0x0500) {
422         DWORD dwOptions;
423         DWORD dwServerOptions;
424     }
425 }
426 alias RASPPPIPW* LPRASPPPIPW;
427
428 struct RASPPPIPA{
429     DWORD dwSize;
430     DWORD dwError;
431     CHAR szIpAddress[RAS_MaxIpAddress + 1];
432     //#ifndef WINNT35COMPATIBLE
433     CHAR szServerIpAddress[RAS_MaxIpAddress + 1];
434     //#endif
435     static if (WINVER >= 0x0500) {
436         DWORD dwOptions;
437         DWORD dwServerOptions;
438     }
439 }
440 alias RASPPPIPA* LPRASPPPIPA;
441
442 struct RASPPPLCPW{
443     DWORD dwSize;
444     BOOL fBundled;
445     static if (WINVER >= 0x0500) {
446         DWORD dwError;
447         DWORD dwAuthenticationProtocol;
448         DWORD dwAuthenticationData;
449         DWORD dwEapTypeId;
450         DWORD dwServerAuthenticationProtocol;
451         DWORD dwServerAuthenticationData;
452         DWORD dwServerEapTypeId;
453         BOOL fMultilink;
454         DWORD dwTerminateReason;
455         DWORD dwServerTerminateReason;
456         WCHAR szReplyMessage[RAS_MaxReplyMessage];
457         DWORD dwOptions;
458         DWORD dwServerOptions;
459     }
460 }
461 alias RASPPPLCPW* LPRASPPPLCPW;
462
463 struct RASPPPLCPA{
464     DWORD dwSize;
465     BOOL fBundled;
466     static if (WINVER >= 0x0500) {
467         DWORD dwError;
468         DWORD dwAuthenticationProtocol;
469         DWORD dwAuthenticationData;
470         DWORD dwEapTypeId;
471         DWORD dwServerAuthenticationProtocol;
472         DWORD dwServerAuthenticationData;
473         DWORD dwServerEapTypeId;
474         BOOL fMultilink;
475         DWORD dwTerminateReason;
476         DWORD dwServerTerminateReason;
477         CHAR szReplyMessage[RAS_MaxReplyMessage];
478         DWORD dwOptions;
479         DWORD dwServerOptions;
480     }
481 }
482 alias RASPPPLCPA* LPRASPPPLCPA;
483
484 struct RASSLIPW{
485     DWORD dwSize;
486     DWORD dwError;
487     WCHAR szIpAddress[RAS_MaxIpAddress + 1];
488 }
489 alias RASSLIPW* LPRASSLIPW;
490
491 struct RASSLIPA{
492     DWORD dwSize;
493     DWORD dwError;
494     CHAR szIpAddress[RAS_MaxIpAddress + 1];
495 }
496 alias RASSLIPA* LPRASSLIPA;
497
498 struct RASDEVINFOW{
499     DWORD dwSize;
500     WCHAR szDeviceType[RAS_MaxDeviceType + 1];
501     WCHAR szDeviceName[RAS_MaxDeviceName + 1];
502 }
503 alias RASDEVINFOW* LPRASDEVINFOW;
504
505 struct RASDEVINFOA{
506     DWORD dwSize;
507     CHAR szDeviceType[RAS_MaxDeviceType + 1];
508     CHAR szDeviceName[RAS_MaxDeviceName + 1];
509 }
510 alias RASDEVINFOA* LPRASDEVINFOA;
511
512 struct RASCTRYINFO {
513     DWORD dwSize;
514     DWORD dwCountryID;
515     DWORD dwNextCountryID;
516     DWORD dwCountryCode;
517     DWORD dwCountryNameOffset;
518 }
519 alias RASCTRYINFO* LPRASCTRYINFO;
520 alias RASCTRYINFO  RASCTRYINFOW, RASCTRYINFOA;
521 alias RASCTRYINFOW* LPRASCTRYINFOW;
522 alias RASCTRYINFOA* LPRASCTRYINFOA;
523
524 struct RASIPADDR {
525     BYTE a;
526     BYTE b;
527     BYTE c;
528     BYTE d;
529 }
530
531 struct RASENTRYW {
532     DWORD dwSize;
533     DWORD dwfOptions;
534     DWORD dwCountryID;
535     DWORD dwCountryCode;
536     WCHAR szAreaCode[RAS_MaxAreaCode + 1];
537     WCHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1];
538     DWORD dwAlternateOffset;
539     RASIPADDR ipaddr;
540     RASIPADDR ipaddrDns;
541     RASIPADDR ipaddrDnsAlt;
542     RASIPADDR ipaddrWins;
543     RASIPADDR ipaddrWinsAlt;
544     DWORD dwFrameSize;
545     DWORD dwfNetProtocols;
546     DWORD dwFramingProtocol;
547     WCHAR szScript[MAX_PATH];
548     WCHAR szAutodialDll[MAX_PATH];
549     WCHAR szAutodialFunc[MAX_PATH];
550     WCHAR szDeviceType[RAS_MaxDeviceType + 1];
551     WCHAR szDeviceName[RAS_MaxDeviceName + 1];
552     WCHAR szX25PadType[RAS_MaxPadType + 1];
553     WCHAR szX25Address[RAS_MaxX25Address + 1];
554     WCHAR szX25Facilities[RAS_MaxFacilities + 1];
555     WCHAR szX25UserData[RAS_MaxUserData + 1];
556     DWORD dwChannels;
557     DWORD dwReserved1;
558     DWORD dwReserved2;
559     static if (WINVER >= 0x0401) {
560         DWORD dwSubEntries;
561         DWORD dwDialMode;
562         DWORD dwDialExtraPercent;
563         DWORD dwDialExtraSampleSeconds;
564         DWORD dwHangUpExtraPercent;
565         DWORD dwHangUpExtraSampleSeconds;
566         DWORD dwIdleDisconnectSeconds;
567     }
568     static if (WINVER >= 0x0500) {
569         DWORD dwType;
570         DWORD dwEncryptionType;
571         DWORD dwCustomAuthKey;
572         GUID guidId;
573         WCHAR szCustomDialDll[MAX_PATH];
574         DWORD dwVpnStrategy;
575     }
576 }
577 alias RASENTRYW* LPRASENTRYW;
578
579 struct RASENTRYA {
580     DWORD dwSize;
581     DWORD dwfOptions;
582     DWORD dwCountryID;
583     DWORD dwCountryCode;
584     CHAR szAreaCode[RAS_MaxAreaCode + 1];
585     CHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1];
586     DWORD dwAlternateOffset;
587     RASIPADDR ipaddr;
588     RASIPADDR ipaddrDns;
589     RASIPADDR ipaddrDnsAlt;
590     RASIPADDR ipaddrWins;
591     RASIPADDR ipaddrWinsAlt;
592     DWORD dwFrameSize;
593     DWORD dwfNetProtocols;
594     DWORD dwFramingProtocol;
595     CHAR szScript[MAX_PATH];
596     CHAR szAutodialDll[MAX_PATH];
597     CHAR szAutodialFunc[MAX_PATH];
598     CHAR szDeviceType[RAS_MaxDeviceType + 1];
599     CHAR szDeviceName[RAS_MaxDeviceName + 1];
600     CHAR szX25PadType[RAS_MaxPadType + 1];
601     CHAR szX25Address[RAS_MaxX25Address + 1];
602     CHAR szX25Facilities[RAS_MaxFacilities + 1];
603     CHAR szX25UserData[RAS_MaxUserData + 1];
604     DWORD dwChannels;
605     DWORD dwReserved1;
606     DWORD dwReserved2;
607     static if (WINVER >= 0x0401) {
608         DWORD dwSubEntries;
609         DWORD dwDialMode;
610         DWORD dwDialExtraPercent;
611         DWORD dwDialExtraSampleSeconds;
612         DWORD dwHangUpExtraPercent;
613         DWORD dwHangUpExtraSampleSeconds;
614         DWORD dwIdleDisconnectSeconds;
615     }
616     static if (WINVER >= 0x0500) {
617         DWORD dwType;
618         DWORD dwEncryptionType;
619         DWORD dwCustomAuthKey;
620         GUID guidId;
621         CHAR szCustomDialDll[MAX_PATH];
622         DWORD dwVpnStrategy;
623     }
624 }
625 alias RASENTRYA* LPRASENTRYA;
626
627
628 static if (WINVER >= 0x0401) {
629     struct RASADPARAMS {
630         DWORD dwSize;
631         HWND hwndOwner;
632         DWORD dwFlags;
633         LONG xDlg;
634         LONG yDlg;
635     }
636     alias RASADPARAMS* LPRASADPARAMS;
637
638     struct RASSUBENTRYW{
639         DWORD dwSize;
640         DWORD dwfFlags;
641         WCHAR szDeviceType[RAS_MaxDeviceType + 1];
642         WCHAR szDeviceName[RAS_MaxDeviceName + 1];
643         WCHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1];
644         DWORD dwAlternateOffset;
645     }
646     alias RASSUBENTRYW* LPRASSUBENTRYW;
647
648     struct RASSUBENTRYA{
649         DWORD dwSize;
650         DWORD dwfFlags;
651         CHAR szDeviceType[RAS_MaxDeviceType + 1];
652         CHAR szDeviceName[RAS_MaxDeviceName + 1];
653         CHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1];
654         DWORD dwAlternateOffset;
655     }
656     alias RASSUBENTRYA* LPRASSUBENTRYA;
657
658     struct RASCREDENTIALSW{
659         DWORD dwSize;
660         DWORD dwMask;
661         WCHAR szUserName[UNLEN + 1];
662         WCHAR szPassword[PWLEN + 1];
663         WCHAR szDomain[DNLEN + 1];
664     }
665     alias RASCREDENTIALSW* LPRASCREDENTIALSW;
666
667     struct RASCREDENTIALSA{
668         DWORD dwSize;
669         DWORD dwMask;
670         CHAR szUserName[UNLEN + 1];
671         CHAR szPassword[PWLEN + 1];
672         CHAR szDomain[DNLEN + 1];
673     }
674     alias RASCREDENTIALSA* LPRASCREDENTIALSA;
675
676     struct RASAUTODIALENTRYW{
677         DWORD dwSize;
678         DWORD dwFlags;
679         DWORD dwDialingLocation;
680         WCHAR szEntry[RAS_MaxEntryName + 1];
681     }
682     alias RASAUTODIALENTRYW* LPRASAUTODIALENTRYW;
683
684     struct RASAUTODIALENTRYA{
685         DWORD dwSize;
686         DWORD dwFlags;
687         DWORD dwDialingLocation;
688         CHAR szEntry[RAS_MaxEntryName + 1];
689     }
690     alias RASAUTODIALENTRYA* LPRASAUTODIALENTRYA;
691 }
692
693 static if (WINVER >= 0x0500) {
694     struct RASPPPCCP{
695         DWORD dwSize;
696         DWORD dwError;
697         DWORD dwCompressionAlgorithm;
698         DWORD dwOptions;
699         DWORD dwServerCompressionAlgorithm;
700         DWORD dwServerOptions;
701     }
702     alias RASPPPCCP* LPRASPPPCCP;
703
704     struct RASEAPUSERIDENTITYW{
705         WCHAR szUserName[UNLEN + 1];
706         DWORD dwSizeofEapInfo;
707         BYTE pbEapInfo[1];
708     }
709     alias RASEAPUSERIDENTITYW* LPRASEAPUSERIDENTITYW;
710
711     struct RASEAPUSERIDENTITYA{
712         CHAR szUserName[UNLEN + 1];
713         DWORD dwSizeofEapInfo;
714         BYTE pbEapInfo[1];
715     }
716     alias RASEAPUSERIDENTITYA* LPRASEAPUSERIDENTITYA;
717
718     struct RAS_STATS{
719         DWORD dwSize;
720         DWORD dwBytesXmited;
721         DWORD dwBytesRcved;
722         DWORD dwFramesXmited;
723         DWORD dwFramesRcved;
724         DWORD dwCrcErr;
725         DWORD dwTimeoutErr;
726         DWORD dwAlignmentErr;
727         DWORD dwHardwareOverrunErr;
728         DWORD dwFramingErr;
729         DWORD dwBufferOverrunErr;
730         DWORD dwCompressionRatioIn;
731         DWORD dwCompressionRatioOut;
732         DWORD dwBps;
733         DWORD dwConnectDuration;
734     }
735     alias RAS_STATS* PRAS_STATS;
736 }
737
738
739 /* UNICODE typedefs for structures*/
740 version (Unicode) {
741     alias RASCONNW RASCONN;
742     alias RASENTRYW RASENTRY;
743     alias RASCONNSTATUSW RASCONNSTATUS;
744     alias RASDIALPARAMSW RASDIALPARAMS;
745     alias RASAMBW RASAMB;
746     alias RASPPPNBFW RASPPPNBF;
747     alias RASPPPIPXW RASPPPIPX;
748     alias RASPPPIPW RASPPPIP;
749     alias RASPPPLCPW RASPPPLCP;
750     alias RASSLIPW RASSLIP;
751     alias RASDEVINFOW RASDEVINFO;
752     alias RASENTRYNAMEW RASENTRYNAME;
753
754     static if (WINVER >= 0x0401) {
755         alias RASSUBENTRYW RASSUBENTRY;
756         alias RASCREDENTIALSW RASCREDENTIALS;
757         alias RASAUTODIALENTRYW RASAUTODIALENTRY;
758     }
759
760     static if (WINVER >= 0x0500) {
761         alias RASEAPUSERIDENTITYW RASEAPUSERIDENTITY;
762     }
763
764 } else { // ! defined UNICODE
765
766     alias RASCONNA RASCONN;
767     alias RASENTRYA  RASENTRY;
768     alias RASCONNSTATUSA RASCONNSTATUS;
769     alias RASDIALPARAMSA RASDIALPARAMS;
770     alias RASAMBA RASAMB;
771     alias RASPPPNBFA RASPPPNBF;
772     alias RASPPPIPXA RASPPPIPX;
773     alias RASPPPIPA RASPPPIP;
774     alias RASPPPLCPA RASPPPLCP;
775     alias RASSLIPA RASSLIP;
776     alias RASDEVINFOA  RASDEVINFO;
777     alias RASENTRYNAMEA RASENTRYNAME;
778
779     static if (WINVER >= 0x0401) {
780         alias RASSUBENTRYA RASSUBENTRY;
781         alias RASCREDENTIALSA RASCREDENTIALS;
782         alias RASAUTODIALENTRYA RASAUTODIALENTRY;
783     }
784     static if (WINVER >= 0x0500) {
785         alias RASEAPUSERIDENTITYA RASEAPUSERIDENTITY;
786     }
787 }// ! UNICODE
788
789
790 alias RASCONN* LPRASCONN;
791 alias RASENTRY* LPRASENTRY;
792 alias RASCONNSTATUS* LPRASCONNSTATUS;
793 alias RASDIALPARAMS* LPRASDIALPARAMS;
794 alias RASAMB* LPRASAM;
795 alias RASPPPNBF* LPRASPPPNBF;
796 alias RASPPPIPX* LPRASPPPIPX;
797 alias RASPPPIP* LPRASPPPIP;
798 alias RASPPPLCP* LPRASPPPLCP;
799 alias RASSLIP* LPRASSLIP;
800 alias RASDEVINFO* LPRASDEVINFO;
801 alias RASENTRYNAME* LPRASENTRYNAME;
802
803 static if (WINVER >= 0x0401) {
804     alias RASSUBENTRY* LPRASSUBENTRY;
805     alias RASCREDENTIALS* LPRASCREDENTIALS;
806     alias RASAUTODIALENTRY* LPRASAUTODIALENTRY;
807 }
808 static if (WINVER >= 0x0500) {
809     alias RASEAPUSERIDENTITY* LPRASEAPUSERIDENTITY;
810 }
811
812 /* Callback prototypes */
813 deprecated {
814     alias BOOL function (HWND, LPSTR, DWORD, LPDWORD) ORASADFUNC;
815 }
816
817 alias void function (UINT, RASCONNSTATE, DWORD) RASDIALFUNC;
818 alias void function(HRASCONN, UINT, RASCONNSTATE, DWORD,
819 DWORD) RASDIALFUNC1;
820 alias DWORD function (ULONG_PTR, DWORD, HRASCONN, UINT,
821 RASCONNSTATE, DWORD, DWORD) RASDIALFUNC2;
822
823 /* External functions */
824 DWORD RasDialA (LPRASDIALEXTENSIONS, LPCSTR, LPRASDIALPARAMSA,
825 DWORD, LPVOID, LPHRASCONN);
826 DWORD RasDialW (LPRASDIALEXTENSIONS, LPCWSTR, LPRASDIALPARAMSW,
827 DWORD, LPVOID, LPHRASCONN);
828 DWORD RasEnumConnectionsA (LPRASCONNA, LPDWORD, LPDWORD);
829 DWORD RasEnumConnectionsW (LPRASCONNW, LPDWORD, LPDWORD);
830 DWORD RasEnumEntriesA (LPCSTR, LPCSTR, LPRASENTRYNAMEA, LPDWORD,
831 LPDWORD);
832 DWORD RasEnumEntriesW (LPCWSTR, LPCWSTR, LPRASENTRYNAMEW, LPDWORD,
833 LPDWORD);
834 DWORD RasGetConnectStatusA (HRASCONN, LPRASCONNSTATUSA);
835 DWORD RasGetConnectStatusW (HRASCONN, LPRASCONNSTATUSW);
836 DWORD RasGetErrorStringA (UINT, LPSTR, DWORD);
837 DWORD RasGetErrorStringW (UINT, LPWSTR, DWORD);
838 DWORD RasHangUpA (HRASCONN);
839 DWORD RasHangUpW (HRASCONN);
840 DWORD RasGetProjectionInfoA (HRASCONN, RASPROJECTION, LPVOID,
841 LPDWORD);
842 DWORD RasGetProjectionInfoW (HRASCONN, RASPROJECTION, LPVOID,
843 LPDWORD);
844 DWORD RasCreatePhonebookEntryA (HWND, LPCSTR);
845 DWORD RasCreatePhonebookEntryW (HWND, LPCWSTR);
846 DWORD RasEditPhonebookEntryA (HWND, LPCSTR, LPCSTR);
847 DWORD RasEditPhonebookEntryW (HWND, LPCWSTR, LPCWSTR);
848 DWORD RasSetEntryDialParamsA (LPCSTR, LPRASDIALPARAMSA, BOOL);
849 DWORD RasSetEntryDialParamsW (LPCWSTR, LPRASDIALPARAMSW, BOOL);
850 DWORD RasGetEntryDialParamsA (LPCSTR, LPRASDIALPARAMSA, LPBOOL);
851 DWORD RasGetEntryDialParamsW (LPCWSTR, LPRASDIALPARAMSW, LPBOOL);
852 DWORD RasEnumDevicesA (LPRASDEVINFOA, LPDWORD, LPDWORD);
853 DWORD RasEnumDevicesW (LPRASDEVINFOW, LPDWORD, LPDWORD);
854 DWORD RasGetCountryInfoA (LPRASCTRYINFOA, LPDWORD);
855 DWORD RasGetCountryInfoW (LPRASCTRYINFOW, LPDWORD);
856 DWORD RasGetEntryPropertiesA (LPCSTR, LPCSTR, LPRASENTRYA, LPDWORD,
857 LPBYTE, LPDWORD);
858 DWORD RasGetEntryPropertiesW (LPCWSTR, LPCWSTR, LPRASENTRYW,
859 LPDWORD, LPBYTE, LPDWORD);
860 DWORD RasSetEntryPropertiesA (LPCSTR, LPCSTR, LPRASENTRYA, DWORD,
861 LPBYTE, DWORD);
862 DWORD RasSetEntryPropertiesW (LPCWSTR, LPCWSTR, LPRASENTRYW, DWORD,
863 LPBYTE, DWORD);
864 DWORD RasRenameEntryA (LPCSTR, LPCSTR, LPCSTR);
865 DWORD RasRenameEntryW (LPCWSTR, LPCWSTR, LPCWSTR);
866 DWORD RasDeleteEntryA (LPCSTR, LPCSTR);
867 DWORD RasDeleteEntryW (LPCWSTR, LPCWSTR);
868 DWORD RasValidateEntryNameA (LPCSTR, LPCSTR);
869 DWORD RasValidateEntryNameW (LPCWSTR, LPCWSTR);
870
871 static if (WINVER >= 0x0401) {
872     alias BOOL function (LPSTR, LPSTR, LPRASADPARAMS, LPDWORD) RASADFUNCA;
873     alias BOOL function (LPWSTR, LPWSTR, LPRASADPARAMS, LPDWORD) RASADFUNCW;
874
875     DWORD RasGetSubEntryHandleA (HRASCONN, DWORD, LPHRASCONN);
876     DWORD RasGetSubEntryHandleW (HRASCONN, DWORD, LPHRASCONN);
877     DWORD RasGetCredentialsA (LPCSTR, LPCSTR, LPRASCREDENTIALSA);
878     DWORD RasGetCredentialsW (LPCWSTR, LPCWSTR, LPRASCREDENTIALSW);
879     DWORD RasSetCredentialsA (LPCSTR, LPCSTR, LPRASCREDENTIALSA, BOOL);
880     DWORD RasSetCredentialsW (LPCWSTR, LPCWSTR, LPRASCREDENTIALSW, BOOL);
881     DWORD RasConnectionNotificationA (HRASCONN, HANDLE, DWORD);
882     DWORD RasConnectionNotificationW (HRASCONN, HANDLE, DWORD);
883     DWORD RasGetSubEntryPropertiesA (LPCSTR, LPCSTR, DWORD,
884     LPRASSUBENTRYA, LPDWORD, LPBYTE, LPDWORD);
885     DWORD RasGetSubEntryPropertiesW (LPCWSTR, LPCWSTR, DWORD,
886     LPRASSUBENTRYW, LPDWORD, LPBYTE, LPDWORD);
887     DWORD RasSetSubEntryPropertiesA (LPCSTR, LPCSTR, DWORD,
888     LPRASSUBENTRYA, DWORD, LPBYTE, DWORD);
889     DWORD RasSetSubEntryPropertiesW (LPCWSTR, LPCWSTR, DWORD,
890     LPRASSUBENTRYW, DWORD, LPBYTE, DWORD);
891     DWORD RasGetAutodialAddressA (LPCSTR, LPDWORD, LPRASAUTODIALENTRYA,
892     LPDWORD, LPDWORD);
893     DWORD RasGetAutodialAddressW (LPCWSTR, LPDWORD,
894     LPRASAUTODIALENTRYW, LPDWORD, LPDWORD);
895     DWORD RasSetAutodialAddressA (LPCSTR, DWORD, LPRASAUTODIALENTRYA,
896     DWORD, DWORD);
897     DWORD RasSetAutodialAddressW (LPCWSTR, DWORD, LPRASAUTODIALENTRYW,
898     DWORD, DWORD);
899     DWORD RasEnumAutodialAddressesA (LPSTR *, LPDWORD, LPDWORD);
900     DWORD RasEnumAutodialAddressesW (LPWSTR *, LPDWORD, LPDWORD);
901     DWORD RasGetAutodialEnableA (DWORD, LPBOOL);
902     DWORD RasGetAutodialEnableW (DWORD, LPBOOL);
903     DWORD RasSetAutodialEnableA (DWORD, BOOL);
904     DWORD RasSetAutodialEnableW (DWORD, BOOL);
905     DWORD RasGetAutodialParamA (DWORD, LPVOID, LPDWORD);
906     DWORD RasGetAutodialParamW (DWORD, LPVOID, LPDWORD);
907     DWORD RasSetAutodialParamA (DWORD, LPVOID, DWORD);
908     DWORD RasSetAutodialParamW (DWORD, LPVOID, DWORD);
909 }
910
911 static if (WINVER >= 0x0500) {
912     alias DWORD function (HRASCONN) RasCustomHangUpFn;
913     alias DWORD function (LPCTSTR,  LPCTSTR, DWORD) RasCustomDeleteEntryNotifyFn;
914     alias DWORD function (HINSTANCE, LPRASDIALEXTENSIONS,
915     LPCTSTR, LPRASDIALPARAMS, DWORD, LPVOID, LPHRASCONN, DWORD) RasCustomDialFn;
916
917     DWORD RasInvokeEapUI (HRASCONN, DWORD, LPRASDIALEXTENSIONS, HWND);
918     DWORD RasGetLinkStatistics (HRASCONN, DWORD, RAS_STATS*);
919     DWORD RasGetConnectionStatistics (HRASCONN, RAS_STATS*);
920     DWORD RasClearLinkStatistics (HRASCONN, DWORD);
921     DWORD RasClearConnectionStatistics (HRASCONN);
922     DWORD RasGetEapUserDataA (HANDLE, LPCSTR, LPCSTR, BYTE*, DWORD*);
923     DWORD RasGetEapUserDataW (HANDLE, LPCWSTR, LPCWSTR, BYTE*, DWORD*);
924     DWORD RasSetEapUserDataA (HANDLE, LPCSTR, LPCSTR, BYTE*, DWORD);
925     DWORD RasSetEapUserDataW (HANDLE, LPCWSTR, LPCWSTR, BYTE*, DWORD);
926     DWORD RasGetCustomAuthDataA (LPCSTR,    LPCSTR, BYTE*,  DWORD*);
927     DWORD RasGetCustomAuthDataW (LPCWSTR, LPCWSTR, BYTE*, DWORD*);
928     DWORD RasSetCustomAuthDataA (LPCSTR,    LPCSTR, BYTE*,  DWORD);
929     DWORD RasSetCustomAuthDataW (LPCWSTR, LPCWSTR, BYTE*, DWORD);
930     DWORD RasGetEapUserIdentityW (LPCWSTR, LPCWSTR, DWORD, HWND, LPRASEAPUSERIDENTITYW*);
931     DWORD RasGetEapUserIdentityA (LPCSTR, LPCSTR, DWORD, HWND, LPRASEAPUSERIDENTITYA*);
932     void RasFreeEapUserIdentityW (LPRASEAPUSERIDENTITYW);
933     void RasFreeEapUserIdentityA (LPRASEAPUSERIDENTITYA);
934 }
935
936
937 /* UNICODE defines for functions */
938 version(Unicode) {
939     alias RasDialW RasDial;
940     alias RasEnumConnectionsW RasEnumConnections;
941     alias RasEnumEntriesW RasEnumEntries;
942     alias RasGetConnectStatusW RasGetConnectStatus;
943     alias RasGetErrorStringW RasGetErrorString;
944     alias RasHangUpW RasHangUp;
945     alias RasGetProjectionInfoW RasGetProjectionInfo;
946     alias RasCreatePhonebookEntryW RasCreatePhonebookEntry;
947     alias RasEditPhonebookEntryW RasEditPhonebookEntry;
948     alias RasSetEntryDialParamsW RasSetEntryDialParams;
949     alias RasGetEntryDialParamsW RasGetEntryDialParams;
950     alias RasEnumDevicesW RasEnumDevices;
951     alias RasGetCountryInfoW RasGetCountryInfo;
952     alias RasGetEntryPropertiesW RasGetEntryProperties;
953     alias RasSetEntryPropertiesW RasSetEntryProperties;
954     alias RasRenameEntryW RasRenameEntry;
955     alias RasDeleteEntryW RasDeleteEntry;
956     alias RasValidateEntryNameW RasValidateEntryName;
957
958     static if (WINVER >= 0x0401) {
959         alias RASADFUNCW RASADFUNC;
960         alias RasGetSubEntryHandleW RasGetSubEntryHandle;
961         alias RasConnectionNotificationW RasConnectionNotification;
962         alias RasGetSubEntryPropertiesW RasGetSubEntryProperties;
963         alias RasSetSubEntryPropertiesW RasSetSubEntryProperties;
964         alias RasGetCredentialsW RasGetCredentials;
965         alias RasSetCredentialsW RasSetCredentials;
966         alias RasGetAutodialAddressW RasGetAutodialAddress;
967         alias RasSetAutodialAddressW RasSetAutodialAddress;
968         alias RasEnumAutodialAddressesW RasEnumAutodialAddresses;
969         alias RasGetAutodialEnableW RasGetAutodialEnable;
970         alias RasSetAutodialEnableW RasSetAutodialEnable;
971         alias RasGetAutodialParamW RasGetAutodialParam;
972         alias RasSetAutodialParamW RasSetAutodialParam;
973     }
974
975     static if (WINVER >= 0x0500) {
976         alias RasGetEapUserDataW RasGetEapUserData;
977         alias RasSetEapUserDataW RasSetEapUserData;
978         alias RasGetCustomAuthDataW RasGetCustomAuthData;
979         alias RasSetCustomAuthDataW RasSetCustomAuthData;
980         alias RasGetEapUserIdentityW RasGetEapUserIdentity;
981         alias RasFreeEapUserIdentityW RasFreeEapUserIdentity;
982     }
983
984 } else { // ! defined UNICODE
985     alias RasDialA RasDial;
986     alias RasEnumConnectionsA RasEnumConnections;
987     alias RasEnumEntriesA RasEnumEntries;
988     alias RasGetConnectStatusA RasGetConnectStatus;
989     alias RasGetErrorStringA RasGetErrorString;
990     alias RasHangUpA RasHangUp;
991     alias RasGetProjectionInfoA RasGetProjectionInfo;
992     alias RasCreatePhonebookEntryA RasCreatePhonebookEntry;
993     alias RasEditPhonebookEntryA RasEditPhonebookEntry;
994     alias RasSetEntryDialParamsA RasSetEntryDialParams;
995     alias RasGetEntryDialParamsA RasGetEntryDialParams;
996     alias RasEnumDevicesA RasEnumDevices;
997     alias RasGetCountryInfoA RasGetCountryInfo;
998     alias RasGetEntryPropertiesA RasGetEntryProperties;
999     alias RasSetEntryPropertiesA RasSetEntryProperties;
1000     alias RasRenameEntryA RasRenameEntry;
1001     alias RasDeleteEntryA RasDeleteEntry;
1002     alias RasValidateEntryNameA RasValidateEntryName;
1003
1004     static if (WINVER >= 0x0401) {
1005         alias RASADFUNCA RASADFUNC;
1006         alias RasGetSubEntryHandleA RasGetSubEntryHandle;
1007         alias RasConnectionNotificationA RasConnectionNotification;
1008         alias RasGetSubEntryPropertiesA RasGetSubEntryProperties;
1009         alias RasSetSubEntryPropertiesA RasSetSubEntryProperties;
1010         alias RasGetCredentialsA RasGetCredentials;
1011         alias RasSetCredentialsA RasSetCredentials;
1012         alias RasGetAutodialAddressA RasGetAutodialAddress;
1013         alias RasSetAutodialAddressA RasSetAutodialAddress;
1014         alias RasEnumAutodialAddressesA RasEnumAutodialAddresses;
1015         alias RasGetAutodialEnableA RasGetAutodialEnable;
1016         alias RasSetAutodialEnableA RasSetAutodialEnable;
1017         alias RasGetAutodialParamA RasGetAutodialParam;
1018         alias RasSetAutodialParamA RasSetAutodialParam;
1019     }
1020
1021     static if (WINVER >= 0x0500) {
1022         alias RasGetEapUserDataA RasGetEapUserData;
1023         alias RasSetEapUserDataA RasSetEapUserData;
1024         alias RasGetCustomAuthDataA RasGetCustomAuthData;
1025         alias RasSetCustomAuthDataA RasSetCustomAuthData;
1026         alias RasGetEapUserIdentityA RasGetEapUserIdentity;
1027         alias RasFreeEapUserIdentityA RasFreeEapUserIdentity;
1028     }
1029 } //#endif // ! UNICODE
Note: See TracBrowser for help on using the browser.