|
|
/*
File : ASTRA_RAS.h
*/ #include <ATK_RAS.h>
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); }
|