00001 /* 00002 * Copyright 1999-2001,2004 The Apache Software Foundation. 00003 * 00004 * Licensed under the Apache License, Version 2.0 (the "License"); 00005 * you may not use this file except in compliance with the License. 00006 * You may obtain a copy of the License at 00007 * 00008 * http://www.apache.org/licenses/LICENSE-2.0 00009 * 00010 * Unless required by applicable law or agreed to in writing, software 00011 * distributed under the License is distributed on an "AS IS" BASIS, 00012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00013 * See the License for the specific language governing permissions and 00014 * limitations under the License. 00015 */ 00016 00017 /* 00018 * $Log: XMLDOMNotation.h,v $ 00019 * Revision 1.7 2004/09/08 13:55:36 peiyongz 00020 * Apache License Version 2.0 00021 * 00022 * Revision 1.6 2004/02/25 18:38:33 amassari 00023 * The COM wrapper doesn't use the deprecated DOM anymore 00024 * 00025 * Revision 1.5 2003/11/21 12:05:48 amassari 00026 * Updated version to 2.4 00027 * 00028 * Revision 1.4 2003/10/21 21:21:32 amassari 00029 * When the COM object is loaded by a late-binding engine (like WSH, or 00030 * Visual Basic when the type library is not preloaded in the editor), the type 00031 * library version stored in the resource must match the version specified in the 00032 * IDispatchImpl template (defaulted to 1.0), or trying to invoke a method will fail 00033 * 00034 * Revision 1.3 2003/03/14 12:44:49 tng 00035 * [Bug 17147] C++ namespace breaks build of XercesCOM DLL 00036 * 00037 * Revision 1.2 2002/05/21 19:53:53 tng 00038 * DOM Reorganization: update include path for the old DOM interface in COM files 00039 * 00040 * Revision 1.1.1.1 2002/02/01 22:21:42 peiyongz 00041 * sane_include 00042 * 00043 * Revision 1.5 2001/05/11 13:25:07 tng 00044 * Copyright update. 00045 * 00046 * Revision 1.4 2001/01/19 15:18:30 tng 00047 * COM Updates by Curt Arnold: changed 1.3 to 1.4, updated the GUID's so 00048 * both can coexist and fixed a new minor bugs. Most of the changes involved 00049 * error reporting, now a DOM defined error will return an HRESULT of 00050 * 0x80040600 + code and will set an error description to the error name. 00051 * 00052 * Revision 1.3 2000/06/03 00:29:00 andyh 00053 * COM Wrapper changes from Curt Arnold 00054 * 00055 * Revision 1.2 2000/03/30 02:00:10 abagchi 00056 * Initial checkin of working code with Copyright Notice 00057 * 00058 */ 00059 00060 #ifndef ___xmldomnotation_h___ 00061 #define ___xmldomnotation_h___ 00062 00063 #include <xercesc/dom/DOMNotation.hpp> 00064 #include "IXMLDOMNodeImpl.h" 00065 00066 XERCES_CPP_NAMESPACE_USE 00067 00068 class ATL_NO_VTABLE CXMLDOMNotation : 00069 public CComObjectRootEx<CComSingleThreadModel>, 00070 public IXMLDOMNodeImpl<IXMLDOMNotation, &IID_IXMLDOMNotation> 00071 { 00072 public: 00073 CXMLDOMNotation() 00074 {} 00075 00076 void FinalRelease() 00077 { 00078 ReleaseOwnerDoc(); 00079 } 00080 00081 virtual DOMNode* get_DOMNode() { return notation;} 00082 virtual DOMNodeType get_DOMNodeType() const { return NODE_NOTATION; } 00083 00084 DECLARE_NOT_AGGREGATABLE(CXMLDOMNotation) 00085 DECLARE_PROTECT_FINAL_CONSTRUCT() 00086 00087 BEGIN_COM_MAP(CXMLDOMNotation) 00088 COM_INTERFACE_ENTRY(IXMLDOMNotation) 00089 COM_INTERFACE_ENTRY(IXMLDOMNode) 00090 COM_INTERFACE_ENTRY(IIBMXMLDOMNodeIdentity) 00091 COM_INTERFACE_ENTRY(IDispatch) 00092 COM_INTERFACE_ENTRY(ISupportErrorInfo) 00093 END_COM_MAP() 00094 00095 // IXMLDOMNotation methods 00096 STDMETHOD(get_publicId)(VARIANT *pVal); 00097 STDMETHOD(get_systemId)(VARIANT *pVal); 00098 00099 DOMNotation* notation; 00100 }; 00101 00102 typedef CComObject<CXMLDOMNotation> CXMLDOMNotationObj; 00103 00104 #endif // ___xmldomnotation_h___