我有一个IE浏览器栏(Band对象),它有很多UI和与服务器的通信,我想在C#(.NET)中实现。我还有一个BHO,它包含各种DOM操作和事件,我想在C ++中实现(使用ATL)。 什么是这两个组件之间进行通信的最佳方式。鉴于单个进程可以有多个(Explorer Bar和BHO 每个选项卡 ),配对必须以某种方式促进IE。
答案 0 :(得分:1)
您可以使用IE来方便连接,例如您可以调用IWebBrowser2 :: PutProperty来存储BHO的自动化界面并在浏览栏中检索它。
答案 1 :(得分:0)
您可以编写一个对象并在Running Object Table中注册它,然后从那里协调通信。
此时您可以使用任何形式的IPC http://msdn.microsoft.com/en-us/library/windows/desktop/aa365574(v=vs.85).aspx。
答案 2 :(得分:0)
我建议使用注册表。注册表可以处理大型有效负载,并且快速可靠,您有权访问它。如果您的进程具有权限并且您想要更快的吞吐量,我会说使用命名管道。但你的双手被捆绑为BHO。 (无论如何,我假设我还没有尝试在BHO流程中注册命名管道。)
“配对必须以某种方式促进IE。” IE不关心 - 让每个进程生成自己的GUID,然后创建一个以该GUID作为名称的注册表项。