New structures: RASIPADDR, RASDEVINFO, RASENTRY.

New stubs: RasSetEntryProperties.
RasEnumDevicesA enhanced.
This commit is contained in:
Marcus Meissner 2002-11-08 18:53:19 +00:00 committed by Alexandre Julliard
parent ded2b88e06
commit d0a58e218a
3 changed files with 298 additions and 21 deletions

View File

@ -1,7 +1,7 @@
/* /*
* RASAPI32 * RASAPI32
* *
* Copyright 1998 Marcus Meissner * Copyright 1998,2001 Marcus Meissner
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
@ -64,8 +64,8 @@ DWORD WINAPI RasEnumEntriesA( LPCSTR Reserved, LPCSTR lpszPhoneBook,
/************************************************************************** /**************************************************************************
* RasGetEntryDialParamsA [RASAPI32.550] * RasGetEntryDialParamsA [RASAPI32.550]
*/ */
DWORD WINAPI RasGetEntryDialParamsA( LPCSTR lpszPhoneBook, DWORD WINAPI RasGetEntryDialParamsA(
LPRASDIALPARAMSA lpRasDialParams, LPCSTR lpszPhoneBook, LPRASDIALPARAMSA lpRasDialParams,
LPBOOL lpfPassword) LPBOOL lpfPassword)
{ {
FIXME("(%s,%p,%p),stub!\n",debugstr_a(lpszPhoneBook), FIXME("(%s,%p,%p),stub!\n",debugstr_a(lpszPhoneBook),
@ -118,17 +118,25 @@ DWORD WINAPI RasEnumAutodialAddressesW(LPCWSTR *a, LPDWORD b, LPDWORD c)
return 0; return 0;
} }
typedef LPVOID LPRASDEVINFOA;
typedef LPVOID LPRASDEVINFOW;
typedef LPVOID LPRASAUTODIALENTRYA; typedef LPVOID LPRASAUTODIALENTRYA;
typedef LPVOID LPRASAUTODIALENTRYW; typedef LPVOID LPRASAUTODIALENTRYW;
/************************************************************************** /**************************************************************************
* RasEnumDevicesA [RASAPI32.19] * 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; return 0;
} }
@ -182,18 +190,18 @@ DWORD WINAPI RasGetAutodialEnableW(DWORD a, LPBOOL b)
/************************************************************************** /**************************************************************************
* RasGetAutodialParamA [RASAPI32.28] * 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; return 0;
} }
/************************************************************************** /**************************************************************************
* RasGetAutodialParamW [RASAPI32.29] * 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; return 0;
} }
@ -220,18 +228,18 @@ DWORD WINAPI RasSetAutodialAddressW(LPCWSTR a, DWORD b, LPRASAUTODIALENTRYW c,
/************************************************************************** /**************************************************************************
* RasSetAutodialEnableA [RASAPI32.59] * 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; return 0;
} }
/************************************************************************** /**************************************************************************
* RasSetAutodialEnableW [RASAPI32.60] * 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; return 0;
} }
@ -254,9 +262,48 @@ DWORD WINAPI RasSetAutodialParamW(DWORD a, LPVOID b, DWORD c)
} }
/************************************************************************** /**************************************************************************
* RasValidateEntryNameA [RASAPI32.72] * RasSetEntryPropertiesA [RASAPI32.67]
*/ */
DWORD WINAPI RasValidateEntryNameA(LPSTR lpszPhonebook, LPSTR lpszEntry) { DWORD WINAPI RasSetEntryPropertiesA(LPCSTR lpszPhonebook, LPCSTR lpszEntry,
FIXME("(%s,%s), stub!\n",lpszPhonebook,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(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; return 0;
} }

View File

@ -36,8 +36,8 @@
62 stdcall RasSetAutodialParamW(long ptr long) RasSetAutodialParamW 62 stdcall RasSetAutodialParamW(long ptr long) RasSetAutodialParamW
63 stub RasSetCredentialsA 63 stub RasSetCredentialsA
64 stub RasSetCredentialsW 64 stub RasSetCredentialsW
67 stub RasSetEntryPropertiesA 67 stdcall RasSetEntryPropertiesA( str str ptr long ptr long) RasSetEntryPropertiesA
68 stub RasSetEntryPropertiesW 68 stdcall RasSetEntryPropertiesW(wstr wstr ptr long ptr long) RasSetEntryPropertiesW
69 stub RasSetOldPassword 69 stub RasSetOldPassword
70 stub RasSetSubEntryPropertiesA 70 stub RasSetSubEntryPropertiesA
71 stub RasSetSubEntryPropertiesW 71 stub RasSetSubEntryPropertiesW

View File

@ -32,9 +32,39 @@ extern "C" {
#define RAS_MaxDeviceType 16 #define RAS_MaxDeviceType 16
#define RAS_MaxEntryName 256 #define RAS_MaxEntryName 256
#define RAS_MaxPhoneNumber 128 #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); 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 { typedef struct tagRASCONNA {
DWORD dwSize; DWORD dwSize;
HRASCONN hRasConn; HRASCONN hRasConn;
@ -98,6 +128,190 @@ typedef struct tagRASDIALPARAMSW {
DECL_WINELIB_TYPE_AW(RASDIALPARAMS) DECL_WINELIB_TYPE_AW(RASDIALPARAMS)
DECL_WINELIB_TYPE_AW(LPRASDIALPARAMS) 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 RasEnumConnectionsA(LPRASCONNA,LPDWORD,LPDWORD);
DWORD WINAPI RasEnumConnectionsW(LPRASCONNW,LPDWORD,LPDWORD); DWORD WINAPI RasEnumConnectionsW(LPRASCONNW,LPDWORD,LPDWORD);
@ -111,6 +325,22 @@ DWORD WINAPI RasGetEntryDialParamsW(LPCWSTR,LPRASDIALPARAMSW,LPBOOL);
DWORD WINAPI RasHangUpA(HRASCONN); DWORD WINAPI RasHangUpA(HRASCONN);
DWORD WINAPI RasHangUpW(HRASCONN); DWORD WINAPI RasHangUpW(HRASCONN);
#define RasHangUp WINELIB_NAME_AW(RasHangUp) #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" #include "poppack.h"
#ifdef __cplusplus #ifdef __cplusplus