Страницы: 1
Всем привет!
Пишу свой первый XPCOM компонент. Пишу на С++. Компонент должен перемещаться по ссылкам внутри одного сайта и собирать информацию с определенных страниц.
Внимание вопрос: Каким образом можно открыть новое окно браузера и загрузить в него страницу, зная ее адрес?
В исходниках нашел функцию nsIBrowserDOMWindow::openURI, которая по идее должна делать то, что мне нужно. Но не знаю как получить объект nsIBrowserDOMWindow. Знаю, что существует интерфейс nsIDOMChromeWindow у которого есть функция GetBrowserDOMWindow, но QueryInterface(NS_GET_IID(nsIDOMChromeWindow), getter_AddRefs(pChromeWin)) почему-то не срабатывает. Возвращает ошибку 0x80004002, хотя Component Viewer этот интерфейс видит.
Может, я не с того конца ковыряю?
Отсутствует
Проблему решил. Поскольку никто так и не ответил, выкладываю код (Вдруг пригодится кому).
nsresult rv;
nsCOMPtr<nsIAppShellService>m_pAppShellService = do_GetService( "@mozilla.org/appshell/appShellService;1", &rv);
if (!m_pAppShellService)
return rv;
nsCOMPtr<nsIURI> uriObj;
rv = NS_NewURI(getter_AddRefs(uriObj), Url, NULL, NULL);
if (!uriObj)
{
return rv;
}
rv=m_pAppShellService->CreateTopLevelWindow(NULL, uriObj, 0, 300, 300, NULL, getter_AddRefs(m_pXULWindow));
Отсутствует
Страницы: 1