Sha256: 80437fec4680d07ad61727e298fccb029469708e2fbc9faa886282346f03c60d

Contents?: true

Size: 1.8 KB

Versions: 28

Compression:

Stored size: 1.8 KB

Contents

#include "RcmLoader.h"

CRcmLoader::CRcmLoader()
{
	m_hRcmDLL						= NULL;			
	lpfn_RCM_Open					= NULL;		
	lpfn_RCM_GetSmartBatteryStatus	= NULL;
	lpfn_RCM_RegisterTriggerEvent	= NULL;
	lpfn_RCM_DeregisterTrigger		= NULL;
	lpfn_RCM_GetTriggerStatus		= NULL;
	lpfn_RCM_GetUniqueUnitIdEx		= NULL;
}

CRcmLoader::~CRcmLoader()
{
	UnloadRcmDLL();
}

//  Loading RCM DLL dynamically
BOOL CRcmLoader::LoadRcmDLL()
{
	m_hRcmDLL = LoadLibrary(RCM_DLL);
	if (!m_hRcmDLL)
	{
		return FALSE;
	}
	//  Map the function pointers to functions exported from the DLL
	lpfn_RCM_Open = (LPFN_RCM_OPEN_T)GetProcAddress
		(m_hRcmDLL, L"RCM_Open");
	lpfn_RCM_GetSmartBatteryStatus = (LPFN_RCM_GETSMARTBATTERYSTATUS_T)GetProcAddress
		(m_hRcmDLL, L"RCM_GetSmartBatteryStatus");
	lpfn_RCM_RegisterTriggerEvent = (LPFN_RCM_REGISTERTRIGGEREVENT_T)GetProcAddress
		(m_hRcmDLL, L"RCM_RegisterTriggerEvent");
	lpfn_RCM_DeregisterTrigger = (LPFN_RCM_DEREGISTERTRIGGER_T)GetProcAddress
		(m_hRcmDLL, L"RCM_DeregisterTrigger");
	lpfn_RCM_GetTriggerStatus = (LPFN_RCM_GETTRIGGERSTATUS_T)GetProcAddress
		(m_hRcmDLL, L"RCM_GetTriggerStatus");
	lpfn_RCM_GetUniqueUnitIdEx = (LPFN_RCM_GETUNIQUEUNITIDEX_T)GetProcAddress
		(m_hRcmDLL, L"RCM_GetUniqueUnitIdEx");

	if (lpfn_RCM_Open					== NULL ||
		lpfn_RCM_GetSmartBatteryStatus	== NULL ||
		lpfn_RCM_RegisterTriggerEvent	== NULL ||
		lpfn_RCM_DeregisterTrigger		== NULL ||
		lpfn_RCM_GetTriggerStatus		== NULL ||
		lpfn_RCM_GetUniqueUnitIdEx		== NULL)
	{
		m_hRcmDLL = NULL;
		return FALSE;
	}
	else
		return TRUE;
}

BOOL CRcmLoader::UnloadRcmDLL()
{
	if (m_hRcmDLL)
	{
		FreeLibrary(m_hRcmDLL);
		m_hRcmDLL						= NULL;
		lpfn_RCM_Open					= NULL;
		lpfn_RCM_GetSmartBatteryStatus	= NULL;
		lpfn_RCM_RegisterTriggerEvent	= NULL;
		lpfn_RCM_DeregisterTrigger		= NULL;
		lpfn_RCM_GetTriggerStatus		= NULL;
	}
	return TRUE;
}

Version data entries

28 entries across 14 versions & 1 rubygems

Version Path
rhodes-7.6.0 lib/commonAPI/hardwarekeys/ext/platform/wm/src/RCMLoader.cpp
rhodes-7.6.0 neon/Helium/HeliumForWindows/Implementation/Common/Private/RCMLoader.cpp
rhodes-7.5.1 neon/Helium/HeliumForWindows/Implementation/Common/Private/RCMLoader.cpp
rhodes-7.5.1 lib/commonAPI/hardwarekeys/ext/platform/wm/src/RCMLoader.cpp
rhodes-7.4.1 neon/Helium/HeliumForWindows/Implementation/Common/Private/RCMLoader.cpp
rhodes-7.4.1 lib/commonAPI/hardwarekeys/ext/platform/wm/src/RCMLoader.cpp
rhodes-7.1.17 neon/Helium/HeliumForWindows/Implementation/Common/Private/RCMLoader.cpp
rhodes-7.1.17 lib/commonAPI/hardwarekeys/ext/platform/wm/src/RCMLoader.cpp
rhodes-6.2.0 lib/commonAPI/hardwarekeys/ext/platform/wm/src/RCMLoader.cpp
rhodes-6.2.0 neon/Helium/HeliumForWindows/Implementation/Common/Private/RCMLoader.cpp
rhodes-6.0.11 neon/Helium/HeliumForWindows/Implementation/Common/Private/RCMLoader.cpp
rhodes-6.0.11 lib/commonAPI/hardwarekeys/ext/platform/wm/src/RCMLoader.cpp
rhodes-5.5.18 lib/commonAPI/hardwarekeys/ext/platform/wm/src/RCMLoader.cpp
rhodes-5.5.18 neon/Helium/HeliumForWindows/Implementation/Common/Private/RCMLoader.cpp
rhodes-5.5.17 neon/Helium/HeliumForWindows/Implementation/Common/Private/RCMLoader.cpp
rhodes-5.5.17 lib/commonAPI/hardwarekeys/ext/platform/wm/src/RCMLoader.cpp
rhodes-5.5.15 lib/commonAPI/hardwarekeys/ext/platform/wm/src/RCMLoader.cpp
rhodes-5.5.15 neon/Helium/HeliumForWindows/Implementation/Common/Private/RCMLoader.cpp
rhodes-5.5.0.22 lib/commonAPI/hardwarekeys/ext/platform/wm/src/RCMLoader.cpp
rhodes-5.5.0.22 neon/Helium/HeliumForWindows/Implementation/Common/Private/RCMLoader.cpp