⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ixmldomnodeimpl.inl

📁 IBM的解析xml的工具Xerces的源代码
💻 INL
📖 第 1 页 / 共 2 页
字号:
	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 + -