我有一个在IE10下运行的ActiveX(AddOn)。它使用来自互联网和各种链接的指南创建。我尝试使用以下方法使EPM兼容:
https://msdn.microsoft.com/en-us/library/dn519894(v=vs.85).aspx
但是,当我尝试从这个AddOn中创建一个COM组件时,我得到的类没有注册。 我的COM组件是一个ActiveX dll,它创建为 INPROC_SERVER
我的 CLSIDFromProgID 调用成功,因此在这种情况下注册表访问没有问题。它引起了问题的CoCreateInstance。
hr = CLSIDFromProgID(L"myapp.mycontrol", &cls);
if(SUCCEEDED(hr))
{
hr = CoCreateInstance(cls, NULL, CLSCTX_INPROC_SERVER,
__uuidof(IMyControl), (void**) &m_pMyCtrl);
if(SUCCEEDED(hr))
{
...
}
else {
Log(hr);
}
}
有没有办法让它发挥作用?关于要寻找什么的任何指针?
更新1:进一步分析后,我发现IE正在进程监视器中寻找InprocHandler32。
为什么我们需要一个在进程中加载的ActiveX的InProcess Handler,我认为它只适用于Out of Process对象。
虽然仍然遇到同样的问题。
我试图在类似于ActiveX文档的特定MIME类型的链接上创建由IE加载的ActiveX,如MIME播放器
有没有办法找到阻塞的原因?即使我赢了,我也会收到此错误;请创建COM对象。