bool RegisterModule(CString modulePathName, bool bReg)
{
if(modulePathName.IsEmpty())
return false;
//装载要注册的模块
//HINSTANCE hLib = LoadLibrary(modulePathName);
HINSTANCE hLib = LoadLibraryEx(modulePathName, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
if(hLib < (HINSTANCE)HINSTANCE_ERROR)
return false;
//获取注册函数DllRegisterServer地址
FARPROC lpDllEntryPoint;
if(!bReg)
lpDllEntryPoint = GetProcAddress(hLib, "DllUnregisterServer");
else
lpDllEntryPoint = GetProcAddress(hLib, "DllRegisterServer");
//调用注册函数DllRegisterServer
if(lpDllEntryPoint == NULL)
{
FreeLibrary(hLib);
return false;
}
if(FAILED((*lpDllEntryPoint)()))
{
FreeLibrary(hLib);
return false;
}
FreeLibrary(hLib);
return true;
}