2010-04-08 75 views
0

我正在使用C++編寫Firefox擴展。在C++中獲取標籤URL

我正在枚舉這些標籤以獲取它們各自的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。

請向我推薦獲取標籤網址的方法。

幫幫我!!!

謝謝, Vaibhav。

回答