[英]How to make use of c++ xpcom component from javascript xpcom component
我已经使用c ++开发了xpcom组件。 我的组件中有GetHWND()方法。 我还使用JavaScript开发了另一个xpcom组件。 我想利用javascript xpcom组件中的GetHWND函数。 我正在使用以下代码来做到这一点。
netscape.security.PrivilegeManager.enablePrivilege(“ UniversalBrowserRead”);
netscape.security.PrivilegeManager.enablePrivilege(“ UniversalXPConnect”);
var myComponent = Components.classes ['@ dougt / WebLock']。createInstance(Components.interfaces.IWebLock);
myComponent = myComponent.QueryInterface(Components.interfaces.IWebLock);
var res = myComponent.GetHWND(mainWindow.content.document);
但是它给出错误为“ ReferenceError:未定义netscape”。 我做了谷歌搜索,但没有找到解决方案。
我正在使用Mozilla Firefox,但我希望它也能正常工作。
请帮助我解决这个问题。 提前致谢。
您不需要这些:
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
我同意Nickolay的观点,当您执行扩展代码时,它具有chrome特权,该特权使您可以访问XPCOM层和组件。
我想看看它是否可以与Nikolay提到的方法一起使用。 第二项>>如何定义C ++组件的接口。 XPIDL不知道HWND类型,因此您必须提供一些其他类型,或者可以使用本机类型,但[可脚本化]接口不支持该类型
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.