>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Разработка http://forum.mozilla-russia.org/viewforum.php?id=18 >Не удается получить экземпляр nsMessenger через XPCOM. http://forum.mozilla-russia.org/viewtopic.php?id=12797 |
WhiteWizard > 28-09-2006 16:07:22 |
Добрый день. Я пишу расширение для Thunderbird 1.5, в котором мне надо по URI письма получить его тело. Но проблема в том, что мне никак не удается получить экземпляр "@mozilla.org/messenger;1" из С++. И ServiceManager, и ComponentManager возвращают NS_ERROR_FACTORY_NOT_REGISTERED. Попытки получить его через CID кончаются тем же. Но при этом в JavaScript'e отлично работает. Нет, конечно, можно попытаться получать ссылку через JavaScript и передавать ее через сеттер сппшному компоненту, но это как-то делать не хочется, а хочется разобраться, в чем проблема. Пара часов поиска по Интернету ничего не дала. |
WhiteWizard > 11-10-2006 14:43:57 |
Я немного продвинулся в решнии проблемы. Итак, я регистрировал свой компонент, бросив dll-ку в папку Mozilla Thunderbird/Components и запустив regxpcom.exe. Стандартные же компоненты прописаны в файле compreg.dat в папке профиля. Так вот, может ли кто объяснить, где реально находится реестр компонентов XPCOM (compreg.dat, как я понял - это просто диагностика), и, самое главное, как мне наименьшей кровью зарегистрировать dll-ку так, чтобы из нее я мог доступиться до Thunderbird'овских компонентов? Благодарность не будет знать границ. |
WhiteWizard > 20-10-2006 14:17:02 |
Я решил проблему и хочу оставить заметку будущим поколениям . Почему-то этот факт почти нигде не упоминается. SDK с которым все замечательно заработало находится здесь: |