随笔 - 74, 文章 - 0, 评论 - 26, 引用 - 0
数据加载中……

(转)手工注册com

BOOL regcom(LPCWSTR strLib)
{
    //for registration
    HMODULE hLib = ::LoadLibrary(strLib);
    if(hLib == 0) {
        return FALSE;
    }
    HRESULT (STDAPICALLTYPE *pDllRegisterServer)();
    (FARPROC&)pDllRegisterServer = ::GetProcAddress(hLib, _T("DllRegisterServer"));
    if(pDllRegisterServer == NULL) {  
        ::FreeLibrary(hLib);
        return FALSE;
    }
    if(FAILED(pDllRegisterServer ())) {
        ::FreeLibrary(hLib);
        return FALSE;
    } else {
        ::FreeLibrary(hLib);
        return TRUE;
    }
}

BOOL unregcom(LPCWSTR strLib)
{
    HMODULE hLib = ::LoadLibrary(strLib);
    if(hLib == 0) {
        return FALSE;
    }
    HRESULT (STDAPICALLTYPE *pDllUnregisterServer)();
    (FARPROC&)pDllUnregisterServer = ::GetProcAddress(hLib, _T("DllUnregisterServer"));
    if(pDllUnregisterServer == NULL) {
        ::FreeLibrary(hLib);
        return FALSE;
    }
    if(FAILED(pDllUnregisterServer())) {
        ::FreeLibrary(hLib);
        return FALSE;
    } else {
        ::FreeLibrary(hLib);
        return TRUE;
    }
}


posted on 2007-11-20 08:48 井泉 阅读(190) 评论(0)  编辑 收藏 引用 所属分类: C++


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理