📄 resdataprovidermodule.cpp
字号:
// ResDataProvIDerModule.cpp: implementation of the CResDataProvIDerModuleclass.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "resExplorer.h"
#include "ResDataProvIDerModule.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// 构造函数/析构函数
//////////////////////////////////////////////////////////////////////
CResDataProvIDerModule::CResDataProvIDerModule(CString strName):TDllModule((LPCTSTR)strName)
{
initAll();
}
CResDataProvIDerModule::CResDataProvIDerModule():TDllModule()
{
initAll();
}
CResDataProvIDerModule::~CResDataProvIDerModule()
{
}
//返回资源库名称的函数的包装函数
CString CResDataProvIDerModule::GetLibName()
{
ASSERT(fnGetLibName!= NULL);
if (fnGetLibName)
return fnGetLibName();
return "";
}
//返回资源库标识号的函数的包装函数
CString CResDataProvIDerModule::GetLibID()
{
ASSERT(fnGetLibID!= NULL);
if (fnGetLibID)
return fnGetLibID();
return "";
}
//返回资源库与ID相关的目录中的文件XML数据包的函数的包装函数
MSXML::IXMLDOMElement * CResDataProvIDerModule::GetChildrenList(CString ID)
{
ASSERT(fnGetChildrenList!= NULL);
if (fnGetChildrenList)
return fnGetChildrenList(ID);
return FALSE;
}
//返回资源库与ID相关的目录中的子目录XML数据包的函数的包装函数
MSXML::IXMLDOMElement * CResDataProvIDerModule::GetChildren(CString ID)
{
ASSERT(fnGetChildren!= NULL);
if (fnGetChildren)
return fnGetChildren(ID);
return FALSE;
}
//返回资源库中与ID相关的资源的路径的函数的包装函数
CString CResDataProvIDerModule::GetFilePathByID(CString ID)
{
ASSERT(fnGetFilePathByID!= NULL);
if (fnGetFilePathByID)
return fnGetFilePathByID(ID);
return "";
}
//初始化接口函数
voID CResDataProvIDerModule::initAll()
{
fnGetFilePathByID=NULL;
fnGetLibID=NULL;
fnGetLibName=NULL;
fnGetChildren=NULL;
fnGetChildrenList=NULL;
}
BOOL CResDataProvIDerModule::Create(voID)
{
if (TDllModule::Create()) {
// 当中间层正确地加载后,执行以下初始化函数
fnGetFilePathByID=(FNGetFilePathByID)::GetProcAddress(m_hHandle,_T("GetFilePathByID"));
fnGetLibID=(FNGetLibID)::GetProcAddress(m_hHandle,_T("GetLibID"));
fnGetLibName=(FNGetLibName)::GetProcAddress(m_hHandle,_T("GetLibName"));
fnGetChildren=(FNGetChildren)::GetProcAddress(m_hHandle,_T("GetChildren"));
fnGetChildrenList=(FNGetChildrenList)::GetProcAddress(m_hHandle,_T("GetChildrenList"));
// 如果必要,可以进一步检查接口函数指针是否为NULL
return TRUE;
}
return FALSE;
}
BOOL CResDataProvIDerModule::Create(LPCTSTR szName)
{
if (TDllModule::Create(szName)) {
// 当中间层正确地加载后,执行以下初始化函数.
fnGetFilePathByID=(FNGetFilePathByID)::GetProcAddress(m_hHandle,_T("GetFilePathByID"));
fnGetLibID=(FNGetLibID)::GetProcAddress(m_hHandle,_T("GetLibID"));
fnGetLibName=(FNGetLibName)::GetProcAddress(m_hHandle,_T("GetLibName"));
fnGetChildren=(FNGetChildren)::GetProcAddress(m_hHandle,_T("GetChildren"));
fnGetChildrenList=(FNGetChildrenList)::GetProcAddress(m_hHandle,_T("GetChildrenList"));
// 如果必要,可以进一步检查接口函数指针是否为NULL
return TRUE;
}
return FALSE;
}
voID CResDataProvIDerModule::Destroy(voID)
{
//卸载中间层
TDllModule::Destroy();
initAll();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -