Страницы: 1
Я решил проблему и хочу оставить заметку будущим поколениям ;).
Оказывается у TB 1.5 очень узкая совместимость с версиями Gecko SDK, причем можно исхритриться зарегистрировать компонент, собранный с ранней версией, но он получается изолированным от компонентов TB.
Почему-то этот факт почти нигде не упоминается.
SDK с которым все замечательно заработало находится здесь:
http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/1.8.0.4/sdk/
Я немного продвинулся в решнии проблемы. Итак, я регистрировал свой компонент, бросив dll-ку в папку Mozilla Thunderbird/Components и запустив regxpcom.exe.
Так вот, в файле compreg.dat, который генерится в этой папке указано очень немного компонентов и среди них нет стандартных. Эксперимент показал, что любой из компонентов, указанных в этом файле отлично создается.
Стандартные же компоненты прописаны в файле compreg.dat в папке профиля.
Так вот, может ли кто объяснить, где реально находится реестр компонентов XPCOM (compreg.dat, как я понял - это просто диагностика), и, самое главное, как мне наименьшей кровью зарегистрировать dll-ку так, чтобы из нее я мог доступиться до Thunderbird'овских компонентов?
Благодарность не будет знать границ.
Добрый день.
Обращаюсь за советом.
Я пишу расширение для Thunderbird 1.5, в котором мне надо по URI письма получить его тело.
Для этого существует метод StreamMessage() у интерфейса nsIMessenger.
Но проблема в том, что мне никак не удается получить экземпляр "@mozilla.org/messenger;1" из С++. И ServiceManager, и ComponentManager возвращают NS_ERROR_FACTORY_NOT_REGISTERED. Попытки получить его через CID кончаются тем же.
Но при этом в JavaScript'e
отлично работает.
Нет, конечно, можно попытаться получать ссылку через JavaScript и передавать ее через сеттер сппшному компоненту, но это как-то делать не хочется, а хочется разобраться, в чем проблема.
Пара часов поиска по Интернету ничего не дала.
Буду очень благодарен за любую помощь.
Страницы: 1