2 * Copyright (C) 1998 Marcus Meissner
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
29 #define RAS_MaxCallbackNumber RAS_MaxPhoneNumber
30 #define RAS_MaxDeviceName 128
31 #define RAS_MaxDeviceType 16
32 #define RAS_MaxEntryName 256
33 #define RAS_MaxPhoneNumber 128
34 #define RAS_MaxAreaCode 10
35 #define RAS_MaxPadType 32
36 #define RAS_MaxX25Address 200
37 #define RAS_MaxFacilities 200
38 #define RAS_MaxUserData 200
39 #define RAS_MaxDnsSuffix 256
41 /* szDeviceType strings for RASDEVINFO */
42 #define RASDT_Direct "direct"
43 #define RASDT_Modem "modem"
44 #define RASDT_Isdn "isdn"
45 #define RASDT_X25 "x25"
46 #define RASDT_Vpn "vpn"
47 #define RASDT_Pad "pad"
48 #define RASDT_Generic "GENERIC"
49 #define RASDT_Serial "SERIAL"
50 #define RASDT_FrameRelay "FRAMERELAY"
51 #define RASDT_Atm "ATM"
52 #define RASDT_Sonet "SONET"
53 #define RASDT_SW56 "SW56"
54 #define RASDT_Irda "IRDA"
55 #define RASDT_Parallel "PARALLEL"
56 #define RASDT_PPPoE "PPPoE"
59 #define ERROR_BUFFER_TOO_SMALL (RASBASE+3)
60 #define ERROR_INVALID_SIZE (RASBASE+32)
62 typedef struct tagRASDEVINFOA {
64 CHAR szDeviceType[ RAS_MaxDeviceType + 1 ];
65 CHAR szDeviceName[ RAS_MaxDeviceName + 1 ];
66 } RASDEVINFOA, *LPRASDEVINFOA;
68 typedef struct tagRASDEVINFOW {
70 WCHAR szDeviceType[ RAS_MaxDeviceType + 1 ];
71 WCHAR szDeviceName[ RAS_MaxDeviceName + 1 ];
72 } RASDEVINFOW, *LPRASDEVINFOW;
74 DECL_WINELIB_TYPE_AW(RASDEVINFO)
75 DECL_WINELIB_TYPE_AW(LPRASDEVINFO)
77 DECLARE_HANDLE(HRASCONN);
78 typedef HRASCONN* LPHRASCONN;
80 typedef struct tagRASCONNA {
83 CHAR szEntryName[ RAS_MaxEntryName + 1 ];
84 CHAR szDeviceType[ RAS_MaxDeviceType + 1 ];
85 CHAR szDeviceName[ RAS_MaxDeviceName + 1 ];
86 CHAR szPhonebook[ MAX_PATH ];
88 } RASCONNA,*LPRASCONNA;
90 typedef struct tagRASCONNW {
93 WCHAR szEntryName[ RAS_MaxEntryName + 1 ];
94 WCHAR szDeviceType[ RAS_MaxDeviceType + 1 ];
95 WCHAR szDeviceName[ RAS_MaxDeviceName + 1 ];
96 WCHAR szPhonebook[ MAX_PATH ];
98 } RASCONNW,*LPRASCONNW;
100 DECL_WINELIB_TYPE_AW(RASCONN)
101 DECL_WINELIB_TYPE_AW(LPRASCONN)
103 typedef struct tagRASENTRYNAMEA {
105 CHAR szEntryName[ RAS_MaxEntryName + 1 ];
106 } RASENTRYNAMEA, *LPRASENTRYNAMEA;
108 typedef struct tagRASENTRYNAMEW {
110 WCHAR szEntryName[ RAS_MaxEntryName + 1 ];
111 } RASENTRYNAMEW, *LPRASENTRYNAMEW;
113 DECL_WINELIB_TYPE_AW(RASENTRYNAME)
114 DECL_WINELIB_TYPE_AW(LPRASENTRYNAME)
116 typedef struct tagRASDIALPARAMSA {
118 CHAR szEntryName[ RAS_MaxEntryName + 1 ];
119 CHAR szPhoneNumber[ RAS_MaxPhoneNumber + 1 ];
120 CHAR szCallbackNumber[ RAS_MaxCallbackNumber + 1 ];
121 CHAR szUserName[ UNLEN + 1 ];
122 CHAR szPassword[ PWLEN + 1 ];
123 CHAR szDomain[ DNLEN + 1 ];
126 } RASDIALPARAMSA, *LPRASDIALPARAMSA;
128 typedef struct tagRASDIALPARAMSW {
130 WCHAR szEntryName[ RAS_MaxEntryName + 1 ];
131 WCHAR szPhoneNumber[ RAS_MaxPhoneNumber + 1 ];
132 WCHAR szCallbackNumber[ RAS_MaxCallbackNumber + 1 ];
133 WCHAR szUserName[ UNLEN + 1 ];
134 WCHAR szPassword[ PWLEN + 1 ];
135 WCHAR szDomain[ DNLEN + 1 ];
138 } RASDIALPARAMSW, *LPRASDIALPARAMSW;
140 DECL_WINELIB_TYPE_AW(RASDIALPARAMS)
141 DECL_WINELIB_TYPE_AW(LPRASDIALPARAMS)
143 typedef struct tagRASIPADDR {
144 BYTE classA,classB,classC,classD;
147 #define RASEO_UseCountryAndAreaCodes 0x0001
148 #define RASEO_SpecificIpAddr 0x0002
149 #define RASEO_SpecificNameServers 0x0004
150 #define RASEO_IpHeaderCompression 0x0008
151 #define RASEO_RemoteDefaultGateway 0x0010
152 #define RASEO_DisableLcpExtensions 0x0020
153 #define RASEO_TerminalBeforeDial 0x0040
154 #define RASEO_TerminalAfterDial 0x0080
155 #define RASEO_ModemLights 0x0100
156 #define RASEO_SwCompression 0x0200
157 #define RASEO_RequireEncryptedPw 0x0400
158 #define RASEO_RequireMsEncryptedPw 0x0800
159 #define RASEO_RequireDataEncryption 0x1000
160 #define RASEO_NetworkLogon 0x2000
161 #define RASEO_UseLogonCredentials 0x4000
162 #define RASEO_PromoteAlternates 0x8000
163 typedef struct tagRASENTRYA {
171 CHAR szAreaCode[ RAS_MaxAreaCode + 1 ];
172 CHAR szLocalPhoneNumber[ RAS_MaxPhoneNumber + 1 ];
173 DWORD dwAlternateOffset;
175 /* IP related stuff */
179 RASIPADDR ipaddrDnsAlt;
180 RASIPADDR ipaddrWins;
181 RASIPADDR ipaddrWinsAlt;
183 /* Framing (for ppp/isdn etc...) */
186 DWORD dwfNetProtocols;
187 DWORD dwFramingProtocol;
189 CHAR szScript[ MAX_PATH ];
191 CHAR szAutodialDll[ MAX_PATH ];
192 CHAR szAutodialFunc[ MAX_PATH ];
194 CHAR szDeviceType[ RAS_MaxDeviceType + 1 ];
195 CHAR szDeviceName[ RAS_MaxDeviceName + 1 ];
199 CHAR szX25PadType[ RAS_MaxPadType + 1 ];
200 CHAR szX25Address[ RAS_MaxX25Address + 1 ];
201 CHAR szX25Facilities[ RAS_MaxFacilities + 1 ];
202 CHAR szX25UserData[ RAS_MaxUserData + 1 ];
208 /* Multilink and BAP */
212 DWORD dwDialExtraPercent;
213 DWORD dwDialExtraSampleSeconds;
214 DWORD dwHangUpExtraPercent;
215 DWORD dwHangUpExtraSampleSeconds;
218 DWORD dwIdleDisconnectSeconds;
220 DWORD dwType; /* entry type */
221 DWORD dwEncryptionType; /* type of encryption to use */
222 DWORD dwCustomAuthKey; /* authentication key for EAP */
223 GUID guidId; /* guid that represents the phone-book entry */
224 CHAR szCustomDialDll[MAX_PATH]; /* DLL for custom dialing */
225 DWORD dwVpnStrategy; /* specifies type of VPN protocol */
229 CHAR szDnsSuffix[RAS_MaxDnsSuffix];
230 DWORD dwTcpWindowSize;
231 CHAR szPrerequisitePbk[MAX_PATH];
232 CHAR szPrerequisiteEntry[RAS_MaxEntryName + 1];
235 } RASENTRYA, *LPRASENTRYA;
237 typedef struct tagRASENTRYW {
245 WCHAR szAreaCode[ RAS_MaxAreaCode + 1 ];
246 WCHAR szLocalPhoneNumber[ RAS_MaxPhoneNumber + 1 ];
247 DWORD dwAlternateOffset;
249 /* IP related stuff */
253 RASIPADDR ipaddrDnsAlt;
254 RASIPADDR ipaddrWins;
255 RASIPADDR ipaddrWinsAlt;
257 /* Framing (for ppp/isdn etc...) */
260 DWORD dwfNetProtocols;
261 DWORD dwFramingProtocol;
263 WCHAR szScript[ MAX_PATH ];
265 WCHAR szAutodialDll[ MAX_PATH ];
266 WCHAR szAutodialFunc[ MAX_PATH ];
268 WCHAR szDeviceType[ RAS_MaxDeviceType + 1 ];
269 WCHAR szDeviceName[ RAS_MaxDeviceName + 1 ];
273 WCHAR szX25PadType[ RAS_MaxPadType + 1 ];
274 WCHAR szX25Address[ RAS_MaxX25Address + 1 ];
275 WCHAR szX25Facilities[ RAS_MaxFacilities + 1 ];
276 WCHAR szX25UserData[ RAS_MaxUserData + 1 ];
282 /* Multilink and BAP */
286 DWORD dwDialExtraPercent;
287 DWORD dwDialExtraSampleSeconds;
288 DWORD dwHangUpExtraPercent;
289 DWORD dwHangUpExtraSampleSeconds;
292 DWORD dwIdleDisconnectSeconds;
294 DWORD dwType; /* entry type */
295 DWORD dwEncryptionType; /* type of encryption to use */
296 DWORD dwCustomAuthKey; /* authentication key for EAP */
297 GUID guidId; /* guid that represents the phone-book entry */
298 WCHAR szCustomDialDll[MAX_PATH]; /* DLL for custom dialing */
299 DWORD dwVpnStrategy; /* specifies type of VPN protocol */
303 WCHAR szDnsSuffix[RAS_MaxDnsSuffix];
304 DWORD dwTcpWindowSize;
305 WCHAR szPrerequisitePbk[MAX_PATH];
306 WCHAR szPrerequisiteEntry[RAS_MaxEntryName + 1];
309 } RASENTRYW, *LPRASENTRYW;
311 DECL_WINELIB_TYPE_AW(RASENTRY)
313 #define RASCS_PAUSED 0x1000
314 #define RASCS_DONE 0x2000
315 typedef enum tagRASCONNSTATE
320 RASCS_DeviceConnected,
321 RASCS_AllDevicesConnected,
326 RASCS_AuthChangePassword,
330 RASCS_ReAuthenticate,
332 RASCS_PrepareForCallback,
333 RASCS_WaitForModemReset,
334 RASCS_WaitForCallback,
336 RASCS_StartAuthentication,
337 RASCS_CallbackComplete,
339 RASCS_SubEntryConnected,
340 RASCS_SubEntryDisconnected,
341 RASCS_Interactive = RASCS_PAUSED,
342 RASCS_RetryAuthentication,
343 RASCS_CallbackSetByCaller,
344 RASCS_PasswordExpired,
345 RASCS_Connected = RASCS_DONE,
347 } RASCONNSTATE, *LPRASCONNSTATE;
349 typedef struct tagRASCONNSTATUSA
352 RASCONNSTATE rasconnstate;
354 CHAR szDeviceType[RAS_MaxDeviceType + 1];
355 CHAR szDeviceName[RAS_MaxDeviceName + 1];
356 } RASCONNSTATUSA, *LPRASCONNSTATUSA;
358 typedef struct tagRASCONNSTATUSW
361 RASCONNSTATE rasconnstate;
363 WCHAR szDeviceType[RAS_MaxDeviceType + 1];
364 WCHAR szDeviceName[RAS_MaxDeviceName + 1];
365 } RASCONNSTATUSW, *LPRASCONNSTATUSW;
367 DECL_WINELIB_TYPE_AW(RASCONNSTATUS)
369 typedef enum tagRASPROJECTION
372 RASP_PppNbf = 0x803F,
373 RASP_PppIpx = 0x802B,
375 RASP_PppLcp = 0xC021,
377 } RASPROJECTION, *LPRASPROJECTION;
379 typedef struct tagRASSUBENTRYA
383 CHAR szDeviceType[RAS_MaxDeviceType + 1];
384 CHAR szDeviceName[RAS_MaxDeviceName + 1];
385 CHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1];
386 DWORD dwAlternateOffset;
387 } RASSUBENTRYA, *LPRASSUBENTRYA;
389 typedef struct tagRASSUBENTRYW
393 WCHAR szDeviceType[RAS_MaxDeviceType + 1];
394 WCHAR szDeviceName[RAS_MaxDeviceName + 1];
395 WCHAR szLocalPhoneNumber[RAS_MaxPhoneNumber + 1];
396 DWORD dwAlternateOffset;
397 } RASSUBENTRYW, *LPRASSUBENTRYW;
399 typedef struct tagRASDIALEXTENSIONS
405 } RASDIALEXTENSIONS, *LPRASDIALEXTENSIONS;
407 typedef struct tagRASAUTODIALENTRYA
411 DWORD dwDialingLocation;
412 CHAR szEntry[ RAS_MaxEntryName + 1 ];
413 } RASAUTODIALENTRYA, *LPRASAUTODIALENTRYA;
415 typedef struct tagRASAUTODIALENTRYW
419 DWORD dwDialingLocation;
420 WCHAR szEntry[ RAS_MaxEntryName + 1 ];
421 } RASAUTODIALENTRYW, *LPRASAUTODIALENTRYW;
424 DWORD WINAPI RasConnectionNotificationA(HRASCONN,HANDLE,DWORD);
425 DWORD WINAPI RasConnectionNotificationW(HRASCONN,HANDLE,DWORD);
426 #define RasConnectionNotification WINELIB_NAME_AW(RasConnectionNotification)
427 DWORD WINAPI RasCreatePhonebookEntryA(HWND,LPCSTR);
428 DWORD WINAPI RasCreatePhonebookEntryW(HWND,LPCWSTR);
429 #define RasCreatePhonebookEntry WINELIB_NAME_AW(RasCreatePhonebookEntry)
430 DWORD WINAPI RasDeleteEntryA(LPCSTR,LPCSTR);
431 DWORD WINAPI RasDeleteEntryW(LPCWSTR,LPCWSTR);
432 #define RasDeleteEntry WINELIB_NAME_AW(RasDeleteEntry)
433 DWORD WINAPI RasDeleteSubEntryA(LPCSTR,LPCSTR,DWORD);
434 DWORD WINAPI RasDeleteSubEntryW(LPCWSTR,LPCWSTR,DWORD);
435 #define RasDeleteSubEntry WINELIB_NAME_AW(RasDeleteSubEntry)
436 DWORD WINAPI RasDialA(LPRASDIALEXTENSIONS,LPCSTR,LPRASDIALPARAMSA,DWORD,LPVOID,LPHRASCONN);
437 DWORD WINAPI RasDialW(LPRASDIALEXTENSIONS,LPCWSTR,LPRASDIALPARAMSW,DWORD,LPVOID,LPHRASCONN);
438 #define RasDial WINELIB_NAME_AW(RasDial)
439 DWORD WINAPI RasEditPhonebookEntryA(HWND,LPCSTR,LPCSTR);
440 DWORD WINAPI RasEditPhonebookEntryW(HWND,LPCWSTR,LPCWSTR);
441 #define RasEditPhonebookEntry WINELIB_NAME_AW(RasEditPhonebookEntry)
442 DWORD WINAPI RasEnumAutodialAddressesA(LPSTR*,LPDWORD,LPDWORD);
443 DWORD WINAPI RasEnumAutodialAddressesW(LPWSTR*,LPDWORD,LPDWORD);
444 #define RasEnumAutodialAddresses WINELIB_NAME_AW(RasEnumAutodialAddresses)
445 DWORD WINAPI RasEnumConnectionsA(LPRASCONNA,LPDWORD,LPDWORD);
446 DWORD WINAPI RasEnumConnectionsW(LPRASCONNW,LPDWORD,LPDWORD);
447 #define RasEnumConnections WINELIB_NAME_AW(RasEnumConnections)
448 DWORD WINAPI RasEnumDevicesA(LPRASDEVINFOA,LPDWORD,LPDWORD);
449 DWORD WINAPI RasEnumDevicesW(LPRASDEVINFOW,LPDWORD,LPDWORD);
450 #define RasEnumDevices WINELIB_NAME_AW(RasEnumDevices)
451 DWORD WINAPI RasEnumEntriesA(LPCSTR,LPCSTR,LPRASENTRYNAMEA,LPDWORD,LPDWORD);
452 DWORD WINAPI RasEnumEntriesW(LPCWSTR,LPCWSTR,LPRASENTRYNAMEW,LPDWORD,LPDWORD);
453 #define RasEnumEntries WINELIB_NAME_AW(RasEnumEntries)
454 DWORD WINAPI RasGetAutodialAddressA(LPCSTR,LPDWORD,LPRASAUTODIALENTRYA,LPDWORD,LPDWORD);
455 DWORD WINAPI RasGetAutodialAddressW(LPCWSTR,LPDWORD,LPRASAUTODIALENTRYW,LPDWORD,LPDWORD);
456 #define RasGetAutodialAddresses WINELIB_NAME_AW(RasGetAutodialAddresses)
457 DWORD WINAPI RasGetAutodialEnableA(DWORD,LPBOOL);
458 DWORD WINAPI RasGetAutodialEnableW(DWORD,LPBOOL);
459 #define RasGetAutodialEnable WINELIB_NAME_AW(RasGetAutodialEnable)
460 DWORD WINAPI RasGetAutodialParamA(DWORD dwKey, LPVOID lpvValue, LPDWORD lpdwcbValue);
461 DWORD WINAPI RasGetAutodialParamW(DWORD dwKey, LPVOID lpvValue, LPDWORD lpdwcbValue);
462 #define RasGetAutodialParam WINELIB_NAME_AW(RasGetAutodialParam)
463 DWORD WINAPI RasGetConnectStatusA(HRASCONN,LPRASCONNSTATUSA);
464 DWORD WINAPI RasGetConnectStatusW(HRASCONN,LPRASCONNSTATUSW);
465 #define RasGetConnectStatus WINELIB_NAME_AW(RasGetConnectStatus)
466 DWORD WINAPI RasGetEntryDialParamsA(LPCSTR,LPRASDIALPARAMSA,LPBOOL);
467 DWORD WINAPI RasGetEntryDialParamsW(LPCWSTR,LPRASDIALPARAMSW,LPBOOL);
468 #define RasGetEntryDialParams WINELIB_NAME_AW(RasGetEntryDialParams)
469 DWORD WINAPI RasGetEntryPropertiesA(LPCSTR,LPCSTR,LPRASENTRYA,LPDWORD,LPBYTE,LPDWORD);
470 DWORD WINAPI RasGetEntryPropertiesW(LPCWSTR,LPCWSTR,LPRASENTRYW,LPDWORD,LPBYTE,LPDWORD);
471 #define RasGetEntryProperties WINELIB_NAME_AW(RasGetEntryProperties)
472 DWORD WINAPI RasGetErrorStringA(UINT,LPSTR,DWORD);
473 DWORD WINAPI RasGetErrorStringW(UINT,LPWSTR,DWORD);
474 #define RasGetErrorString WINELIB_NAME_AW(RasGetErrorString)
475 DWORD WINAPI RasGetProjectionInfoA(HRASCONN,RASPROJECTION,LPVOID,LPDWORD);
476 DWORD WINAPI RasGetProjectionInfoW(HRASCONN,RASPROJECTION,LPVOID,LPDWORD);
477 #define RasGetProjectionInfo WINELIB_NAME_AW(RasGetProjectionInfo)
478 DWORD WINAPI RasHangUpA(HRASCONN);
479 DWORD WINAPI RasHangUpW(HRASCONN);
480 #define RasHangUp WINELIB_NAME_AW(RasHangUp)
481 DWORD WINAPI RasRenameEntryA(LPCSTR,LPCSTR,LPCSTR);
482 DWORD WINAPI RasRenameEntryW(LPCWSTR,LPCWSTR,LPCWSTR);
483 #define RasRenameEntry WINELIB_NAME_AW(RasRenameEntry)
484 DWORD WINAPI RasSetAutodialAddressA(LPCSTR,DWORD,LPRASAUTODIALENTRYA,DWORD,DWORD);
485 DWORD WINAPI RasSetAutodialAddressW(LPCWSTR,DWORD,LPRASAUTODIALENTRYW,DWORD,DWORD);
486 #define RasSetAutodialAddress WINELIB_NAME_AW(RasSetAutodialAddress)
487 DWORD WINAPI RasSetAutodialParamA(DWORD,LPVOID,DWORD);
488 DWORD WINAPI RasSetAutodialParamW(DWORD,LPVOID,DWORD);
489 #define RasSetAutodialParam WINELIB_NAME_AW(RasSetAutodialParam)
490 DWORD WINAPI RasSetEntryDialParamsA(LPCSTR,LPRASDIALPARAMSA,BOOL);
491 DWORD WINAPI RasSetEntryDialParamsW(LPCWSTR,LPRASDIALPARAMSW,BOOL);
492 #define RasSetEntryDialParams WINELIB_NAME_AW(RasSetEntryDialParams)
493 DWORD WINAPI RasSetSubEntryPropertiesA(LPCSTR,LPCSTR,DWORD,LPRASSUBENTRYA,DWORD,LPBYTE,DWORD);
494 DWORD WINAPI RasSetSubEntryPropertiesW(LPCWSTR,LPCWSTR,DWORD,LPRASSUBENTRYW,DWORD,LPBYTE,DWORD);
495 #define RasSetSubEntryProperties WINELIB_NAME_AW(RasSetSubEntryProperties)
496 DWORD WINAPI RasValidateEntryNameA(LPCSTR lpszPhonebook, LPCSTR lpszEntry);
497 DWORD WINAPI RasValidateEntryNameW(LPCWSTR lpszPhonebook, LPCWSTR lpszEntry);
498 #define RasValidateEntryName WINELIB_NAME_AW(RasValidateEntryName)
499 DWORD WINAPI RasSetEntryPropertiesA(LPCSTR,LPCSTR,LPRASENTRYA,DWORD,LPBYTE,DWORD);
500 DWORD WINAPI RasSetEntryPropertiesW(LPCWSTR,LPCWSTR,LPRASENTRYW,DWORD,LPBYTE,DWORD);
501 #define RasSetEntryProperties WINELIB_NAME_AW(RasSetEntryProperties)
502 DWORD WINAPI RasSetAutodialEnableA(DWORD dwDialingLocation, BOOL fEnabled);
503 DWORD WINAPI RasSetAutodialEnableW(DWORD dwDialingLocation, BOOL fEnabled);
504 #define RasSetAutodialEnable WINELIB_NAME_AW(RasSetAutodialEnable)