2010-04-08 4 views
0

J'écris l'extension Firefox en utilisant C++.Obtenir l'onglet URL en C++

J'énumère les onglets pour obtenir leurs URL respectifs.

Après est pseudocode:

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); 
} 

Dans le code ci-dessus QueryInterface pour obtenir nsIBrowserBoxObject échoue avec le code d'erreur: NS_ERROR_NO_INTERFACE.

S'il vous plaît me suggérer les moyens d'obtenir l'URL de l'onglet.

Aidez-moi !!!

Merci, Vaibhav.

Répondre