#ifndef _RASHELP_H_ #define _RASHELP_H_ #include #include BOOL RasIsInstalled(); //----- RAS function prototypes ----- // NOTE: (andrewgu) W versions of RAS apis are not implemented on Win9x platforms. // used by CloseRasConnections() in the branding dll typedef DWORD (WINAPI* RASENUMCONNECTIONSA)(LPRASCONNA, LPDWORD, LPDWORD); typedef DWORD (WINAPI* RASHANGUPA)(HRASCONN); typedef DWORD (WINAPI* RASGETCONNECTSTATUSA)(HRASCONN, LPRASCONNSTATUSA); // used by ProcessConnectionSettingsDeletion() in the branding dll typedef DWORD (WINAPI* RASENUMENTRIESA)(LPCSTR, LPCSTR, LPRASENTRYNAMEA, LPDWORD, LPDWORD); typedef DWORD (WINAPI* RASENUMENTRIESW)(LPCWSTR, LPCWSTR, LPRASENTRYNAMEW, LPDWORD, LPDWORD); typedef DWORD (WINAPI* RASDELETEENTRYA)(LPCSTR, LPCSTR); typedef DWORD (WINAPI* RASDELETEENTRYW)(LPCWSTR, LPCWSTR); // used by ProcessConnectionSettings() and lcy50_ProcessConnectionSettings() in the branding dll typedef DWORD (WINAPI* RASENUMDEVICESA)(LPRASDEVINFOA, LPDWORD, LPDWORD); typedef DWORD (WINAPI* RASENUMDEVICESW)(LPRASDEVINFOW, LPDWORD, LPDWORD); // used by ImportConnectSet() in the engine dll typedef DWORD (WINAPI* RASGETENTRYPROPERTIESA)(LPCSTR, LPCSTR, LPRASENTRYA, LPDWORD, LPBYTE, LPDWORD); typedef DWORD (WINAPI* RASGETENTRYPROPERTIESW)(LPCWSTR, LPCWSTR, LPRASENTRYW, LPDWORD, LPBYTE, LPDWORD); // used by ImportConnectSet() in the engine dll typedef DWORD (WINAPI* RASGETENTRYDIALPARAMSA)(LPCSTR, LPRASDIALPARAMSA, LPBOOL); typedef DWORD (WINAPI* RASGETENTRYDIALPARAMSW)(LPCWSTR, LPRASDIALPARAMSW, LPBOOL); // used by lcy50_ProcessConnectionSettings() and importRasSettings() in the branding dll typedef DWORD (WINAPI* RASSETENTRYPROPERTIESA)(LPCSTR, LPCSTR, LPRASENTRYA, DWORD, LPBYTE, DWORD); typedef DWORD (WINAPI* RASSETENTRYPROPERTIESW)(LPCWSTR, LPCWSTR, LPRASENTRYW, DWORD, LPBYTE, DWORD); // used by importRasCredentialsSettings() in the branding dll typedef DWORD (WINAPI* RASSETENTRYDIALPARAMSA)(LPCSTR, LPRASDIALPARAMSA, BOOL); typedef DWORD (WINAPI* RASSETENTRYDIALPARAMSW)(LPCWSTR, LPRASDIALPARAMSW, BOOL); //----- Global RAS function pointers ----- extern RASENUMCONNECTIONSA g_pfnRasEnumConnectionsA; extern RASHANGUPA g_pfnRasHangupA; extern RASGETCONNECTSTATUSA g_pfnRasGetConnectStatusA; extern RASENUMENTRIESA g_pfnRasEnumEntriesA; extern RASENUMENTRIESW g_pfnRasEnumEntriesW; extern RASDELETEENTRYA g_pfnRasDeleteEntryA; extern RASDELETEENTRYW g_pfnRasDeleteEntryW; extern RASENUMDEVICESA g_pfnRasEnumDevicesA; extern RASENUMDEVICESW g_pfnRasEnumDevicesW; extern RASGETENTRYPROPERTIESA g_pfnRasGetEntryPropertiesA; extern RASGETENTRYPROPERTIESW g_pfnRasGetEntryPropertiesW; extern RASGETENTRYDIALPARAMSA g_pfnRasGetEntryDialParamsA; extern RASGETENTRYDIALPARAMSW g_pfnRasGetEntryDialParamsW; extern RASSETENTRYPROPERTIESA g_pfnRasSetEntryPropertiesA; extern RASSETENTRYPROPERTIESW g_pfnRasSetEntryPropertiesW; extern RASSETENTRYDIALPARAMSA g_pfnRasSetEntryDialParamsA; extern RASSETENTRYDIALPARAMSW g_pfnRasSetEntryDialParamsW; //----- RasPrepareApis ----- #define RPA_UNLOAD 0x00000000 #define RPA_RASENUMCONNECTIONSA 0x00000001 #define RPA_RASHANGUPA 0x00000002 #define RPA_RASGETCONNECTSTATUSA 0x00000004 #define RPA_RASENUMENTRIESA 0x00000008 #define RPA_RASENUMENTRIESW 0x00000010 #define RPA_RASDELETEENTRYA 0x00000020 #define RPA_RASDELETEENTRYW 0x00000040 #define RPA_RASENUMDEVICESA 0x00000080 #define RPA_RASENUMDEVICESW 0x00000100 #define RPA_RASGETENTRYPROPERTIESA 0x00000200 #define RPA_RASGETENTRYPROPERTIESW 0x00000400 #define RPA_RASGETENTRYDIALPARAMSA 0x00000800 #define RPA_RASGETENTRYDIALPARAMSW 0x00001000 #define RPA_RASSETENTRYPROPERTIESA 0x00002000 #define RPA_RASSETENTRYPROPERTIESW 0x00004000 #define RPA_RASSETENTRYDIALPARAMSA 0x00008000 #define RPA_RASSETENTRYDIALPARAMSW 0x00010000 BOOL RasPrepareApis(DWORD dwApiFlags, BOOL fLoad = TRUE); //----- Wrappers and miscellaneous helpers ----- // RWM stands for Ras Wrappers Mode #define RWM_FORCE_A 0x00000001 #define RWM_FORCE_W 0x00000002 #define RWM_RUNTIME 0x00000004 typedef BOOL (*RASENUMPROCA)(PCSTR pszNameA, LPARAM lParam); typedef BOOL (*RASENUMPROCW)(PCWSTR pszNameW, LPARAM lParam); BOOL RasEnumEntriesCallback(PCTSTR pszPhonebook, PVOID pfnEnumAorW, LPARAM lParam, DWORD dwMode = RWM_RUNTIME); DWORD RasEnumConnectionsExA(LPRASCONNA *pprcA, PDWORD pcbBuffer, PDWORD pcEntries); DWORD RasEnumEntriesExA(PCSTR pszPhonebookA, LPRASENTRYNAMEA *pprenA, PDWORD pcbBuffer, PDWORD pcEntries); DWORD RasEnumEntriesExW(PCWSTR pszPhonebookW, LPRASENTRYNAMEW *pprenW, PDWORD pcbBuffer, PDWORD pcEntries, DWORD dwMode = RWM_RUNTIME); DWORD RasEnumDevicesExA(LPRASDEVINFOA *pprdiA, PDWORD pcbBuffer, PDWORD pcEntries); DWORD RasEnumDevicesExW(LPRASDEVINFOW *pprdiW, PDWORD pcbBuffer, PDWORD pcEntries, DWORD dwMode = RWM_RUNTIME); DWORD RasGetEntryPropertiesExA(PCSTR pszNameA, LPRASENTRYA *ppreA, PDWORD pcbRasEntry); DWORD RasGetEntryPropertiesExW(PCWSTR pszNameW, LPRASENTRYW *ppreW, PDWORD pcbRasEntry, DWORD dwMode = RWM_RUNTIME); DWORD RasEnumEntriesWrap(PCWSTR pszPhonebookW, LPRASENTRYNAMEW prenW, PDWORD pcbBuffer, PDWORD pcEntries, DWORD dwMode = RWM_RUNTIME); DWORD RasEnumDevicesWrap(LPRASDEVINFOW prdiW, PDWORD pcbBuffer, PDWORD pcEntries, DWORD dwMode = RWM_RUNTIME); DWORD RasGetEntryPropertiesWrap(PCWSTR pszNameW, LPRASENTRYW preW, PDWORD pcbRasEntry, DWORD dwMode = RWM_RUNTIME); DWORD RasGetEntryDialParamsWrap(LPRASDIALPARAMSW prdpW, PBOOL pfPassword, DWORD dwMode = RWM_RUNTIME); DWORD RasSetEntryPropertiesWrap(PCWSTR pszPhonebookW, PCWSTR pszNameW, LPRASENTRYW preW, DWORD cbRasEntry, DWORD dwMode = RWM_RUNTIME); DWORD RasSetEntryDialParamsWrap(PCWSTR pszPhonebookW, LPRASDIALPARAMSW prdpW, BOOL fRemovePassword, DWORD dwMode = RWM_RUNTIME); #endif