请问这个程序段哪里出错了?运行的时候会死掉
void CParserDlg::DisplayChildren(IXMLDOMNodePtr pParent)
{
// display the current node's name
DisplayChild(pParent);
// simple for loop to get all children
for (IXMLDOMNodePtr pChild = pParent->firstChild;
NULL != pChild;
pChild = pChild->nextSibling)
{
// for each child, call this function so that we get
// its children as well
DisplayChildren(pChild);
}
}
void CParserDlg::DisplayChild(IXMLDOMNodePtr pChild)
{
if (pChild==m_pDocRoot)
{
hRoot=m_TreeView.InsertItem(m_pDocRoot->nodeName);
hParentNode=hRoot;
}
else if (NODE_ELEMENT == pChild->nodeType)
{
hNode[i]=m_TreeView.InsertItem(pChild->nodeName,hParentNode);
if (pChild->firstChild != NULL)
hParentNode=hNode[i];
else if (pChild->nextSibling != NULL)
hParentNode=m_TreeView.GetParentItem(hNode[i]);
else
hParentNode=FindParentNode(hNode[i]);
i++;
}
else if (NODE_TEXT == pChild->nodeType)
{
hNode[i]=m_TreeView.InsertItem(pChild->nodeName,hParentNode);
m_TreeView.SetItemText(hNode[i],pChild->nodeName+":"+pChild->text);
hParentNode=FindParentNode(hNode[i]);
i++;
}
else if (NODE_COMMENT == pChild->nodeType)
{
hNode[i]=m_TreeView.InsertItem(pChild->nodeName,hParentNode);
m_TreeView.SetItemText(hNode[i],pChild->nodeName+":"+pChild->text);
if (pChild->nextSibling != NULL)
hParentNode=m_TreeView.GetParentItem(hNode[i]);
else
hParentNode=FindParentNode(hNode[i]);
i++;
}
else if (NODE_CDATA_SECTION == pChild->nodeType)
{
hNode[i]=m_TreeView.InsertItem(pChild->nodeName,hParentNode);
m_TreeView.SetItemText(hNode[i],pChild->nodeName+":"+pChild->text);
hParentNode=FindParentNode(hNode[i]);
i++;
}
}
HTREEITEM CParserDlg::FindParentNode(HTREEITEM Node)
{
while (m_TreeView.GetNextSiblingItem(m_TreeView.GetParentItem(Node)) == NULL)
{
Node=m_TreeView.GetParentItem(Node);
}
Node=m_TreeView.GetParentItem(m_TreeView.GetParentItem(Node));
return Node;
}
请问这个程序段哪里出错了?运行的时候会死掉