本文整理汇总了C++中msxml2::IXMLDOMNodePtr::GetInterfacePtr方法的典型用法代码示例。如果您正苦于以下问题:C++ IXMLDOMNodePtr::GetInterfacePtr方法的具体用法?C++ IXMLDOMNodePtr::GetInterfacePtr怎么用?C++ IXMLDOMNodePtr::GetInterfacePtr使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类msxml2::IXMLDOMNodePtr
的用法示例。
在下文中一共展示了IXMLDOMNodePtr::GetInterfacePtr方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: InsertEnterAndTabs
MSXML2::IXMLDOMNodePtr CXmlBase::InsertEnterAndTabs(MSXML2::IXMLDOMNodePtr pParentNode, MSXML2::IXMLDOMNodePtr pNode, int nLevel)
{
HRESULT hr = S_OK;
MSXML2::IXMLDOMDocument2Ptr pDoc = NULL;
MSXML2::IXMLDOMTextPtr pTabsText = NULL;
MSXML2::IXMLDOMNodePtr pTabsNode = NULL;
MSXML2::IXMLDOMElementPtr pElement = NULL;
CString strText(_T("")), strTabs(_T(""));
CComBSTR bstrText;
if (nLevel < 0
|| pParentNode == NULL) return NULL;
if(pNode == NULL)nLevel = 0;
for (int i=0; i<nLevel; i++)
{
strTabs += _T("\t");
}
strText.Format(_T("%s%s"), _T("\r\n"), (LPCTSTR)strTabs);
bstrText = _bstr_t(strText).GetBSTR();
try
{
pDoc = pParentNode->GetownerDocument();
if (pDoc == NULL) return NULL;
pTabsText = pDoc->createTextNode((LPCTSTR)strText);
if (pTabsText == NULL) return NULL;
CComVariant varNode = pNode.GetInterfacePtr();
pTabsNode = pParentNode->insertBefore(pTabsText, varNode);
//hr = pDoc->raw_createTextNode(bstrText.m_str, &pTabsText);
//if (FAILED(hr) || pTabsText == NULL) return NULL;
//pElement = pTabsText;
//pTabsNode = pParentNode->appendChild(pElement);
//pTabsNode = pDoc->createTextNode((LPCTSTR)strText);
//if (pTabsNode == NULL) return NULL;
//pNode = pNode->appendChild(pTabsNode);
}
catch(_com_error &e)
{
CString str;
str.Format(_T("创建xml节点发生异常。\r\nComError:\r\n%s")
, e.ErrorMessage());
::MessageBox(NULL,str, g_sAppTitle, MB_OK|MB_ICONERROR);
return NULL;
}
catch(...)
{
return NULL;
}
return pTabsNode;
}
示例2: InsertAfter
MSXML2::IXMLDOMNode* CXmlNodeWrapper::InsertAfter(MSXML2::IXMLDOMNode *refNode, MSXML2::IXMLDOMNode *pNode)
{
MSXML2::IXMLDOMNodePtr nextNode = refNode->GetnextSibling();
MSXML2::IXMLDOMNodePtr newNode;
if (nextNode.GetInterfacePtr() != NULL)
newNode = m_xmlnode->insertBefore(pNode,(IUnknown*)nextNode);
else
newNode = m_xmlnode->appendChild(pNode);
return newNode.Detach();
}
示例3: InsertNode
MSXML2::IXMLDOMNodePtr CXmlBase::InsertNode( MSXML2::IXMLDOMNodePtr pParentNode , MSXML2::IXMLDOMNodePtr pNodeBack , LPCTSTR lpszNodeText )
{
HRESULT hr = S_OK;
MSXML2::IXMLDOMDocument2Ptr pDoc = NULL;
MSXML2::IXMLDOMElementPtr pElement = NULL;
MSXML2::IXMLDOMNodePtr pNode = NULL;
CComBSTR bstrNodeText = _bstr_t("node").GetBSTR();
if (pParentNode == NULL
|| lpszNodeText == NULL) return NULL;
bstrNodeText = lpszNodeText;
if (bstrNodeText.Length() == 0) return NULL;
try
{
pDoc = pParentNode->GetownerDocument();
if (pDoc == NULL) return NULL;
//hr = pDoc->raw_createElement(bstrNodeText.m_str, &pElement);
//if (FAILED(hr) || pElement == NULL) return NULL;
pNode = pDoc->createNode(NODE_ELEMENT, bstrNodeText.m_str, _T(""));
if (pNode == NULL) return NULL;
CComVariant varNode = pNodeBack.GetInterfacePtr();
pNode = pParentNode->insertBefore(pNode, varNode);
}
catch(_com_error &e)
{
CString str;
str.Format(_T("插入xml节点发生异常。\r\nComError:\r\n%s")
, e.ErrorMessage());
::MessageBox(NULL,str, g_sAppTitle, MB_OK|MB_ICONERROR);
return NULL;
}
catch(...)
{
return NULL;
}
return pNode;
}