Полезная информация

Заказывай стафф с атрибутикой Mozilla и... пусть все вокруг завидуют тебе! Быть уникальным - быть с Mozilla!

Разработка » Нужна помощь в написании плагина. С++, минимум JS. » 20-03-2010 20:18:23

3 подряд сообщение пишу сам себе, наверняка кому-нибудь пригодится:
По исходникам из примера http://www.codeproject.com/KB/library/firefox_component.aspx?msg=2345250
Длл собирается с бубнами описание проблем тут http://forums.mozillazine.org/viewtopic.php?f=19&t=1096635&p=5811925

Разработка » Нужна помощь в написании плагина. С++, минимум JS. » 17-03-2010 22:26:30

Программисты-разработчики расширений для ФФ. У кого-нибудь работает подобная вешь?
http://www.codeproject.com/KB/library/firefox_component.aspx?msg=2345250
Т.е. кто-нибудь успешно передавал window из скрипта в xpcom.
Убиваюсь головой, не получается передать указатель nsIDOMWindow.

Работает такая функция
NS_IMETHODIMP Demo::Func1(const PRUnichar *inP, PRUnichar **outP NS_OUTPARAM, PRInt32 *_retval NS_OUTPARAM)

Но если добавляю nsIDOMWindow *domWindow параметр, то и все остальеные функции в этой длл перестают работать. Фаерфокс отправляет отчет об ошибке.
NS_IMETHODIMP Demo::Func1(nsIDOMWindow *domWindow, const PRUnichar *inP, PRUnichar **outP NS_OUTPARAM, PRInt32 *_retval NS_OUTPARAM)


Вот так вот работает
idl файл

Выделить код

Код:

#include "nsISupports.idl"
#include "nsrootidl.idl"

[scriptable, uuid(CB934085-D019-47d5-A6F0-623885873281)]

interface IDemo : nsISupports
{
    long func2(in wstring inP, out wstring outP);
};

Вот так вот не работает
idl файл
#include "nsISupports.idl"
#i

Разработка » Нужна помощь в написании плагина. С++, минимум JS. » 13-03-2010 00:08:11

Пишу плагин для фф.
Нашел способ смены стиля для странички, код джаваскрипт:

Выделить код

Код:

var sss = Components.classes["@mozilla.org/content/style-sheet-service;1"]
                    .getService(Components.interfaces.nsIStyleSheetService);
var ios = Components.classes["@mozilla.org/network/io-service;1"]
                    .getService(Components.interfaces.nsIIOService);
var u = ios.newURI("chrome://myext/content/myext.css", null, null);
if(sss.sheetRegistered(u, sss.USER_SHEET))
  sss.unregisterSheet(u, sss.USER_SHEET);

Хочу то же самое написать на С++ и оформить в качестве длл. Может кто-нибудь поможет с примерчиком, как вызвать интерфейс Components.interfaces.nsIStyleSheetService из С++.

Вижу по заголовочным файлам в sdk xulrunner, что возможностей море, но как ими воспользоваться не знаю.

Например есть интерфейс

Выделить код

Код:

nsIDOMCSSStyleSheet interface 
 
void deleteRule(in unsigned long index)

unsigned long insertRule(in DOMString rule, in unsigned long index)

как бы мож

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]