簡體   English   中英

如何利用javascript xpcom組件中的c ++ xpcom組件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM