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