📄 ixmldomnodeimpl.inl
字号:
if (NULL == pNewChildNode) return E_INVALIDARG; CComQIPtr<IIBMXMLDOMNodeIdentity,&IID_IIBMXMLDOMNodeIdentity> pOldChild(oldChild); if (!pOldChild) return E_NOINTERFACE; id = 0; hr = pOldChild->get_NodeId(&id); if (S_OK != hr) return hr; DOMNode *pOldChildNode = reinterpret_cast<DOMNode*> (id); if (NULL == pOldChildNode) return E_INVALIDARG; try { DOMNode* n = get_DOMNode()->replaceChild(pNewChildNode, pOldChildNode); hr = wrapNode(m_pIXMLDOMDocument,n,IID_IXMLDOMNode, reinterpret_cast<LPVOID *> (outNewChild)); } catch(DOMException& ex) { return MakeHRESULT(ex); } catch(...) { return E_FAIL; } return S_OK;}template <class T, const IID* piid, class tihclass>STDMETHODIMPIXMLDOMNodeImpl<T,piid,tihclass>::removeChild(IXMLDOMNode *child, IXMLDOMNode * *oldChild){ ATLTRACE(_T("IXMLDOMNodeImpl::removeChild\n")); if (NULL == oldChild) return E_POINTER; *oldChild = NULL; if (NULL == child) return E_INVALIDARG; CComQIPtr<IIBMXMLDOMNodeIdentity,&IID_IIBMXMLDOMNodeIdentity> pChild(child); if (!pChild) return E_NOINTERFACE; long id = 0; HRESULT hr = pChild->get_NodeId(&id); if (S_OK != hr) return hr; DOMNode *pChildNode = reinterpret_cast<DOMNode*> (id); if (NULL == pChildNode) return E_INVALIDARG; try { DOMNode* n = get_DOMNode()->removeChild(pChildNode); if(n!=NULL) hr = wrapNode(m_pIXMLDOMDocument,n,IID_IXMLDOMNode, reinterpret_cast<LPVOID *> (oldChild)); } catch(DOMException& ex) { return MakeHRESULT(ex); } catch(...) { return E_FAIL; } return S_OK;}template <class T, const IID* piid, class tihclass>STDMETHODIMPIXMLDOMNodeImpl<T,piid,tihclass>::appendChild(IXMLDOMNode *newChild, IXMLDOMNode * *outNewChild){ ATLTRACE(_T("IXMLDOMNodeImpl::appendChild\n")); if (NULL == outNewChild) return E_POINTER; *outNewChild = NULL; if (NULL == newChild) return E_INVALIDARG; CComQIPtr<IIBMXMLDOMNodeIdentity,&IID_IIBMXMLDOMNodeIdentity> pNewChild(newChild); if (!pNewChild) return E_NOINTERFACE; long id = 0; HRESULT hr = pNewChild->get_NodeId(&id); if (S_OK != hr) return hr; DOMNode *pNewChildNode = reinterpret_cast<DOMNode*> (id); if (NULL == pNewChildNode) return E_INVALIDARG; try { DOMNode* n = get_DOMNode()->appendChild(pNewChildNode); hr = wrapNode(m_pIXMLDOMDocument,n,IID_IXMLDOMNode, reinterpret_cast<LPVOID *> (outNewChild)); } catch(DOMException& ex) { return MakeHRESULT(ex); } catch(...) { return E_FAIL; } return S_OK;}template <class T, const IID* piid, class tihclass>STDMETHODIMPIXMLDOMNodeImpl<T,piid,tihclass>::hasChildNodes(VARIANT_BOOL *hasChild){ ATLTRACE(_T("IXMLDOMNodeImpl::hasChildNodes\n")); if (NULL == hasChild) return E_POINTER; *hasChild = VARIANT_FALSE; try { *hasChild = (get_DOMNode()->hasChildNodes()) ? VARIANT_TRUE : VARIANT_FALSE; } catch(DOMException& ex) { return MakeHRESULT(ex); } catch(...) { return E_FAIL; } return S_OK;}template <class T, const IID* piid, class tihclass>STDMETHODIMPIXMLDOMNodeImpl<T,piid,tihclass>::get_ownerDocument(IXMLDOMDocument **pVal){ ATLTRACE(_T("IXMLDOMNodeImpl::get_ownerDocument\n")); if (NULL == pVal) return E_POINTER; *pVal = NULL; if (get_DOMNodeType() != NODE_DOCUMENT) { *pVal = m_pIXMLDOMDocument; if (*pVal != NULL) (*pVal)->AddRef(); } return S_OK;}template <class T, const IID* piid, class tihclass>STDMETHODIMPIXMLDOMNodeImpl<T,piid,tihclass>::cloneNode(VARIANT_BOOL deep, IXMLDOMNode **pVal){ ATLTRACE(_T("IXMLDOMNodeImpl::cloneNode\n")); if (NULL == pVal) return E_POINTER; *pVal = NULL; HRESULT hr = S_OK; try { hr = wrapNode(m_pIXMLDOMDocument,get_DOMNode()->cloneNode((VARIANT_TRUE == deep) ? true : false),IID_IXMLDOMNode, reinterpret_cast<LPVOID *> (pVal)); } catch(DOMException& ex) { return MakeHRESULT(ex); } catch(...) { return E_FAIL; } return hr;}template <class T, const IID* piid, class tihclass>STDMETHODIMPIXMLDOMNodeImpl<T,piid,tihclass>::get_nodeTypeString(BSTR *pVal){ ATLTRACE(_T("IXMLDOMNodeImpl::get_nodeTypeString\n")); USES_CONVERSION; if (NULL == pVal) return E_POINTER; *pVal = ::SysAllocString(g_DomNodeName[get_DOMNodeType()]); return S_OK;}template <class T, const IID* piid, class tihclass>STDMETHODIMPIXMLDOMNodeImpl<T,piid,tihclass>::get_text(BSTR *pVal){ ATLTRACE(_T("IXMLDOMNodeImpl::get_text\n")); if (NULL == pVal) return E_POINTER; *pVal = SysAllocString(get_DOMNode()->getTextContent()); return S_OK;}template <class T, const IID* piid, class tihclass>STDMETHODIMPIXMLDOMNodeImpl<T,piid,tihclass>::put_text(BSTR newVal){ ATLTRACE(_T("IXMLDOMNodeImpl::put_text\n")); DOMNodeType type = get_DOMNodeType(); if (NODE_DOCUMENT_FRAGMENT == type || NODE_DOCUMENT_TYPE == type || NODE_ENTITY == type || NODE_ENTITY_REFERENCE == type || NODE_NOTATION == type) return E_ACCESSDENIED; try { if(NODE_ELEMENT == type) { // // remove all child elements // DOMNode* elem = get_DOMNode(); DOMNode* child = elem->getLastChild(); while(child!=NULL) { elem->removeChild(child); child = elem->getLastChild(); } XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument* doc = elem->getOwnerDocument(); elem->appendChild(doc->createTextNode(newVal)); } else get_DOMNode()->setNodeValue(newVal); } catch(DOMException& ex) { return MakeHRESULT(ex); } catch(...) { return E_FAIL; } return S_OK;}template <class T, const IID* piid, class tihclass>STDMETHODIMPIXMLDOMNodeImpl<T,piid,tihclass>::get_specified(VARIANT_BOOL *pVal){ ATLTRACE(_T("IXMLDOMNodeImpl::get_specified\n")); *pVal = VARIANT_TRUE; return S_OK;}template <class T, const IID* piid, class tihclass>STDMETHODIMPIXMLDOMNodeImpl<T,piid,tihclass>::get_definition(IXMLDOMNode * *pVal){ ATLTRACE(_T("IXMLDOMNodeImpl::get_definition\n")); return E_NOTIMPL;}template <class T, const IID* piid, class tihclass>STDMETHODIMPIXMLDOMNodeImpl<T,piid,tihclass>::get_nodeTypedValue(VARIANT *pVal){ ATLTRACE(_T("IXMLDOMNodeImpl::get_nodeTypedValue\n")); return get_nodeValue(pVal);}template <class T, const IID* piid, class tihclass>STDMETHODIMPIXMLDOMNodeImpl<T,piid,tihclass>::put_nodeTypedValue(VARIANT newVal){ ATLTRACE(_T("IXMLDOMNodeImpl::put_nodeTypedValue\n")); return put_nodeValue(newVal);}template <class T, const IID* piid, class tihclass>STDMETHODIMPIXMLDOMNodeImpl<T,piid,tihclass>::get_dataType(VARIANT *pVal){ ATLTRACE(_T("IXMLDOMNodeImpl::get_dataType\n")); return E_NOTIMPL;}template <class T, const IID* piid, class tihclass>STDMETHODIMPIXMLDOMNodeImpl<T,piid,tihclass>::put_dataType(BSTR dataTypeName){ ATLTRACE(_T("IXMLDOMNodeImpl::put_dataType\n")); return E_NOTIMPL;}template <class T, const IID* piid, class tihclass>STDMETHODIMPIXMLDOMNodeImpl<T,piid,tihclass>::get_xml(BSTR *pVal){ ATLTRACE(_T("IXMLDOMNodeImpl::get_xml\n")); if (NULL == pVal) return E_POINTER; *pVal = NULL; _bstr_t text; try { GetXML(get_DOMNode(),text); } catch(DOMException& ex) { return MakeHRESULT(ex); } catch(...) { return E_FAIL; } *pVal = text.copy(); return S_OK;}template <class T, const IID* piid, class tihclass>STDMETHODIMPIXMLDOMNodeImpl<T,piid,tihclass>::transformNode(IXMLDOMNode *stylesheet, BSTR *xmlString){ ATLTRACE(_T("IXMLDOMNodeImpl::transformNode\n")); return E_NOTIMPL;}template <class T, const IID* piid, class tihclass>STDMETHODIMPIXMLDOMNodeImpl<T,piid,tihclass>::selectNodes(BSTR queryString, IXMLDOMNodeList * *resultList){ ATLTRACE(_T("IXMLDOMNodeImpl::selectNodes\n")); return E_NOTIMPL;}template <class T, const IID* piid, class tihclass>STDMETHODIMPIXMLDOMNodeImpl<T,piid,tihclass>::selectSingleNode(BSTR queryString, IXMLDOMNode * *resultNode){ ATLTRACE(_T("IXMLDOMNodeImpl::selectSingleNode\n")); return E_NOTIMPL;}template <class T, const IID* piid, class tihclass>STDMETHODIMPIXMLDOMNodeImpl<T,piid,tihclass>::get_parsed(VARIANT_BOOL *pVal){ ATLTRACE(_T("IXMLDOMNodeImpl::get_parsed\n")); if (NULL == pVal) return E_POINTER; *pVal = VARIANT_TRUE; return S_OK;}template <class T, const IID* piid, class tihclass>STDMETHODIMPIXMLDOMNodeImpl<T,piid,tihclass>::get_namespaceURI(BSTR *pVal){ ATLTRACE(_T("IXMLDOMNodeImpl::get_namespaceURI\n")); if (NULL == pVal) return E_POINTER; *pVal = NULL; try { *pVal = SysAllocString(get_DOMNode()->getNamespaceURI()); } catch(DOMException& ex) { return MakeHRESULT(ex); } catch(...) { return E_FAIL; } return S_OK;}template <class T, const IID* piid, class tihclass>STDMETHODIMPIXMLDOMNodeImpl<T,piid,tihclass>::get_prefix(BSTR *pVal){ ATLTRACE(_T("IXMLDOMNodeImpl::get_prefix\n")); if (NULL == pVal) return E_POINTER; *pVal = NULL; try { *pVal = SysAllocString(get_DOMNode()->getPrefix()); } catch(DOMException& ex) { return MakeHRESULT(ex); } catch(...) { return E_FAIL; } return S_OK;}template <class T, const IID* piid, class tihclass>STDMETHODIMPIXMLDOMNodeImpl<T,piid,tihclass>::get_baseName(BSTR *pVal){ ATLTRACE(_T("IXMLDOMNodeImpl::get_baseName\n")); if (NULL == pVal) return E_POINTER; *pVal = NULL; try { *pVal = SysAllocString(get_DOMNode()->getLocalName()); } catch(DOMException& ex) { return MakeHRESULT(ex); } catch(...) { return E_FAIL; } return S_OK;}template <class T, const IID* piid, class tihclass>STDMETHODIMPIXMLDOMNodeImpl<T,piid,tihclass>::transformNodeToObject(IXMLDOMNode *stylesheet, VARIANT outputObject){ ATLTRACE(_T("IXMLDOMNodeImpl::transformNodeToObject\n")); return E_NOTIMPL;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -