PATCH: more ras stubs
Marcus Meissner
meissner at suse.de
Thu Nov 7 09:14:00 CST 2002
Hi,
Ciao, Marcus
Changelog:
New structures: RASIPADDR, RASDEVINFO, RASENTRY.
New stubs: RasSetEntryProperties
RasEnumDevicesA enhanced.
Index: include/ras.h
===================================================================
RCS file: /home/wine/wine/include/ras.h,v
retrieving revision 1.7
diff -u -r1.7 ras.h
--- include/ras.h 31 May 2002 23:06:48 -0000 1.7
+++ include/ras.h 7 Nov 2002 15:03:28 -0000
@@ -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
Index: dlls/rasapi32/rasapi.c
===================================================================
RCS file: /home/wine/wine/dlls/rasapi32/rasapi.c,v
retrieving revision 1.20
diff -u -r1.20 rasapi.c
--- dlls/rasapi32/rasapi.c 6 Nov 2002 19:52:48 -0000 1.20
+++ dlls/rasapi32/rasapi.c 7 Nov 2002 15:03:28 -0000
@@ -1,7 +1,7 @@
/*
* RASAPI32
*
- * Copyright 1998 Marcus Meissner
+ * Copyright 1998,2001 Marcus Meissner
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -64,9 +64,9 @@
/**************************************************************************
* RasGetEntryDialParamsA [RASAPI32.550]
*/
-DWORD WINAPI RasGetEntryDialParamsA( LPCSTR lpszPhoneBook,
- LPRASDIALPARAMSA lpRasDialParams,
- LPBOOL lpfPassword)
+DWORD WINAPI RasGetEntryDialParamsA(
+ LPCSTR lpszPhoneBook, LPRASDIALPARAMSA lpRasDialParams,
+ LPBOOL lpfPassword)
{
FIXME("(%s,%p,%p),stub!\n",debugstr_a(lpszPhoneBook),
lpRasDialParams,lpfPassword);
@@ -118,17 +118,25 @@
return 0;
}
-typedef LPVOID LPRASDEVINFOA;
-typedef LPVOID LPRASDEVINFOW;
typedef LPVOID LPRASAUTODIALENTRYA;
typedef LPVOID LPRASAUTODIALENTRYW;
/**************************************************************************
* RasEnumDevicesA [RASAPI32.19]
+ *
+ * Just return a virtual modem too see what other APIs programs will
+ * call with it.
*/
-DWORD WINAPI RasEnumDevicesA(LPRASDEVINFOA a, LPDWORD b, LPDWORD c)
+DWORD WINAPI RasEnumDevicesA(LPRASDEVINFOA lpRasDevinfo, LPDWORD lpcb, LPDWORD lpcDevices)
{
- FIXME("(%p,%p,%p),stub!\n",a,b,c);
+ FIXME("(%p,%p,%p),stub!\n",lpRasDevinfo,lpcb,lpcDevices);
+ if (*lpcb < sizeof(RASDEVINFOA)) {
+ *lpcb = sizeof(RASDEVINFOA);
+ return ERROR_BUFFER_TOO_SMALL;
+ }
+ /* honor dwSize ? */
+ strcpy(lpRasDevinfo->szDeviceType, RASDT_Modem);
+ strcpy(lpRasDevinfo->szDeviceName, "WINE virtmodem");
return 0;
}
@@ -182,18 +190,18 @@
/**************************************************************************
* RasGetAutodialParamA [RASAPI32.28]
*/
-DWORD WINAPI RasGetAutodialParamA(DWORD a, LPVOID b, LPDWORD c)
+DWORD WINAPI RasGetAutodialParamA(DWORD dwKey, LPVOID lpvValue, LPDWORD lpdwcbValue)
{
- FIXME("(%lx,%p,%p),stub!\n",a,b,c);
+ FIXME("(%lx,%p,%p),stub!\n",dwKey,lpvValue,lpdwcbValue);
return 0;
}
/**************************************************************************
* RasGetAutodialParamW [RASAPI32.29]
*/
-DWORD WINAPI RasGetAutodialParamW(DWORD a, LPVOID b, LPDWORD c)
+DWORD WINAPI RasGetAutodialParamW(DWORD dwKey, LPVOID lpvValue, LPDWORD lpdwcbValue)
{
- FIXME("(%lx,%p,%p),stub!\n",a,b,c);
+ FIXME("(%lx,%p,%p),stub!\n",dwKey,lpvValue,lpdwcbValue);
return 0;
}
@@ -220,18 +228,18 @@
/**************************************************************************
* RasSetAutodialEnableA [RASAPI32.59]
*/
-DWORD WINAPI RasSetAutodialEnableA(DWORD a, BOOL b)
+DWORD WINAPI RasSetAutodialEnableA(DWORD dwDialingLocation, BOOL fEnabled)
{
- FIXME("(%lx,%x),stub!\n",a,b);
+ FIXME("(%lx,%x),stub!\n",dwDialingLocation,fEnabled);
return 0;
}
/**************************************************************************
* RasSetAutodialEnableW [RASAPI32.60]
*/
-DWORD WINAPI RasSetAutodialEnableW(DWORD a, BOOL b)
+DWORD WINAPI RasSetAutodialEnableW(DWORD dwDialingLocation, BOOL fEnabled)
{
- FIXME("(%lx,%x),stub!\n",a,b);
+ FIXME("(%lx,%x),stub!\n",dwDialingLocation,fEnabled);
return 0;
}
@@ -254,9 +262,49 @@
}
/**************************************************************************
+ * RasSetEntryPropertiesA [RASAPI32.67]
+ */
+DWORD WINAPI RasSetEntryPropertiesA(LPCSTR lpszPhonebook, LPCSTR lpszEntry,
+ LPRASENTRYA lpRasEntry, DWORD dwEntryInfoSize, LPBYTE lpbDeviceInfo,
+ DWORD dwDeviceInfoSize
+) {
+ FIXME("(%s,%s,%p,%ld,%p,%ld), stub!\n",
+ debugstr_a(lpszPhonebook),debugstr_a(lpszEntry),
+ lpRasEntry,dwEntryInfoSize,lpbDeviceInfo,dwDeviceInfoSize
+ );
+ FIXME("Rasentry:\n");
+ FIXME("\tdwfOptions %lx\n",lpRasEntry->dwfOptions);
+ FIXME("\tszLocalPhoneNumber %s\n",debugstr_a(lpRasEntry->szLocalPhoneNumber));
+ return 0;
+}
+
+/**************************************************************************
+ * RasSetEntryPropertiesW [RASAPI32.68]
+ */
+DWORD WINAPI RasSetEntryPropertiesW(LPCWSTR lpszPhonebook, LPCWSTR lpszEntry,
+ LPRASENTRYW lpRasEntry, DWORD dwEntryInfoSize, LPBYTE lpbDeviceInfo,
+ DWORD dwDeviceInfoSize
+) {
+ FIXME("(%s,%s,%p,%ld,%p,%ld), stub!\n",
+ debugstr_w(lpszPhonebook),debugstr_w(lpszEntry),
+ lpRasEntry,dwEntryInfoSize,lpbDeviceInfo,dwDeviceInfoSize
+ );
+ return 0;
+}
+
+/**************************************************************************
* RasValidateEntryNameA [RASAPI32.72]
*/
-DWORD WINAPI RasValidateEntryNameA(LPSTR lpszPhonebook, LPSTR lpszEntry) {
- FIXME("(%s,%s), stub!\n",lpszPhonebook,lpszEntry);
+DWORD WINAPI RasValidateEntryNameA(LPCSTR lpszPhonebook, LPCSTR lpszEntry) {
+ FIXME("(%s,%s), stub!\n",debugstr_a(lpszPhonebook),debugstr_a(lpszEntry));
+ return 0;
+}
+
+/**************************************************************************
+ * RasValidateEntryNameW [RASAPI32.73]
+ */
+DWORD WINAPI RasValidateEntryNameW(LPCWSTR lpszPhonebook, LPCWSTR lpszEntry) {
+ FIXME("(%s,%s), stub!\n",debugstr_w(lpszPhonebook),debugstr_w(lpszEntry));
return 0;
}
+
Index: dlls/rasapi32/rasapi32.spec
===================================================================
RCS file: /home/wine/wine/dlls/rasapi32/rasapi32.spec,v
retrieving revision 1.12
diff -u -r1.12 rasapi32.spec
--- dlls/rasapi32/rasapi32.spec 6 Nov 2002 19:52:48 -0000 1.12
+++ dlls/rasapi32/rasapi32.spec 7 Nov 2002 15:03:28 -0000
@@ -36,8 +36,8 @@
62 stdcall RasSetAutodialParamW(long ptr long) RasSetAutodialParamW
63 stub RasSetCredentialsA
64 stub RasSetCredentialsW
-67 stub RasSetEntryPropertiesA
-68 stub RasSetEntryPropertiesW
+67 stdcall RasSetEntryPropertiesA( str str ptr long ptr long) RasSetEntryPropertiesA
+68 stdcall RasSetEntryPropertiesW(wstr wstr ptr long ptr long) RasSetEntryPropertiesW
69 stub RasSetOldPassword
70 stub RasSetSubEntryPropertiesA
71 stub RasSetSubEntryPropertiesW
More information about the wine-patches
mailing list