New structures: RASIPADDR, RASDEVINFO, RASENTRY.
New stubs: RasSetEntryProperties.
RasEnumDevicesA enhanced.
diff --git a/include/ras.h b/include/ras.h
index ea4ae72..3b71d48 100644
--- a/include/ras.h
+++ b/include/ras.h
@@ -32,9 +32,39 @@
#define RAS_MaxDeviceType 16
#define RAS_MaxEntryName 256
#define RAS_MaxPhoneNumber 128
+#define RAS_MaxAreaCode 10
+#define RAS_MaxPadType 32
+#define RAS_MaxX25Address 200
+#define RAS_MaxFacilities 200
+#define RAS_MaxUserData 200
DECLARE_HANDLE(HRASCONN);
+/* szDeviceType strings for RASDEVINFO */
+#define RASDT_Direct "direct"
+#define RASDT_Modem "modem"
+#define RASDT_Isdn "isdn"
+#define RASDT_X25 "x25"
+
+#define RASBASE 600
+#define ERROR_BUFFER_TOO_SMALL (RASBASE+3)
+#define ERROR_INVALID_SIZE (RASBASE+32)
+
+typedef struct tagRASDEVINFOA {
+ DWORD dwSize;
+ CHAR szDeviceType[ RAS_MaxDeviceType + 1 ];
+ CHAR szDeviceName[ RAS_MaxDeviceName + 1 ];
+} RASDEVINFOA, *LPRASDEVINFOA;
+
+typedef struct tagRASDEVINFOW {
+ DWORD dwSize;
+ WCHAR szDeviceType[ RAS_MaxDeviceType + 1 ];
+ WCHAR szDeviceName[ RAS_MaxDeviceName + 1 ];
+} RASDEVINFOW, *LPRASDEVINFOW;
+
+DECL_WINELIB_TYPE_AW(RASDEVINFO)
+DECL_WINELIB_TYPE_AW(LPRASDEVINFO)
+
typedef struct tagRASCONNA {
DWORD dwSize;
HRASCONN hRasConn;
@@ -98,6 +128,190 @@
DECL_WINELIB_TYPE_AW(RASDIALPARAMS)
DECL_WINELIB_TYPE_AW(LPRASDIALPARAMS)
+typedef struct tagRASIPADDR {
+ BYTE classA,classB,classC,classD;
+} RASIPADDR;
+
+#define RASEO_UseCountryAndAreaCodes 0x0001
+#define RASEO_SpecificIpAddr 0x0002
+#define RASEO_SpecificNameServers 0x0004
+#define RASEO_IpHeaderCompression 0x0008
+#define RASEO_RemoteDefaultGateway 0x0010
+#define RASEO_DisableLcpExtensions 0x0020
+#define RASEO_TerminalBeforeDial 0x0040
+#define RASEO_TerminalAfterDial 0x0080
+#define RASEO_ModemLights 0x0100
+#define RASEO_SwCompression 0x0200
+#define RASEO_RequireEncryptedPw 0x0400
+#define RASEO_RequireMsEncryptedPw 0x0800
+#define RASEO_RequireDataEncryption 0x1000
+#define RASEO_NetworkLogon 0x2000
+#define RASEO_UseLogonCredentials 0x4000
+#define RASEO_PromoteAlternates 0x8000
+typedef struct tagRASENTRYA {
+ DWORD dwSize;
+ DWORD dwfOptions;
+
+ /* Location */
+
+ DWORD dwCountryID;
+ DWORD dwCountryCode;
+ CHAR szAreaCode[ RAS_MaxAreaCode + 1 ];
+ CHAR szLocalPhoneNumber[ RAS_MaxPhoneNumber + 1 ];
+ DWORD dwAlternateOffset;
+
+ /* IP related stuff */
+
+ RASIPADDR ipaddr;
+ RASIPADDR ipaddrDns;
+ RASIPADDR ipaddrDnsAlt;
+ RASIPADDR ipaddrWins;
+ RASIPADDR ipaddrWinsAlt;
+
+ /* Framing (for ppp/isdn etc...) */
+
+ DWORD dwFrameSize;
+ DWORD dwfNetProtocols;
+ DWORD dwFramingProtocol;
+
+ CHAR szScript[ MAX_PATH ];
+
+ CHAR szAutodialDll[ MAX_PATH ];
+ CHAR szAutodialFunc[ MAX_PATH ];
+
+ CHAR szDeviceType[ RAS_MaxDeviceType + 1 ];
+ CHAR szDeviceName[ RAS_MaxDeviceName + 1 ];
+
+ /* x25 only */
+
+ CHAR szX25PadType[ RAS_MaxPadType + 1 ];
+ CHAR szX25Address[ RAS_MaxX25Address + 1 ];
+ CHAR szX25Facilities[ RAS_MaxFacilities + 1 ];
+ CHAR szX25UserData[ RAS_MaxUserData + 1 ];
+ DWORD dwChannels;
+
+ DWORD dwReserved1;
+ DWORD dwReserved2;
+
+#if (WINVER >= 0x401)
+
+ /* Multilink and BAP */
+
+ DWORD dwSubEntries;
+ DWORD dwDialMode;
+ DWORD dwDialExtraPercent;
+ DWORD dwDialExtraSampleSeconds;
+ DWORD dwHangUpExtraPercent;
+ DWORD dwHangUpExtraSampleSeconds;
+
+ /* Idle time out */
+ DWORD dwIdleDisconnectSeconds;
+
+#endif
+#if (WINVER >= 0x500)
+
+ DWORD dwType; /* entry type */
+ DWORD dwEncryptionType; /* type of encryption to use */
+ DWORD dwCustomAuthKey; /* authentication key for EAP */
+ GUID guidId; /* guid that represents the phone-book entry */
+ CHAR szCustomDialDll[MAX_PATH]; /* DLL for custom dialing */
+ DWORD dwVpnStrategy; /* specifies type of VPN protocol */
+#endif
+#if (WINVER >= 0x501)
+ DWORD dwfOptions2;
+ DWORD dwfOptions3;
+ CHAR szDnsSuffix[RAS_MaxDnsSuffix];
+ DWORD dwTcpWindowSize;
+ CHAR szPrerequisitePbk[MAX_PATH];
+ CHAR szPrerequisiteEntry[RAS_MaxEntryName + 1];
+ DWORD dwRedialCount;
+ DWORD dwRedialPause;
+#endif
+} RASENTRYA, *LPRASENTRYA;
+
+typedef struct tagRASENTRYW {
+ DWORD dwSize;
+ DWORD dwfOptions;
+
+ /* Location */
+
+ DWORD dwCountryID;
+ DWORD dwCountryCode;
+ WCHAR szAreaCode[ RAS_MaxAreaCode + 1 ];
+ WCHAR szLocalPhoneNumber[ RAS_MaxPhoneNumber + 1 ];
+ DWORD dwAlternateOffset;
+
+ /* IP related stuff */
+
+ RASIPADDR ipaddr;
+ RASIPADDR ipaddrDns;
+ RASIPADDR ipaddrDnsAlt;
+ RASIPADDR ipaddrWins;
+ RASIPADDR ipaddrWinsAlt;
+
+ /* Framing (for ppp/isdn etc...) */
+
+ DWORD dwFrameSize;
+ DWORD dwfNetProtocols;
+ DWORD dwFramingProtocol;
+
+ WCHAR szScript[ MAX_PATH ];
+
+ WCHAR szAutodialDll[ MAX_PATH ];
+ WCHAR szAutodialFunc[ MAX_PATH ];
+
+ WCHAR szDeviceType[ RAS_MaxDeviceType + 1 ];
+ WCHAR szDeviceName[ RAS_MaxDeviceName + 1 ];
+
+ /* x25 only */
+
+ WCHAR szX25PadType[ RAS_MaxPadType + 1 ];
+ WCHAR szX25Address[ RAS_MaxX25Address + 1 ];
+ WCHAR szX25Facilities[ RAS_MaxFacilities + 1 ];
+ WCHAR szX25UserData[ RAS_MaxUserData + 1 ];
+ DWORD dwChannels;
+
+ DWORD dwReserved1;
+ DWORD dwReserved2;
+
+#if (WINVER >= 0x401)
+
+ /* Multilink and BAP */
+
+ DWORD dwSubEntries;
+ DWORD dwDialMode;
+ DWORD dwDialExtraPercent;
+ DWORD dwDialExtraSampleSeconds;
+ DWORD dwHangUpExtraPercent;
+ DWORD dwHangUpExtraSampleSeconds;
+
+ /* Idle time out */
+ DWORD dwIdleDisconnectSeconds;
+
+#endif
+#if (WINVER >= 0x500)
+
+ DWORD dwType; /* entry type */
+ DWORD dwEncryptionType; /* type of encryption to use */
+ DWORD dwCustomAuthKey; /* authentication key for EAP */
+ GUID guidId; /* guid that represents the phone-book entry */
+ WCHAR szCustomDialDll[MAX_PATH]; /* DLL for custom dialing */
+ DWORD dwVpnStrategy; /* specifies type of VPN protocol */
+#endif
+#if (WINVER >= 0x501)
+ DWORD dwfOptions2;
+ DWORD dwfOptions3;
+ WCHAR szDnsSuffix[RAS_MaxDnsSuffix];
+ DWORD dwTcpWindowSize;
+ WCHAR szPrerequisitePbk[MAX_PATH];
+ WCHAR szPrerequisiteEntry[RAS_MaxEntryName + 1];
+ DWORD dwRedialCount;
+ DWORD dwRedialPause;
+#endif
+} RASENTRYW, *LPRASENTRYW;
+
+DECL_WINELIB_TYPE_AW(RASENTRY)
+
DWORD WINAPI RasEnumConnectionsA(LPRASCONNA,LPDWORD,LPDWORD);
DWORD WINAPI RasEnumConnectionsW(LPRASCONNW,LPDWORD,LPDWORD);
@@ -111,6 +325,22 @@
DWORD WINAPI RasHangUpA(HRASCONN);
DWORD WINAPI RasHangUpW(HRASCONN);
#define RasHangUp WINELIB_NAME_AW(RasHangUp)
+DWORD WINAPI RasValidateEntryNameA(LPCSTR lpszPhonebook, LPCSTR lpszEntry);
+DWORD WINAPI RasValidateEntryNameW(LPCWSTR lpszPhonebook, LPCWSTR lpszEntry);
+#define RasValidateEntryName WINELIB_NAME_AW(RasValidateEntryName)
+DWORD WINAPI RasSetEntryPropertiesA(LPCSTR lpszPhonebook, LPCSTR lpszEntry,
+ LPRASENTRYA lpRasEntry, DWORD dwEntryInfoSize, LPBYTE lpbDeviceInfo,
+ DWORD dwDeviceInfoSize);
+DWORD WINAPI RasSetEntryPropertiesW(LPCWSTR lpszPhonebook, LPCWSTR lpszEntry,
+ LPRASENTRYW lpRasEntry, DWORD dwEntryInfoSize, LPBYTE lpbDeviceInfo,
+ DWORD dwDeviceInfoSize);
+#define RasSetEntryProperties WINELIB_NAME_AW(RasSetEntryProperties)
+DWORD WINAPI RasGetAutodialParamA(DWORD dwKey, LPVOID lpvValue, LPDWORD lpdwcbValue);
+DWORD WINAPI RasGetAutodialParamW(DWORD dwKey, LPVOID lpvValue, LPDWORD lpdwcbValue);
+#define RasGetAutodialParam WINELIB_NAME_AW(RasGetAutodialParam)
+DWORD WINAPI RasSetAutodialEnableA(DWORD dwDialingLocation, BOOL fEnabled);
+DWORD WINAPI RasSetAutodialEnableW(DWORD dwDialingLocation, BOOL fEnabled);
+#define RasSetAutodialEnable WINELIB_NAME_AW(RasSetAutodialEnable)
#include "poppack.h"
#ifdef __cplusplus