0

I have developed a xpcom component using c++. I have GetHWND() method in my component. I have also developed another xpcom component using javascript. I want to make use of GetHWND function in javascript xpcom component. I am using following code to do so.

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);

But it is giving error as "ReferenceError: netscape is not defined". I did google search but did not find the solution to it.

I am using Mozilla Firefox and I want it to get worked for the same.

Please help me to come out of this problem. Thanks in advance.

4

2 回答 2

1

你不需要这些:

netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
于 2010-02-05T12:14:35.003 回答
0

我同意 Nickolay 的观点,当你的扩展代码被执行时,它有 chrome 权限,它允许你访问 XPCOM 层和组件。

我想看看它是否能与 Nikolay 提到的线条一起工作。第二项>>如何定义 C++ 组件的接口。XPIDL 不知道 HWND 类型,因此您必须提供一些不同的类型,或者您可以使用本机类型,但 [scriptable] 接口不支持

于 2010-04-01T08:08:03.803 回答