Return Type | Function name | Arguments |
---|---|---|
hzEcode | hzXmlNode::AddNode | (hzXmlNode*,) |
Declared in file: hzDocument.h
Defined in file : hzDocXml.cpp
Function Logic:
Function body:
hzEcode hzXmlNode::AddNode (hzXmlNode* pNode) { _hzfunc("hzXmlNode::AddNode") ; hzXmlNode* tmp ; if (!pNode) return hzerr(E_ARGUMENT, "Attempt to add a null node to %s", txtName()) ; if (pNode == this) return hzerr(E_DUPLICATE, "Attempt to add a node (%d) to itself (%d, %s)", pNode->m_Uid, m_Uid, txtName()) ; if (!m_pHostDoc) hzexit(E_NOINIT, "Node has no host document") ; m_pHostDoc->m_NodesPar.Insert(m_Uid, pNode->m_Uid) ; if (!m_Children) m_Children = pNode->GetUid() ; else { for (tmp = GetFirstChild() ; tmp->m_Sibling ; tmp = tmp->Sibling()) { if (pNode == tmp) return hzerr(E_DUPLICATE, "Attempt to add an already existing node to %s", txtName()) ; } tmp->m_Sibling = pNode->m_Uid ; } return E_OK ; }