BOOL CDllAutRegDlg::RegistryDll(CString &szDllPath)
{
if (!(PathFileExists(szDllPath) && (!PathIsDirectory(szDllPath))))
{
CString showmsg;
showmsg.Format("注册%s 文件的时候,发生错误:该文件不存在!", szDllPath);
MessageBox(showmsg);
return FALSE;
}
LRESULT (CALLBACK* lpDllEntryPoint)();
HINSTANCE hLib = LoadLibrary(szDllPath);
if (hLib < (HINSTANCE)HINSTANCE_ERROR)
return FALSE;
(FARPROC&)lpDllEntryPoint = GetProcAddress(hLib, "DllRegisterServer");
BOOL bRet = FALSE;
if (lpDllEntryPoint != NULL)
{
HRESULT hr = (*lpDllEntryPoint)();
bRet = SUCCEEDED(hr);
if (FAILED(hr))
MessageBox("注册"+szDllPath+"文件的时候,发生错误!");
}
FreeLibrary(hLib);
return bRet;
}
BOOL CDllAutRegDlg::UnRegistryDll(CString &szDllPath)
{
if (!(PathFileExists(szDllPath) && (!PathIsDirectory(szDllPath))))
{
CString showmsg;
showmsg.Format("注册%s 文件的时候,发生错误:该文件不存在!", szDllPath);
MessageBox(showmsg);
return FALSE;
}
LRESULT (CALLBACK* lpDllEntryPoint)();
HINSTANCE hLib = LoadLibrary(szDllPath);
if (hLib < (HINSTANCE)HINSTANCE_ERROR)
return FALSE;
(FARPROC&)lpDllEntryPoint = GetProcAddress(hLib, "DllUnregisterServer");
BOOL bRet = FALSE;
if (lpDllEntryPoint != NULL)
{
HRESULT hr = (*lpDllEntryPoint)();
bRet = SUCCEEDED(hr);
if (FAILED(hr))
MessageBox("注册"+szDllPath+"文件的时候,发生错误!");
}
FreeLibrary(hLib);
return bRet;
}