XMLDOMParseError.cpp
上传用户:huihehuasu
上传日期:2007-01-10
资源大小:6948k
文件大小:5k
源码类别:

xml/soap/webservice

开发平台:

C/C++

  1. /*
  2.  * The Apache Software License, Version 1.1
  3.  * 
  4.  * Copyright (c) 1999-2000 The Apache Software Foundation.  All rights
  5.  * reserved.
  6.  * 
  7.  * Redistribution and use in source and binary forms, with or without
  8.  * modification, are permitted provided that the following conditions
  9.  * are met:
  10.  * 
  11.  * 1. Redistributions of source code must retain the above copyright
  12.  *    notice, this list of conditions and the following disclaimer. 
  13.  * 
  14.  * 2. Redistributions in binary form must reproduce the above copyright
  15.  *    notice, this list of conditions and the following disclaimer in
  16.  *    the documentation and/or other materials provided with the
  17.  *    distribution.
  18.  * 
  19.  * 3. The end-user documentation included with the redistribution,
  20.  *    if any, must include the following acknowledgment:  
  21.  *       "This product includes software developed by the
  22.  *        Apache Software Foundation (http://www.apache.org/)."
  23.  *    Alternately, this acknowledgment may appear in the software itself,
  24.  *    if and wherever such third-party acknowledgments normally appear.
  25.  * 
  26.  * 4. The names "Xerces" and "Apache Software Foundation" must
  27.  *    not be used to endorse or promote products derived from this
  28.  *    software without prior written permission. For written 
  29.  *    permission, please contact apache@apache.org.
  30.  * 
  31.  * 5. Products derived from this software may not be called "Apache",
  32.  *    nor may "Apache" appear in their name, without prior written
  33.  *    permission of the Apache Software Foundation.
  34.  * 
  35.  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  36.  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  37.  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  38.  * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  39.  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  40.  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  41.  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  42.  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  43.  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  44.  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  45.  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  46.  * SUCH DAMAGE.
  47.  * ====================================================================
  48.  * 
  49.  * This software consists of voluntary contributions made by many
  50.  * individuals on behalf of the Apache Software Foundation, and was
  51.  * originally based on software copyright (c) 1999, International
  52.  * Business Machines, Inc., http://www.ibm.com .  For more information
  53.  * on the Apache Software Foundation, please see
  54.  * <http://www.apache.org/>.
  55.  */
  56. /*
  57.  * $Log: XMLDOMParseError.cpp,v $
  58.  * Revision 1.2  2000/03/30 02:00:10  abagchi
  59.  * Initial checkin of working code with Copyright Notice
  60.  *
  61.  */
  62. #include "stdafx.h"
  63. #include "xml4com.h"
  64. #include "XMLDOMParseError.h"
  65. HRESULT CXMLDOMParseError::FinalConstruct()
  66. {
  67. m_CS.Init();
  68. return S_OK;
  69. }
  70. void CXMLDOMParseError::FinalRelease()
  71. {
  72. m_CS.Term(); 
  73. }
  74. void CXMLDOMParseError::SetData( long code,
  75.  const _bstr_t &url,
  76.  const _bstr_t &reason,
  77.  const _bstr_t &source,
  78.  long  lineNumber,
  79.  long  linePos,
  80.  long  filePos)
  81. {
  82. m_CS.Lock(); 
  83. m_Code = code;
  84. m_url = url;
  85. m_Reason = reason;
  86. m_Source = source;
  87. m_LineNumber = lineNumber;
  88. m_LinePos = linePos;
  89. m_FilePos = filePos;
  90. m_CS.Unlock(); 
  91. }
  92. void CXMLDOMParseError::Reset()
  93. {
  94. m_CS.Lock(); 
  95. m_Code = 0;
  96. m_url = _T("");
  97. m_Reason = _T("");
  98. m_Source = _T("");
  99. m_LineNumber = 0;
  100. m_LinePos = 0;
  101. m_FilePos = 0;
  102. m_CS.Unlock(); 
  103. }
  104. // IXMLDOMParseError methods
  105. STDMETHODIMP CXMLDOMParseError::get_errorCode(long  *pVal)
  106. {
  107. ATLTRACE(_T("CXMLDOMParseError::get_errorCoden"));
  108. if (NULL == pVal)
  109. return E_POINTER;
  110. m_CS.Lock(); 
  111. *pVal = m_Code;
  112. m_CS.Unlock(); 
  113. return S_OK;
  114. }
  115. STDMETHODIMP CXMLDOMParseError::get_url(BSTR  *pVal)
  116. {
  117. ATLTRACE(_T("CXMLDOMParseError::get_urln"));
  118. if (NULL == pVal)
  119. return E_POINTER;
  120. m_CS.Lock(); 
  121. *pVal = m_url.copy();
  122. m_CS.Unlock(); 
  123. return S_OK;
  124. }
  125. STDMETHODIMP CXMLDOMParseError::get_reason(BSTR  *pVal)
  126. {
  127. ATLTRACE(_T("CXMLDOMParseError::get_reasonn"));
  128. if (NULL == pVal)
  129. return E_POINTER;
  130. m_CS.Lock(); 
  131. *pVal = m_Reason.copy();
  132. m_CS.Unlock(); 
  133. return S_OK;
  134. }
  135. STDMETHODIMP CXMLDOMParseError::get_srcText(BSTR  *pVal)
  136. {
  137. ATLTRACE(_T("CXMLDOMParseError::get_srcTextn"));
  138. if (NULL == pVal)
  139. return E_POINTER;
  140. m_CS.Lock(); 
  141. *pVal = m_Source.copy();
  142. m_CS.Unlock(); 
  143. return S_OK;
  144. }
  145. STDMETHODIMP CXMLDOMParseError::get_line(long  *pVal)
  146. {
  147. ATLTRACE(_T("CXMLDOMParseError::get_linen"));
  148. if (NULL == pVal)
  149. return E_POINTER;
  150. m_CS.Lock(); 
  151. *pVal = m_LineNumber;
  152. m_CS.Unlock(); 
  153. return S_OK;
  154. }
  155. STDMETHODIMP CXMLDOMParseError::get_linepos(long  *pVal)
  156. {
  157. ATLTRACE(_T("CXMLDOMParseError::get_lineposn"));
  158. if (NULL == pVal)
  159. return E_POINTER;
  160. m_CS.Lock(); 
  161. *pVal = m_LinePos;
  162. m_CS.Unlock(); 
  163. return S_OK;
  164. }
  165. STDMETHODIMP CXMLDOMParseError::get_filepos(long  *pVal)
  166. {
  167. ATLTRACE(_T("CXMLDOMParseError::get_fileposn"));
  168. if (NULL == pVal)
  169. return E_POINTER;
  170. m_CS.Lock(); 
  171. *pVal = m_FilePos;
  172. m_CS.Unlock(); 
  173. return S_OK;
  174. }