从Firefox插件调用COM对象

时间:2008-10-29 15:03:19

标签: firefox com

我即将开展一个项目,该项目需要一个Firefox插件才能向客户端Windows机器上安装的COM dll发出调用,我很难估计这项任务的复杂性。

我对COM有很多经验,所以我并不害怕它。我对Firefox插件的经验较少,但我认为这不是我的问题所在。

有人做过这样的事吗?

Firefox是否允许其插件与外界自由通信?

是否有某个插件或示例代码可以执行此类操作(Google提供的结果很少)?

更新:当然,我更喜欢不需要在C ++中构建扩展的解决方案,如果可能的话。

3 个答案:

答案 0 :(得分:2)

在C ++中创建一个XPCOM,像往常一样与COM对象通信。然后,XPCOM扩展可以用于Javascript以完成扩展的其余部分(主要是GUI,我猜)。但是,这就是我对它的理解: - )

答案 1 :(得分:2)

您可能会对IE Tab扩展感兴趣,这是一个开源的扩展程序。我没有看,但我猜它可以使用IE的显示器。

答案 2 :(得分:0)

如果你这样做,你几乎肯定需要使用XPCOM。看看Shanti Rao的JSDB,它支持Javascript中的COM / ActiveX。 ActiveX内容位于名为wrap_com.cpp的文件中。它支持大多数IDispatch接口; IDispatch的Invoke方法是让它发挥作用的神奇之处。

这有多复杂取决于您希望Javascript的“简单”程度。如果你实现了一个名为IDispatchObject的XPCOM,你必须传递方法和名称的名称。一系列参数,那可能不是太难。如果要创建一个通用方法来对COM对象进行动态绑定。直接引用它们,那就更难了......不确定JSDB中使用的技术是否会转移到XPCOM。