Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef ___xmldomelement_h___
00023 #define ___xmldomelement_h___
00024
00025 #include <xercesc/dom/DOMElement.hpp>
00026 #include "IXMLDOMNodeImpl.h"
00027
00028 XERCES_CPP_NAMESPACE_USE
00029
00030 class ATL_NO_VTABLE CXMLDOMElement :
00031 public CComObjectRootEx<CComSingleThreadModel>,
00032 public IXMLDOMNodeImpl<IXMLDOMElement, &IID_IXMLDOMElement>
00033 {
00034 public:
00035 CXMLDOMElement()
00036 {}
00037
00038 void FinalRelease()
00039 {
00040 ReleaseOwnerDoc();
00041 }
00042
00043 virtual DOMNode* get_DOMNode() { return element;}
00044 virtual DOMNodeType get_DOMNodeType() const { return NODE_ELEMENT; }
00045
00046 DECLARE_NOT_AGGREGATABLE(CXMLDOMElement)
00047
00048 DECLARE_PROTECT_FINAL_CONSTRUCT()
00049
00050 BEGIN_COM_MAP(CXMLDOMElement)
00051 COM_INTERFACE_ENTRY(IXMLDOMElement)
00052 COM_INTERFACE_ENTRY(IXMLDOMNode)
00053 COM_INTERFACE_ENTRY(IIBMXMLDOMNodeIdentity)
00054 COM_INTERFACE_ENTRY(IDispatch)
00055 COM_INTERFACE_ENTRY(ISupportErrorInfo)
00056 END_COM_MAP()
00057
00058
00059 STDMETHOD(get_tagName)(BSTR *pVal);
00060 STDMETHOD(getAttribute)(BSTR name, VARIANT *value);
00061 STDMETHOD(setAttribute)(BSTR name, VARIANT value);
00062 STDMETHOD(removeAttribute)(BSTR name);
00063 STDMETHOD(getAttributeNode)(BSTR name, IXMLDOMAttribute * *attr);
00064 STDMETHOD(setAttributeNode)(IXMLDOMAttribute *attr, IXMLDOMAttribute * *attributeNode);
00065 STDMETHOD(removeAttributeNode)(IXMLDOMAttribute *attr, IXMLDOMAttribute * *attributeNode);
00066 STDMETHOD(getElementsByTagName)(BSTR tagName, IXMLDOMNodeList * *resultList);
00067 STDMETHOD(normalize)(void);
00068
00069 DOMElement* element;
00070 };
00071
00072 typedef CComObject<CXMLDOMElement> CXMLDOMElementObj;
00073
00074 #endif // ___xmldomelement_h___