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 ___xmldomparseerror_h___
00023 #define ___xmldomparseerror_h___
00024 
00025 #include <xercesc/util/XercesDefs.hpp>
00026 XERCES_CPP_NAMESPACE_USE
00027 
00028 class ATL_NO_VTABLE CXMLDOMParseError : 
00029         public CComObjectRootEx<CComSingleThreadModel>,
00030         public IDispatchImpl<IXMLDOMParseError, &IID_IXMLDOMParseError, &LIBID_Xerces, XERCES_VERSION_MAJOR, INVK_CAT2_RAW_NUMERIC(XERCES_VERSION_MINOR,XERCES_VERSION_REVISION)>
00031 {
00032 public:
00033         CXMLDOMParseError()
00034                 :m_Code          (0)
00035                 ,m_url           (_T(""))
00036                 ,m_Reason        (_T(""))
00037                 ,m_Source        (_T(""))
00038                 ,m_LineNumber(0)
00039                 ,m_LinePos       (0)
00040                 ,m_FilePos       (0)
00041         {}
00042 
00043         HRESULT FinalConstruct();
00044         void    FinalRelease(); 
00045 
00046 DECLARE_NOT_AGGREGATABLE(CXMLDOMParseError)
00047 
00048 DECLARE_PROTECT_FINAL_CONSTRUCT()
00049 
00050 BEGIN_COM_MAP(CXMLDOMParseError)
00051         COM_INTERFACE_ENTRY(IXMLDOMParseError)
00052         COM_INTERFACE_ENTRY(IDispatch)
00053 END_COM_MAP()
00054 
00055         
00056         STDMETHOD(get_errorCode)( long  *errorCode);
00057     STDMETHOD(get_url)( BSTR  *urlString);
00058     STDMETHOD(get_reason)( BSTR  *reasonString);
00059     STDMETHOD(get_srcText)( BSTR  *sourceString);
00060     STDMETHOD(get_line)( long  *lineNumber);
00061     STDMETHOD(get_linepos)( long  *linePosition);
00062     STDMETHOD(get_filepos)( long  *filePosition);
00063 
00064         void SetData(long code,
00065                                  const _bstr_t &url,
00066                                  const _bstr_t &reason,
00067                                  const _bstr_t &source,
00068                                  long  lineNumber,
00069                                  long  linePos,
00070                                  long  filePos);
00071         void Reset();
00072 
00073 private:
00074 
00075         long    m_Code;
00076         _bstr_t m_url;
00077         _bstr_t m_Reason;
00078         _bstr_t m_Source;
00079         long    m_LineNumber;
00080         long    m_LinePos;
00081         long    m_FilePos;
00082 
00083         CComCriticalSection     m_CS;
00084 };
00085 
00086 typedef CComObject<CXMLDOMParseError> CXMLDOMParseErrorObj;
00087 
00088 #endif // ___xmldomparseerror_h___