/* File : ASTRA_RAS.h */ #include static int siRasDllLoaded = RAS_DLL_NOT_LOADED ; static HINSTANCE hRasDllInst=NULL; static RASGETENTRYPROPERTIES pRasGetEntryProperties; static RASSETENTRYPROPERTIES pRasSetEntryProperties; static RASDELETEENTRY pRasDelEntry; static RASGETERRORSTRING pRasGetErrorString; static RASDIAL pRasDial; static RASHANGUP pRasHangup; static RASENUMDEVICES pRasEnumDevices; static RASENUMCONNECTIONS pRasEnumConnections; static RASGETCOUNTRYINFO pRasGetCountryInfo; static RASGETCOUNTRYINFO pRasGetCountryInfoA; static RASGETCONNECTIONSTATUS pRasGetConnectionStatus; int ATK_IsRasDllOk() { if(siRasDllLoaded == RAS_DLL_NOT_LOADED ) { hRasDllInst = LoadLibrary(_T("RASAPI32.DLL")); if(hRasDllInst == NULL) { siRasDllLoaded = ERROR_LOADING_RAS_DLL; }else { // // // Get All Function Pointers; #ifdef _UNICODE pRasGetEntryProperties = (RASGETENTRYPROPERTIES) GetProcAddress(hRasDllInst, "RasGetEntryPropertiesW"); #else pRasGetEntryProperties = (RASGETENTRYPROPERTIES) GetProcAddress(hRasDllInst, "RasGetEntryPropertiesA"); #endif #ifdef _UNICODE pRasSetEntryProperties= (RASSETENTRYPROPERTIES) GetProcAddress(hRasDllInst, "RasSetEntryPropertiesW"); #else pRasSetEntryProperties= (RASSETENTRYPROPERTIES) GetProcAddress(hRasDllInst, "RasSetEntryPropertiesA"); #endif #ifdef _UNICODE pRasDelEntry = (RASDELETEENTRY) GetProcAddress(hRasDllInst, "RasDeleteEntryW"); #else pRasDelEntry = (RASDELETEENTRY) GetProcAddress(hRasDllInst, "RasDeleteEntryA"); #endif #ifdef _UNICODE pRasGetErrorString = (RASGETERRORSTRING) GetProcAddress(hRasDllInst, "RasGetErrorStringW"); #else pRasGetErrorString = (RASGETERRORSTRING) GetProcAddress(hRasDllInst, "RasGetErrorStringA"); #endif #ifdef _UNICODE pRasDial = (RASDIAL) GetProcAddress(hRasDllInst, "RasDialW"); #else pRasDial = (RASDIAL) GetProcAddress(hRasDllInst, "RasDialA"); #endif #ifdef _UNICODE pRasHangup = (RASHANGUP) GetProcAddress(hRasDllInst, "RasHangUpW"); #else pRasHangup = (RASHANGUP) GetProcAddress(hRasDllInst, "RasHangUpA"); #endif #ifdef _UNICODE pRasEnumDevices = (RASENUMDEVICES ) GetProcAddress(hRasDllInst, "RasEnumDevicesW"); #else pRasEnumDevices = (RASENUMDEVICES ) GetProcAddress(hRasDllInst, "RasEnumDevicesA"); #endif #ifdef _UNICODE pRasEnumConnections = (RASENUMCONNECTIONS) GetProcAddress(hRasDllInst, "RasEnumConnectionsW"); #else pRasEnumConnections = (RASENUMCONNECTIONS) GetProcAddress(hRasDllInst, "RasEnumConnectionsA"); #endif #ifdef _UNICODE pRasGetCountryInfo = (RASGETCOUNTRYINFO) GetProcAddress(hRasDllInst, "RasGetCountryInfoW"); #else pRasGetCountryInfo = (RASGETCOUNTRYINFO) GetProcAddress(hRasDllInst, "RasGetCountryInfoA"); #endif pRasGetCountryInfoA = (RASGETCOUNTRYINFO) GetProcAddress(hRasDllInst, "RasGetCountryInfoA"); #ifdef _UNICODE pRasGetConnectionStatus = (RASGETCONNECTIONSTATUS) GetProcAddress(hRasDllInst, "RasGetConnectionStatusW"); #else pRasGetConnectionStatus = (RASGETCONNECTIONSTATUS) GetProcAddress(hRasDllInst, "RasGetConnectionStatusA"); #endif siRasDllLoaded = RAS_DLL_LOADED; } } return siRasDllLoaded; } DWORD ATK_RasGetEntryProperties( LPTSTR lpszPhonebook, LPTSTR lpszEntry, LPRASENTRY lpRasEntry, LPDWORD lpdwEntryInfoSize, LPBYTE lpbDeviceInfo, LPDWORD lpdwDeviceInfoSize ) { return (*pRasGetEntryProperties) ( lpszPhonebook, lpszEntry, lpRasEntry, lpdwEntryInfoSize, lpbDeviceInfo, lpdwDeviceInfoSize); } DWORD ATK_RasSetEntryProperties( LPTSTR lpszPhonebook, LPTSTR lpszEntry, LPRASENTRY lpRasEntry, DWORD dwEntryInfoSize, LPBYTE lpbDeviceInfo, DWORD dwDeviceInfoSize ) { return (*pRasSetEntryProperties) ( lpszPhonebook, lpszEntry, lpRasEntry, dwEntryInfoSize, lpbDeviceInfo, dwDeviceInfoSize); } DWORD ATK_RasDeleteEntry( LPTSTR lpszPhonebook, LPTSTR lpszEntry) { return (*pRasDelEntry)(lpszPhonebook,lpszEntry); } DWORD ATK_RasGetErrorString( UINT uErrorValue, LPTSTR lpszErrorString, DWORD cBufSize ) { return (*pRasGetErrorString)(uErrorValue,lpszErrorString,cBufSize); } DWORD ATK_RasHangUp( HRASCONN hrasconn ) { return (*pRasHangup)(hrasconn); } DWORD ATK_RasDial( LPRASDIALEXTENSIONS lpRasDial, LPTSTR lpPhBk, LPRASDIALPARAMS lpDialParam, DWORD dwNotifyType, LPVOID lpNotifier, LPHRASCONN lphRasConn) { return (*pRasDial) ( lpRasDial, lpPhBk, lpDialParam, dwNotifyType, lpNotifier, lphRasConn); } DWORD ATK_RasEnumDevices( LPRASDEVINFO lpRasDevInfo, LPDWORD lpcb, LPDWORD lpcDevices) { return (*pRasEnumDevices)(lpRasDevInfo, lpcb, lpcDevices); } DWORD ATK_RasEnumConnections ( LPRASCONN lprasconn, LPDWORD lpcb, LPDWORD lpcConnections) { return (*pRasEnumConnections) (lprasconn,lpcb, lpcConnections); } #define MAX_ACTIVE_RAS_CONNECTION 5 /* Returns +VE value if there is an active connection */ int IsDialupConnectionActive() { RASCONN RasConn[MAX_ACTIVE_RAS_CONNECTION]; DWORD dwSizeConn,dwConnections,dwRet; int iCount; dwConnections = 0; for(iCount=0;iCount < MAX_ACTIVE_RAS_CONNECTION ;iCount++) { RasConn[iCount].dwSize= sizeof(RASCONN); } dwSizeConn = sizeof(RASCONN) * MAX_ACTIVE_RAS_CONNECTION; dwRet = ATK_RasEnumConnections ( RasConn, &dwSizeConn, &dwConnections); switch(dwRet) { case ERROR_BUFFER_TOO_SMALL : ; //cout << "\n Buffer Too Small "<< flush; case ERROR_NOT_ENOUGH_MEMORY : ; //cout << "\n Not enough memory "<< flush; default : break; } if(dwConnections) { return ((int)dwConnections); }else { return 0; } } DWORD ATK_RasGetCountryInfo( LPRASCTRYINFO lpRasCtryInfo, LPDWORD lpdwSize ) { return (*pRasGetCountryInfo) (lpRasCtryInfo,lpdwSize); } DWORD ATK_RasGetCountryInfoA( LPRASCTRYINFO lpRasCtryInfo, LPDWORD lpdwSize ) { return (*pRasGetCountryInfoA) (lpRasCtryInfo,lpdwSize); } DWORD ATK_RasGetConnectionStatus( HRASCONN hrasconn,LPRASCONNSTATUS lprasconnstatus ) { return (*pRasGetConnectionStatus) (hrasconn,lprasconnstatus); }