Как использовать компонент c ++ xpcom из компонента javascript xpcom - PullRequest
0 голосов
/ 05 февраля 2010

Я разработал компонент xpcom, используя c ++. У меня есть метод GetHWND () в моем компоненте. Я также разработал еще один компонент xpcom с использованием JavaScript. Я хочу использовать функцию GetHWND в компоненте javascript xpcom. Я использую следующий код для этого.

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 не определен». Я сделал поиск в Google, но не нашел решения.

Я использую Mozilla Firefox, и я хочу, чтобы он работал для того же самого.

Пожалуйста, помогите мне выйти из этой проблемы. Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 05 февраля 2010

Вам не нужно это:

netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
0 голосов
/ 01 апреля 2010

Я согласен с Николаем, когда ваш код расширения имеет привилегии chrome, которые позволяют вам получать доступ к слою и компонентам XPCOM.

То, что я хотел бы видеть, будет ли это работать с линиями, упомянутыми Николаем. И второй пункт >> как определяется ваш интерфейс компонента C ++. XPIDL не знает о типе HWND, поэтому вы должны предоставить другой тип, или вы можете использовать собственный тип, но он не поддерживается интерфейсами [scriptable]

...