如何为Internet Explorer创建一个扩展作为Exe-Com服务器

How to create an extension for Internet Explorer as Exe Com server?

本文关键字:一个 扩展 Exe-Com 服务器 Internet Explorer 创建      更新时间:2023-10-16

我需要为Internet Explorer创建一个扩展,并且我需要它是EXE Com服务器。首先,我使用ATL向导创建了一个简单的COM DLL项目,它运行得很好,IE加载了我的扩展,并显示了我的消息框。接下来,我重复了所有这些步骤,但创建了COM EXE项目。我以同样的方式注册了它,Internet Explorer可以看到扩展,但它不起作用。我的函数IObjectWithSite::SetSite和IObjectWithSite::GetSite未被调用。你能告诉我如何解决这个问题吗?

您不能将进程外COM服务器注册为BHO,但您可以从BHO调用COM服务器。例如,您可以使用后期绑定:

CComDispatchDriver pServer;
if (SUCCEEDED(pServer.CoCreateInstance(CLSID_YourComServer)) {
    pServer.Invoke0(L"ServerMethodName");
}

确保您已为项目(使用YourServerPS.dll名称自动生成的项目)生成并注册代理存根dll。

相关文章: