2008-10-29 135 views
0

我即将开始一个项目,该项目需要Firefox插件才能发出对客户端Windows计算机上安装的COM DLL的调用,并且我很难估计此承诺的复杂性。从Firefox插件调用COM对象

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

有没有人做过类似的事情?

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

有没有插件或示例代码的地方做了这样的事情(谷歌出现了一些有用的结果)?

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

回答

2

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

2

您可能会感兴趣IE Tab extension,它是开源的。我没有看,但我想它确实访问使用IE的显示器。

0

如果你这样做,你几乎肯定会需要使用XPCOM。看看Shanti Rao的JSDB,它支持Javascript中的COM/ActiveX。 ActiveX的东西在一个名为wrap_com.cpp的文件中。它支持大多数IDispatch接口; IDispatch的Invoke方法是使这项工作的神奇。

这是多么复杂取决于你希望这是来自“简单”的Javascript。如果你实现了一个名为IDispatchObject的XPCOM事物,那么你必须传入一个参数数组&的名字,那么它可能不会太难。如果你想创建一个通用的方法来动态绑定COM对象&直接引用它们,那就更难了...不确定在JSDB中使用的技术是否会继承到XPCOM。