// ############################################################################ #ifndef __RNAANPI_H_ #define __RNAANPI_H_ #include "enumodem.h" #include "obcomglb.h" #define RASAPI_LIBRARY L"RASAPI32.DLL" #define RNAPH_LIBRARY L"RNAPH.DLL" #define RASAPI_RASSETENTRY "RasSetEntryPropertiesA" #define RASAPI_RASGETENTRY "RasGetEntryPropertiesA" #define RASAPI_RASDELETEENTRY "RasDeleteEntryA" #define LEN_APPEND_INT 3 // number of digits for MAX_APPEND_INT #define MAX_APPEND_INT 999 // maximum number to append to connectoid name // when cycling through names to create unique name // ############################################################################ typedef DWORD (WINAPI* PFNRASENUMDEVICES)(LPRASDEVINFO lpRasDevInfo, LPDWORD lpcb, LPDWORD lpcDevices); typedef DWORD (WINAPI* PFNRASVALIDATEENTRYNAE)(LPCWSTR lpszPhonebook, LPCWSTR lpszEntry); typedef DWORD (WINAPI* PFNRASSETENTRYPROPERTIES)(LPCWSTR lpszPhonebook, LPCWSTR lpszEntry, LPBYTE lpbEntryInfo, DWORD dwEntryInfoSize, LPBYTE lpbDeviceInfo, DWORD dwDeviceInfoSize); typedef DWORD (WINAPI* PFNRASGETENTRYPROPERTIES)(LPCWSTR lpszPhonebook, LPCWSTR lpszEntry, LPBYTE lpbEntryInfo, LPDWORD lpdwEntryInfoSize, LPBYTE lpbDeviceInfo, LPDWORD lpdwDeviceInfoSize); typedef DWORD (WINAPI* PFNRASDELETEENTRY)(LPWSTR lpszPhonebook, LPWSTR lpszEntry); typedef DWORD (WINAPI* PFNRASHANGUP)(HRASCONN); typedef DWORD (WINAPI* PFNRASENUMCONNECTIONS)(LPRASCONN, LPDWORD, LPDWORD); typedef DWORD (WINAPI* PFNRASDIAL)(LPRASDIALEXTENSIONS, LPWSTR,LPRASDIALPARAMS,DWORD,LPVOID,LPHRASCONN); typedef DWORD (WINAPI* PFNRASGETENTRYDIALPARAMS)(LPCWSTR, LPRASDIALPARAMS,LPBOOL); typedef DWORD (WINAPI* PFNRASGETCONNECTSTATUS)(HRASCONN, LPRASCONNSTATUS); typedef DWORD (WINAPI* PFNRASGETCOUNTRYINFO)(LPRASCTRYINFO, LPDWORD); typedef DWORD (WINAPI* PFNRASSETENTRYDIALPARAMS)(LPCWSTR, LPRASDIALPARAMS,BOOL); //BOOL LclSetEntryScriptPatch(LPWSTR lpszScript, LPCWSTR lpszEntry); static const WCHAR szDefaultAreaCode[] = L"555"; static const WCHAR cszDeviceSwitch[] = L"DEVICE=switch"; static const WCHAR cszRasPBKFilename[] = L"\\ras\\rasphone.pbk"; #define SCRIPT_PATCH_BUFFER_SIZE 2048 #define SIZEOF_NULL 1 static const WCHAR cszType[] = L"Type="; /* typedef struct tagINETCLIENTINFO { DWORD dwSize; DWORD dwFlags; WCHAR szEMailName[MAX_EMAIL_NAME + 1]; WCHAR szEMailAddress[MAX_EMAIL_ADDRESS + 1]; WCHAR szPOPLogonName[MAX_LOGON_NAME + 1]; WCHAR szPOPLogonPassword[MAX_LOGON_PASSWORD + 1]; WCHAR szPOPServer[MAX_SERVER_NAME + 1]; WCHAR szSMTPServer[MAX_SERVER_NAME + 1]; WCHAR szNNTPLogonName[MAX_LOGON_NAME + 1]; WCHAR szNNTPLogonPassword[MAX_LOGON_PASSWORD + 1]; WCHAR szNNTPServer[MAX_SERVER_NAME + 1]; // end of version 1.0 structure; // extended 1.1 structure includes the following fields: WCHAR szNNTPName[MAX_EMAIL_NAME + 1]; WCHAR szNNTPAddress[MAX_EMAIL_ADDRESS + 1]; int iIncomingProtocol; WCHAR szIncomingMailLogonName[MAX_LOGON_NAME + 1]; WCHAR szIncomingMailLogonPassword[MAX_LOGON_PASSWORD + 1]; WCHAR szIncomingMailServer[MAX_SERVER_NAME + 1]; BOOL fMailLogonSPA; BOOL fNewsLogonSPA; WCHAR szLDAPLogonName[MAX_LOGON_NAME + 1]; WCHAR szLDAPLogonPassword[MAX_LOGON_PASSWORD + 1]; WCHAR szLDAPServer[MAX_SERVER_NAME + 1]; BOOL fLDAPLogonSPA; BOOL fLDAPResolve; } INETCLIENTINFO, *PINETCLIENTINFO, FAR *LPINETCLIENTINFO; */ // ############################################################################ class RNAAPI { public: RNAAPI(); ~RNAAPI(); DWORD RasEnumDevices(LPRASDEVINFO, LPDWORD, LPDWORD); DWORD RasValidateEntryName(LPCWSTR, LPCWSTR); DWORD RasSetEntryProperties(LPCWSTR lpszPhonebook, LPCWSTR lpszEntry, LPBYTE lpbEntryInfo, DWORD dwEntryInfoSize, LPBYTE lpbDeviceInfo, DWORD dwDeviceInfoSize); DWORD RasGetEntryProperties(LPCWSTR lpszPhonebook, LPCWSTR lpszEntry, LPBYTE lpbEntryInfo, LPDWORD lpdwEntryInfoSize, LPBYTE lpbDeviceInfo, LPDWORD lpdwDeviceInfoSize); DWORD RasDeleteEntry(LPWSTR lpszPhonebook, LPWSTR lpszEntry); DWORD RasHangUp(HRASCONN hrasconn); DWORD RasGetEntryDialParams(LPCWSTR lpszPhonebook, LPRASDIALPARAMS lprasdialparams, LPBOOL lpfPassword); DWORD RasDial(LPRASDIALEXTENSIONS lpRasDialExtensions, LPWSTR lpszPhonebook, LPRASDIALPARAMS lpRasDialParams, DWORD dwNotifierType,LPVOID lpvNotifier, LPHRASCONN lphRasConn); DWORD RasEnumConnections(LPRASCONN lprasconn, LPDWORD lpcb,LPDWORD lpcConnections); DWORD RasGetConnectStatus(HRASCONN, LPRASCONNSTATUS); DWORD RasGetCountryInfo(LPRASCTRYINFO, LPDWORD); DWORD RasSetEntryDialParams(LPCWSTR, LPRASDIALPARAMS,BOOL); HRESULT InetConfigClientEx( HWND hwndParent, LPCWSTR lpszPhonebook, LPCWSTR lpszEntryName, LPRASENTRY lpRasEntry, LPCWSTR lpszUsername, LPCWSTR lpszPassword, LPCWSTR lpszProfileName, INETCLIENTINFO* lpINetClientInfo, DWORD dwfOptions, LPBOOL lpfNeedsRestart, LPWSTR szConnectoidName, DWORD dwSizeOfCreatedEntryName, LPBYTE lpDeviceInfo = 0, LPDWORD lpdwDeviceInfoSize = 0); private: BOOL LoadApi(LPCSTR, FARPROC*); DWORD CreateConnectoid(LPCWSTR pszPhonebook, LPCWSTR pszConnectionName, LPRASENTRY lpRasEntry, LPCWSTR pszUserName, LPCWSTR pszPassword, LPBYTE lpDeviceInfo = 0, LPDWORD lpdwDeviceInfoSize = 0); DWORD SetConnectoidUsername(LPCWSTR pszPhonebook, LPCWSTR pszConnectoidName, LPCWSTR pszUserName, LPCWSTR pszPassword); //BOOL LclSetEntryScriptPatch(LPCWSTR lpszScript, LPCWSTR lpszEntry); DWORD MakeConnectoid( HWND hwndParent, DWORD dwfOptions, LPCWSTR lpszPhonebook, LPCWSTR lpszEntryName, LPRASENTRY lpRasEntry, LPCWSTR lpszUsername, LPCWSTR lpszPassword, LPBOOL lpfNeedsRestart, LPBYTE lpDeviceInfo = 0, LPDWORD lpdwDeviceInfoSize = 0); HINSTANCE m_hInst; HINSTANCE m_hInst2; PFNRASENUMDEVICES m_fnRasEnumDeviecs; PFNRASVALIDATEENTRYNAE m_fnRasValidateEntryName; PFNRASSETENTRYPROPERTIES m_fnRasSetEntryProperties; PFNRASGETENTRYPROPERTIES m_fnRasGetEntryProperties; PFNRASDELETEENTRY m_fnRasDeleteEntry; PFNRASHANGUP m_fnRasHangUp; PFNRASENUMCONNECTIONS m_fnRasEnumConnections; PFNRASDIAL m_fnRasDial; PFNRASGETENTRYDIALPARAMS m_fnRasGetEntryDialParams; PFNRASGETCONNECTSTATUS m_fnRasGetConnectStatus; PFNRASGETCOUNTRYINFO m_fnRasGetCountryInfo; PFNRASSETENTRYDIALPARAMS m_fnRasSetEntryDialParams; CEnumModem *m_pEnumModem; BOOL m_bUseAutoProxyforConnectoid; }; #endif