Получение URL-адреса вкладки в C++

Я пишу расширение Firefox, используя С++.

Я перечисляю вкладки, чтобы получить соответствующие URL-адреса.

Ниже приведен псевдокод:

nsCOMPtr<nsIWindowMediator> windowMediator = do_GetService(NS_WINDOWMEDIATOR_CONTRACTID, &rv);
windowMediator->GetMostRecentWindow(L"navigator:browser", getter_AddRefs(dwi));
dwi->GetDocument(getter_AddRefs(doc));
nsCOMPtr<nsIDOMDocumentXBL> xbl(do_QueryInterface(doc));
doc->GetElementById(NS_LITERAL_STRING("content"), getter_AddRefs(domEl));
nsCOMPtr<nsIDOMElement> pAnoEl;
xbl->GetAnonymousElementByAttribute(
                                domEl,
                                NS_LITERAL_STRING("anonid"),
                                NS_LITERAL_STRING("tabcontainer"),
                                getter_AddRefs(pAnoEl)
                                );
nsString retval;
PRBool bRet = 0;
nsCOMPtr<nsIDOMNodeList> nodeList;
pAnoEl->GetChildNodes(getter_AddRefs(nodeList));
nsCOMPtr<nsIDOMNode> domNode;
rv = nodeList->GetLength(&len);
for (PRUint32 i = 0; i < len; i++)
{
    nodeList->Item(i, getter_AddRefs(domNode));
    nsCOMPtr<nsIDOMXULElement> xulElement = do_QueryInterface(domNode);
    nsCOMPtr<nsIBoxObject> boxObject;
    xulElement->GetBoxObject(getter_AddRefs(boxObject));
    nsCOMPtr<nsIBrowserBoxObject> browserboxObject = do_QueryInterface(boxObject);
}

В приведенном выше коде QueryInterface для получения nsIBrowserBoxObject завершается с ошибкой с кодом: NS_ERROR_NO_INTERFACE.

Пожалуйста, предложите мне способы получить URL-адрес вкладки.

Помоги мне !!!

Спасибо, Вайбхав.


person Vaibhav Gade    schedule 08.04.2010    source источник


Ответы (1)


Пожалуйста, хотя бы перекрестно ссылайтесь на свои сообщения, когда спрашиваете на нескольких форумах. Ответ на этот вопрос был дан в http://groups.google.com/group/mozilla.dev.tech.dom/browse_frm/thread/52ff471516662056#

person Community    schedule 13.04.2010