BOOL DllRegister(LPCTSTR lpszDllName)
{
	ASSERT(lpszDllName != NULL);
	ASSERT(AfxIsValidString(lpszDllName));

	//加载ActiveX控件
	HINSTANCE hLib = LoadLibrary(lpszDllName);
	if (hLib == NULL)
	{
		TRACE(_T("%s加载失败\n"), lpszDllName);
		return FALSE;
	}

	//获得注册函数DllRegisterServer地址
	FARPROC lpDllEntryPoint; 
	lpDllEntryPoint = GetProcAddress(hLib, _T("DllRegisterServer"));

	//调用注册函数DllRegisterServer
	if (lpDllEntryPoint != NULL)
	{
		if (FAILED((*lpDllEntryPoint)()))
		{
			TRACE(_T("调用DllRegisterServer失败\n"));
            FreeLibrary(hLib);
            return FALSE;
		}
		else
		{
			FreeLibrary(hLib);
			return TRUE;
		}
	}
	else
	{
		TRACE(_T("调用DllRegisterServer失败\n"));
		FreeLibrary(hLib);
		return FALSE;
	}
}
posted on 2011-04-02 16:13  °ι 、曲 终  阅读(540)  评论(0编辑  收藏  举报