А надо ли как-то отдельно регистрировать объект имплементирующий nsIPromptService? Или можно обойтись без этого? В доке как-то странно описано регистрация nsIXXXX... сервисов. Как мне его зарегистрировать. И ещё - где моя аппликация должна хранить настройки для proxy?
Отредактировано softmax (13-06-2006 12:44:44)
Отсутствует
А надо ли как-то отдельно регистрировать объект имплементирующий nsIPromptService? Или можно обойтись без этого? В доке как-то странно описано регистрация nsIXXXX... сервисов. Как мне его зарегистрировать. И ещё - где моя аппликация должна хранить настройки для proxy?
Конечно нада регистрировать...
делается это так:
nsCOMPtr<nsIFactory> promptFactory; rv = NS_NewPromptServiceFactory(getter_AddRefs(promptFactory), this); //MakeFactory(getter_AddRefs(promptFactory)); pPrompt = promptFactory; rv = nsComponentManager::RegisterFactory(kPromptServiceCID, "Prompt Service", "@mozilla.org/embedcomp/prompt-service;1", promptFactory, PR_TRUE);
а что это (NS_NewPromptServiceFactory) за ф-ия, смотри файл mozilla\embedding\browser\activex\src\control\PromptService.cpp и хидер....
смотри сэмплы.. там есть ответы на твои вопросы (правда иногда.. )
а прокси хнаниться в настройках пользователя... иными словами делай следующее:
go to about:config
filter: proxy
и обязательно не забудь выставить proxy type (network.proxy.type)....
ааа так тебе программно это нужно ставить...
тада смотри интерфейс nsIPref
nsCOMPtr<nsIPref> prefs(do_GetService(NS_PREF_CONTRACTID, &rv)); rv = prefs->SetCharPref(_T("browser.startup.homepage"), m_bStartHome);
Отсутствует
Syber
Здорово спасибо!!!
Ещё тебя потревожу ... Вот все эти nsIXxxxxX как я понял НЕ РЕАЛИЗОВАНЫ самим Gecko - engine? Где-то на mozilla.org проскакивала инфа, что реализация этих самых интерфесов необходима если я скажем хочу поменять их СТАНДАРТНУЮ имплементацию, или всё же я прав - и всё необходимо реализовывать вручную.
Отредактировано softmax (13-06-2006 14:01:57)
Отсутствует
Syber
Здорово спасибо!!!Ещё тебя потревожу ... Вот все эти nsIXxxxxX как я понял НЕ РЕАЛИЗОВАНЫ самим Gecko - engine? Где-то на mozilla.org проскакивала инфа, что реализация этих самых интерфесов необходима если я скажем хочу поменять их СТАНДАРТНУЮ имплементацию, или всё же я прав - и всё необходимо реализовывать вручную.
что то реализовано, что то нет!
что то читал последнее предложение несколько раз - так и не въехал в него... но вроде суть его уловил (наверное уже устал от работы ). по любому чтобы вызвать что то стандартное, к примеру менеджер закачек, нужно реализовать как минимум некоторый интерфейс (в данном случае nsIHelperAppLauncherDialog).
Честно говорят не пойму зачем тебе такая информация.... есть задача - есть решение!
Отсутствует
Странно подключил nsIPromptService... Часть ф-ций работает - часть нет.
Скажем Alert вызывается корректно... А вот запрос на Proxy Autentification - нет! В чём может быть причина?
Может нужно ещё что-нить чтоб работать через proxy?
Отредактировано softmax (14-06-2006 14:45:12)
Отсутствует
Странно подключил nsIPromptService... Часть ф-ций работает - часть нет.
Скажем Alert вызывается корректно... А вот запрос на Proxy Autentification - нет! В чём может быть причина?
Может нужно ещё что-нить чтоб proxy работать через proxy?
хм.. даже не знаю что и сказать...
мне кажется должно работать - другого способа я не знаю
В любом случае если справишься с проблемой обязательно отпиши!
Отсутствует
Немного не по теме - но разбираюсь с исходниками .NET библиотеки (которая DotNetEmbed) - понимаю что Open Source - это куча отрицательных сторон ... Гордая mozilla вместе с ff содержит в себе пример абсолютно безалаберного отношения к написанию программ. Да, конечно хорошо что DotNetEmebed есть, но я не вижу больших проблем в том чтобы привести код в какой-либо благородный вид перед тем как это выкладывать ... Мне бы например было бы стыдно!
Отредактировано softmax (14-06-2006 16:19:27)
Отсутствует
Немного не по теме - но разбираюсь с исходниками .NET библиотеки (которая DotNetEmbed) - понимаю что Open Source - это куча отрицательных сторон ... Гордая mozilla вместе с ff содержит в себе пример абсолютно безалаберного отношения к написание программ. Да, конечно хорошо что DotNetEmebed есть, но я не вижу больших проблем в том чтобы привести код в кай-либо благородный вид перед тем как это выкладывать ... Мне бы например было бы стыдно!
Атнюдь!
Это все потому - что mozilla портируется (linux\win\mac).
Я не думаю что проект operа выглядит лучше - имхо даже хуже...
Код в мозила выглядит оч. хорошо, а вам softmax что не нравиться?
Другое дело чего оч. не хватает для мозилы так это MZDN (MoZilla Developers Network), другими словами нехватает хорошего справочника!!!
Отсутствует
Не буду тут приводить описание, но пример: 2 РАЗНЫХ класса юзают один cpp и 2 h-файла - не думаю что это есть good! (Причём один из классов managed а другой unmanaged). Зачем? Перлы вот такие:
NS_IMETHODIMP WebBrowserChrome::SetStatus(PRUint32 aType, const PRUnichar* aStatus) { return NS_OK; }
я вообще молчу! Чехарда со скобками продолжается и в mfcembed. Неужели так удобно писать?
Конечно может я и привык к интуитивно понятному написанию исходников в Java или C# - но не думаю что на С++ пишут неряхи! Неужели трудно договориться об ОДИНАКОВОМ оформлении того что пишется. Просто наболело!
Отсутствует
2 cpp файла юзают один header файл - оч. удобно, а особенно в mozille. (мне нравиться - респект!)
Со скобками... нуу может быть и есть - мне пофиг!
Самое что мне не нравиться в исходниках так это горизонтальный скрол (просто ненавижу!!!)
Отсутствует
Уважаемый All столкнулся с такое проблемкой - если выкачивать документ используя только сетевые сервисы (через NS_OpenURL()), то диалог аутентификации вызывается. В случае если сделать это используя Gecko, то диалога нет.... Кто-нить сталкивался с подобной ерундой?
Отсутствует
Раньше использовал Mozilla ActiveX Control. Решил посмотеть на mfcEmbed. Ничего не понимаю... Стоит VS2003, и т.п... делаю как описано в WIKI. Единственная разница это Platform SDK for Windows Server 2003 R2. Пытаюсь собрать 1.8b ради работающего mfcEmbed получаю:
make[5]: Entering directory '/cygdrive/c/mozilla/directory/c-sdk/ldap/include' Makefile:74: *** target pattern contains no '%'. Stop. make[5]: Leaving directory '/cygdrive/c/mozilla/directory/c-sdk/ldap/include' make[4]: *** [export] Error 2 ... make: *** [build] Error 2
Подскажите please как этого избежать или может у кого есть рабочии исходники с которых можно собрать mfcEmbed из VS2003
Отсутствует
Раньше использовал Mozilla ActiveX Control. Решил посмотеть на mfcEmbed. Ничего не понимаю... Стоит VS2003, и т.п... делаю как описано в WIKI. Единственная разница это Platform SDK for Windows Server 2003 R2. Пытаюсь собрать 1.8b ради работающего mfcEmbed получаю:
Выделить кодКод:
make[5]: Entering directory '/cygdrive/c/mozilla/directory/c-sdk/ldap/include' Makefile:74: *** target pattern contains no '%'. Stop. make[5]: Leaving directory '/cygdrive/c/mozilla/directory/c-sdk/ldap/include' make[4]: *** [export] Error 2 ... make: *** [build] Error 2Подскажите please как этого избежать или может у кого есть рабочии исходники с которых можно собрать mfcEmbed из VS2003
У меня та же проблема. Как победить пока не знаю. Правда возникает она только если компилять --enable-application=suite, если --enable-application=browser, то этот ldap не компилируется и этой ошибки нет. Зато валится при сборке widget - куча unresolved externals: не нравится чем-то nsString
Был бы тоже признателен, если кто подскажет в чем проблема.
Отсутствует
Проблема с версией cygwin. Сейчас точно не помню в чём именно. Постраюсь глянуть в понедельник на работе. Если ещё актуально конечно.
Отредактировано softmax (04-02-2007 16:20:56)
Отсутствует
Пишу на C. Использую MSVS 2005. Знаю азы C++, но не использую (ибо пишу на C). Полагаю, что COM/DCOM/XPCOM - это такие порты ввода/вывода на PC. Хочу сделать приложение под Win32 (для начала), которое бы показывало окно без всего (для начала), в котором бы рендерились web-страницы. Т.е. embed'нуть gecko.
Вопрос: для меня всё кончено (нужно идти убивать себя головой об стену, либо учиться объектному программированию), или ещё есть надежда?
IE не предлагать.
ActiveX не предлагать.
GtkMozEmbed предлагать только вместе с готовым работающим билдом GtkMozEmbed.
P.S. Чисто академический интерес: при билде MZ/FF обязательно пользоваться cygwin'ом? Может, msys подойдёт?
Отсутствует
нужно идти убивать себя головой об стену, либо учиться объектному программированию
Я так думаю, что не обязательно. Но со специализированными C-макросами из исходников mozilla придётся разбираться в любом случае.
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Если можно писать XPCOM-компоненты на C, значит можно и эмбедить на C! Как-то. Ну, это чисто для справки, т.к. ВЫ, как я понял, мне помочь не в силах.
C-макросы действительно есть, но все объекты, используемые при эмбеддинге, написаны на C++. Но я не отчаиваюсь...
Отсутствует
Предлагаю разработчикам Мозиллы учиться у этого человека. Скачал проект, открыл, билднул (без ошибок), кинул к рантаймам - работает.
Отредактировано LRN (16-02-2007 03:23:20)
Отсутствует