TYPE_E_LIBNOTREGISTERED(库未注册)同时调用未注册的ActiveX控件的Invoke()?

时间:2012-11-27 09:56:04

标签: activex invoke

代码如下。如何避免TYPE_E_LIBNOTREGISTERED(hr=0x8002801D, Library not registered) error(DO NOT register the ActiveX to Windows)的{​​{1}}? 注册ActiveX控件时,一切正常,但我不想注册到WINDOWS 谢谢!

disp->Invoke()

1 个答案:

答案 0 :(得分:0)

致Hans Passant: 非常感谢。英语不是我的母语,但在你详细的答案下,我有完美的解决方案来解决这个问题,这是我对stackoverflow的第一个问题,再次感谢。正如你所说,我的解决方案如下:

//ITypeInfo *m_ti = NULL;
//pCF->CreateInstance(...);

ITypeLib *tl = NULL;
if (SUCCEEDED(LoadTypeLib(wsOcxFile, &tl)))
{
    if (SUCCEEDED(tl->GetTypeInfoOfGuid(guid, &m_ti)))
    {
        hr = m_ti->Invoke(disp,
            dispid, wFlags, &m_dispParams,
            pvResult, &ei, &nArgErr);

    }
    tl->Release();
}

//m_ti->Release();