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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
30 #define RAS_MaxCallbackNumber RAS_MaxPhoneNumber
31 #define RAS_MaxDeviceName 128
32 #define RAS_MaxDeviceType 16
33 #define RAS_MaxEntryName 256
34 #define RAS_MaxPhoneNumber 128
35 #define RAS_MaxAreaCode 10
36 #define RAS_MaxPadType 32
37 #define RAS_MaxX25Address 200
38 #define RAS_MaxFacilities 200
39 #define RAS_MaxUserData 200
40 #define RAS_MaxDnsSuffix 256
42 DECLARE_HANDLE(HRASCONN
);
44 /* szDeviceType strings for RASDEVINFO */
45 #define RASDT_Direct "direct"
46 #define RASDT_Modem "modem"
47 #define RASDT_Isdn "isdn"
48 #define RASDT_X25 "x25"
51 #define ERROR_BUFFER_TOO_SMALL (RASBASE+3)
52 #define ERROR_INVALID_SIZE (RASBASE+32)
54 typedef struct tagRASDEVINFOA
{
56 CHAR szDeviceType
[ RAS_MaxDeviceType
+ 1 ];
57 CHAR szDeviceName
[ RAS_MaxDeviceName
+ 1 ];
58 } RASDEVINFOA
, *LPRASDEVINFOA
;
60 typedef struct tagRASDEVINFOW
{
62 WCHAR szDeviceType
[ RAS_MaxDeviceType
+ 1 ];
63 WCHAR szDeviceName
[ RAS_MaxDeviceName
+ 1 ];
64 } RASDEVINFOW
, *LPRASDEVINFOW
;
66 DECL_WINELIB_TYPE_AW(RASDEVINFO
)
67 DECL_WINELIB_TYPE_AW(LPRASDEVINFO
)
69 typedef struct tagRASCONNA
{
72 CHAR szEntryName
[ RAS_MaxEntryName
+ 1 ];
73 CHAR szDeviceType
[ RAS_MaxDeviceType
+ 1 ];
74 CHAR szDeviceName
[ RAS_MaxDeviceName
+ 1 ];
75 CHAR szPhonebook
[ MAX_PATH
];
77 } RASCONNA
,*LPRASCONNA
;
79 typedef struct tagRASCONNW
{
82 WCHAR szEntryName
[ RAS_MaxEntryName
+ 1 ];
83 WCHAR szDeviceType
[ RAS_MaxDeviceType
+ 1 ];
84 WCHAR szDeviceName
[ RAS_MaxDeviceName
+ 1 ];
85 WCHAR szPhonebook
[ MAX_PATH
];
87 } RASCONNW
,*LPRASCONNW
;
89 DECL_WINELIB_TYPE_AW(RASCONN
)
90 DECL_WINELIB_TYPE_AW(LPRASCONN
)
92 typedef struct tagRASENTRYNAMEA
{
94 CHAR szEntryName
[ RAS_MaxEntryName
+ 1 ];
95 } RASENTRYNAMEA
, *LPRASENTRYNAMEA
;
97 typedef struct tagRASENTRYNAMEW
{
99 WCHAR szEntryName
[ RAS_MaxEntryName
+ 1 ];
100 } RASENTRYNAMEW
, *LPRASENTRYNAMEW
;
102 DECL_WINELIB_TYPE_AW(RASENTRYNAME
)
103 DECL_WINELIB_TYPE_AW(LPRASENTRYNAME
)
105 typedef struct tagRASDIALPARAMSA
{
107 CHAR szEntryName
[ RAS_MaxEntryName
+ 1 ];
108 CHAR szPhoneNumber
[ RAS_MaxPhoneNumber
+ 1 ];
109 CHAR szCallbackNumber
[ RAS_MaxCallbackNumber
+ 1 ];
110 CHAR szUserName
[ UNLEN
+ 1 ];
111 CHAR szPassword
[ PWLEN
+ 1 ];
112 CHAR szDomain
[ DNLEN
+ 1 ];
115 } RASDIALPARAMSA
, *LPRASDIALPARAMSA
;
117 typedef struct tagRASDIALPARAMSW
{
119 WCHAR szEntryName
[ RAS_MaxEntryName
+ 1 ];
120 WCHAR szPhoneNumber
[ RAS_MaxPhoneNumber
+ 1 ];
121 WCHAR szCallbackNumber
[ RAS_MaxCallbackNumber
+ 1 ];
122 WCHAR szUserName
[ UNLEN
+ 1 ];
123 WCHAR szPassword
[ PWLEN
+ 1 ];
124 WCHAR szDomain
[ DNLEN
+ 1 ];
127 } RASDIALPARAMSW
, *LPRASDIALPARAMSW
;
129 DECL_WINELIB_TYPE_AW(RASDIALPARAMS
)
130 DECL_WINELIB_TYPE_AW(LPRASDIALPARAMS
)
132 typedef struct tagRASIPADDR
{
133 BYTE classA
,classB
,classC
,classD
;
136 #define RASEO_UseCountryAndAreaCodes 0x0001
137 #define RASEO_SpecificIpAddr 0x0002
138 #define RASEO_SpecificNameServers 0x0004
139 #define RASEO_IpHeaderCompression 0x0008
140 #define RASEO_RemoteDefaultGateway 0x0010
141 #define RASEO_DisableLcpExtensions 0x0020
142 #define RASEO_TerminalBeforeDial 0x0040
143 #define RASEO_TerminalAfterDial 0x0080
144 #define RASEO_ModemLights 0x0100
145 #define RASEO_SwCompression 0x0200
146 #define RASEO_RequireEncryptedPw 0x0400
147 #define RASEO_RequireMsEncryptedPw 0x0800
148 #define RASEO_RequireDataEncryption 0x1000
149 #define RASEO_NetworkLogon 0x2000
150 #define RASEO_UseLogonCredentials 0x4000
151 #define RASEO_PromoteAlternates 0x8000
152 typedef struct tagRASENTRYA
{
160 CHAR szAreaCode
[ RAS_MaxAreaCode
+ 1 ];
161 CHAR szLocalPhoneNumber
[ RAS_MaxPhoneNumber
+ 1 ];
162 DWORD dwAlternateOffset
;
164 /* IP related stuff */
168 RASIPADDR ipaddrDnsAlt
;
169 RASIPADDR ipaddrWins
;
170 RASIPADDR ipaddrWinsAlt
;
172 /* Framing (for ppp/isdn etc...) */
175 DWORD dwfNetProtocols
;
176 DWORD dwFramingProtocol
;
178 CHAR szScript
[ MAX_PATH
];
180 CHAR szAutodialDll
[ MAX_PATH
];
181 CHAR szAutodialFunc
[ MAX_PATH
];
183 CHAR szDeviceType
[ RAS_MaxDeviceType
+ 1 ];
184 CHAR szDeviceName
[ RAS_MaxDeviceName
+ 1 ];
188 CHAR szX25PadType
[ RAS_MaxPadType
+ 1 ];
189 CHAR szX25Address
[ RAS_MaxX25Address
+ 1 ];
190 CHAR szX25Facilities
[ RAS_MaxFacilities
+ 1 ];
191 CHAR szX25UserData
[ RAS_MaxUserData
+ 1 ];
197 /* Multilink and BAP */
201 DWORD dwDialExtraPercent
;
202 DWORD dwDialExtraSampleSeconds
;
203 DWORD dwHangUpExtraPercent
;
204 DWORD dwHangUpExtraSampleSeconds
;
207 DWORD dwIdleDisconnectSeconds
;
209 DWORD dwType
; /* entry type */
210 DWORD dwEncryptionType
; /* type of encryption to use */
211 DWORD dwCustomAuthKey
; /* authentication key for EAP */
212 GUID guidId
; /* guid that represents the phone-book entry */
213 CHAR szCustomDialDll
[MAX_PATH
]; /* DLL for custom dialing */
214 DWORD dwVpnStrategy
; /* specifies type of VPN protocol */
218 CHAR szDnsSuffix
[RAS_MaxDnsSuffix
];
219 DWORD dwTcpWindowSize
;
220 CHAR szPrerequisitePbk
[MAX_PATH
];
221 CHAR szPrerequisiteEntry
[RAS_MaxEntryName
+ 1];
224 } RASENTRYA
, *LPRASENTRYA
;
226 typedef struct tagRASENTRYW
{
234 WCHAR szAreaCode
[ RAS_MaxAreaCode
+ 1 ];
235 WCHAR szLocalPhoneNumber
[ RAS_MaxPhoneNumber
+ 1 ];
236 DWORD dwAlternateOffset
;
238 /* IP related stuff */
242 RASIPADDR ipaddrDnsAlt
;
243 RASIPADDR ipaddrWins
;
244 RASIPADDR ipaddrWinsAlt
;
246 /* Framing (for ppp/isdn etc...) */
249 DWORD dwfNetProtocols
;
250 DWORD dwFramingProtocol
;
252 WCHAR szScript
[ MAX_PATH
];
254 WCHAR szAutodialDll
[ MAX_PATH
];
255 WCHAR szAutodialFunc
[ MAX_PATH
];
257 WCHAR szDeviceType
[ RAS_MaxDeviceType
+ 1 ];
258 WCHAR szDeviceName
[ RAS_MaxDeviceName
+ 1 ];
262 WCHAR szX25PadType
[ RAS_MaxPadType
+ 1 ];
263 WCHAR szX25Address
[ RAS_MaxX25Address
+ 1 ];
264 WCHAR szX25Facilities
[ RAS_MaxFacilities
+ 1 ];
265 WCHAR szX25UserData
[ RAS_MaxUserData
+ 1 ];
271 /* Multilink and BAP */
275 DWORD dwDialExtraPercent
;
276 DWORD dwDialExtraSampleSeconds
;
277 DWORD dwHangUpExtraPercent
;
278 DWORD dwHangUpExtraSampleSeconds
;
281 DWORD dwIdleDisconnectSeconds
;
283 DWORD dwType
; /* entry type */
284 DWORD dwEncryptionType
; /* type of encryption to use */
285 DWORD dwCustomAuthKey
; /* authentication key for EAP */
286 GUID guidId
; /* guid that represents the phone-book entry */
287 WCHAR szCustomDialDll
[MAX_PATH
]; /* DLL for custom dialing */
288 DWORD dwVpnStrategy
; /* specifies type of VPN protocol */
292 WCHAR szDnsSuffix
[RAS_MaxDnsSuffix
];
293 DWORD dwTcpWindowSize
;
294 WCHAR szPrerequisitePbk
[MAX_PATH
];
295 WCHAR szPrerequisiteEntry
[RAS_MaxEntryName
+ 1];
298 } RASENTRYW
, *LPRASENTRYW
;
300 DECL_WINELIB_TYPE_AW(RASENTRY
)
302 DWORD WINAPI
RasDeleteEntryA(LPCSTR
,LPCSTR
);
303 DWORD WINAPI
RasDeleteEntryW(LPCWSTR
,LPCWSTR
);
304 #define RasDeleteEntry WINELIB_NAME_AW(RasDeleteEntry)
305 DWORD WINAPI
RasDeleteSubEntryA(LPCSTR
,LPCSTR
,DWORD
);
306 DWORD WINAPI
RasDeleteSubEntryW(LPCWSTR
,LPCWSTR
,DWORD
);
307 #define RasDeleteSubEntry WINELIB_NAME_AW(RasDeleteSubEntry)
308 DWORD WINAPI
RasEnumConnectionsA(LPRASCONNA
,LPDWORD
,LPDWORD
);
309 DWORD WINAPI
RasEnumConnectionsW(LPRASCONNW
,LPDWORD
,LPDWORD
);
310 #define RasEnumConnections WINELIB_NAME_AW(RasEnumConnections)
311 DWORD WINAPI
RasEnumEntriesA(LPCSTR
,LPCSTR
,LPRASENTRYNAMEA
,LPDWORD
,LPDWORD
);
312 DWORD WINAPI
RasEnumEntriesW(LPCWSTR
,LPCWSTR
,LPRASENTRYNAMEW
,LPDWORD
,LPDWORD
);
313 #define RasEnumEntries WINELIB_NAME_AW(RasEnumEntries)
314 DWORD WINAPI
RasGetEntryDialParamsA(LPCSTR
,LPRASDIALPARAMSA
,LPBOOL
);
315 DWORD WINAPI
RasGetEntryDialParamsW(LPCWSTR
,LPRASDIALPARAMSW
,LPBOOL
);
316 #define RasGetEntryDialParams WINELIB_NAME_AW(RasGetEntryDialParams)
317 DWORD WINAPI
RasHangUpA(HRASCONN
);
318 DWORD WINAPI
RasHangUpW(HRASCONN
);
319 #define RasHangUp WINELIB_NAME_AW(RasHangUp)
320 DWORD WINAPI
RasValidateEntryNameA(LPCSTR lpszPhonebook
, LPCSTR lpszEntry
);
321 DWORD WINAPI
RasValidateEntryNameW(LPCWSTR lpszPhonebook
, LPCWSTR lpszEntry
);
322 #define RasValidateEntryName WINELIB_NAME_AW(RasValidateEntryName)
323 DWORD WINAPI
RasSetEntryPropertiesA(LPCSTR lpszPhonebook
, LPCSTR lpszEntry
,
324 LPRASENTRYA lpRasEntry
, DWORD dwEntryInfoSize
, LPBYTE lpbDeviceInfo
,
325 DWORD dwDeviceInfoSize
);
326 DWORD WINAPI
RasSetEntryPropertiesW(LPCWSTR lpszPhonebook
, LPCWSTR lpszEntry
,
327 LPRASENTRYW lpRasEntry
, DWORD dwEntryInfoSize
, LPBYTE lpbDeviceInfo
,
328 DWORD dwDeviceInfoSize
);
329 #define RasSetEntryProperties WINELIB_NAME_AW(RasSetEntryProperties)
330 DWORD WINAPI
RasGetAutodialParamA(DWORD dwKey
, LPVOID lpvValue
, LPDWORD lpdwcbValue
);
331 DWORD WINAPI
RasGetAutodialParamW(DWORD dwKey
, LPVOID lpvValue
, LPDWORD lpdwcbValue
);
332 #define RasGetAutodialParam WINELIB_NAME_AW(RasGetAutodialParam)
333 DWORD WINAPI
RasSetAutodialEnableA(DWORD dwDialingLocation
, BOOL fEnabled
);
334 DWORD WINAPI
RasSetAutodialEnableW(DWORD dwDialingLocation
, BOOL fEnabled
);
335 #define RasSetAutodialEnable WINELIB_NAME_AW(RasSetAutodialEnable)