Я работаю над компонентом C ++ для Firefox и пытаюсь сосредоточиться на XPCOM и всех его частях. Это действительно сбивает с толку, поэтому я пытаюсь разобраться с этим, но я пытаюсь пройтись по странице и получить все ее ссылки. Я пытаюсь выяснить, что делают все объекты. Так что, если у меня есть этот интерфейс:
interface nsIPageSummary : nsISupports {
boolean saveSummary(in nsIDOMDocument document,
out unsigned long numLinks,
out unsigned long numImages);
};
определенный в IDL, метод в моем коде C ++ будет выглядеть так:
SaveSummary(nsIDOMDocument* inDoc, PRBool* outSuccess)
{
*outSuccess = PR_FALSE;
nsCOMPtr<nsIDOMNodeList> nodeList;
inDoc->GetElementsByTagName(NS_LITERAL_STRING("A"), getter_AddRefs(nodeList));
}
Я знаю, что методу C ++ нужно больше параметров, чтобы соответствовать тому, который определен в интерфейсе, но я пока не понимаю, как работает все типизирование. С точки зрения фактического списка, я правильно понимаю, что
inDoc->GetElementsByTagName(NS_LITERAL_STRING("A"), getter_AddRefs(nodeList));
строка помещает все теги "A" из inDoc в nodeList? И мне просто нужно пройти через нодлист, чтобы получить их все?