• Classes
  • Modules
  • Namespaces
  • Files
  • Related Pages
  • File List
  • File Members

IXMLDOMCharacterDataImpl.h

Go to the documentation of this file.
00001 /*
00002  * Licensed to the Apache Software Foundation (ASF) under one or more
00003  * contributor license agreements.  See the NOTICE file distributed with
00004  * this work for additional information regarding copyright ownership.
00005  * The ASF licenses this file to You under the Apache License, Version 2.0
00006  * (the "License"); you may not use this file except in compliance with
00007  * the License.  You may obtain a copy of the License at
00008  * 
00009  *      http://www.apache.org/licenses/LICENSE-2.0
00010  * 
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 /*
00019  * $Id: IXMLDOMCharacterDataImpl.h 568078 2007-08-21 11:43:25Z amassari $
00020  */
00021 
00022 #ifndef ___ixmldomcharacterdataimpl_h___
00023 #define ___ixmldomcharacterdataimpl_h___
00024 
00025 #include "IXMLDOMNodeImpl.h"
00026 XERCES_CPP_NAMESPACE_USE
00027 
00028 template <class T, const IID* piid, class tihclass = CComTypeInfoHolder>
00029 class ATL_NO_VTABLE IXMLDOMCharacterDataImpl: public IXMLDOMNodeImpl<T,piid,tihclass>
00030 {
00031 public:
00032 
00033         virtual DOMCharacterData* get_DOMCharacterData() = 0; 
00034         virtual DOMNode* get_DOMNode() { return get_DOMCharacterData(); } 
00035 
00036         // IXMLDOMCharacterData 
00037 
00038 STDMETHOD(get_data)(BSTR  *pVal)
00039 {
00040         ATLTRACE(_T("IXMLDOMCharacterDataImpl::get_data\n"));
00041 
00042         if (NULL == pVal)
00043                 return E_POINTER;
00044 
00045         *pVal = NULL;
00046         
00047         try
00048         {
00049                 *pVal = SysAllocString(get_DOMCharacterData()->getData());
00050         }
00051         catch(...)
00052         {
00053                 return E_FAIL;
00054         }
00055         
00056 
00057         return S_OK;
00058 }
00059 
00060 STDMETHOD(put_data)(BSTR newVal)
00061 {
00062         ATLTRACE(_T("IXMLDOMCharacterDataImpl::put_data\n"));
00063 
00064         try
00065         {
00066                 get_DOMCharacterData()->setData(newVal);
00067         }
00068         catch(...)
00069         {
00070                 return E_FAIL;
00071         }
00072         
00073 
00074         return S_OK;
00075 }
00076 
00077 STDMETHOD(get_length)(long  *pVal)
00078 {
00079         ATLTRACE(_T("IXMLDOMCharacterDataImpl::get_length\n"));
00080 
00081         if (NULL == pVal)
00082                 return E_POINTER;
00083 
00084         *pVal = 0;
00085 
00086         try
00087         {
00088                 *pVal = get_DOMCharacterData()->getLength();
00089         }
00090         catch(...)
00091         {
00092                 return E_FAIL;
00093         }
00094 
00095         return S_OK;
00096 }
00097 
00098 STDMETHOD(substringData)(long offset, long count, BSTR  *data)
00099 {
00100         ATLTRACE(_T("IXMLDOMCharacterDataImpl::substringData\n"));
00101 
00102         if (NULL == data)
00103                 return E_POINTER;
00104 
00105         *data = NULL;
00106 
00107         try
00108         {
00109         *data = SysAllocString(get_DOMCharacterData()->substringData(offset, count));
00110         }
00111         catch(...)
00112         {
00113                 return E_FAIL;
00114         }
00115         
00116         return S_OK;
00117 }
00118 
00119 STDMETHOD(appendData)(BSTR data)
00120 {
00121         ATLTRACE(_T("IXMLDOMCharacterDataImpl::appendData\n"));
00122 
00123         try
00124         {
00125                 get_DOMCharacterData()->appendData(data);
00126         }
00127         catch(...)
00128         {
00129                 return E_FAIL;
00130         }
00131         
00132 
00133         return S_OK;
00134 }
00135 
00136 STDMETHOD(insertData)(long offset, BSTR data)
00137 {
00138         ATLTRACE(_T("IXMLDOMCharacterDataImpl::insertData\n"));
00139 
00140         try
00141         {
00142                 get_DOMCharacterData()->insertData(offset, data);
00143         }
00144         catch(...)
00145         {
00146                 return E_FAIL;
00147         }
00148         
00149 
00150         return S_OK;
00151 }
00152 
00153 STDMETHOD(deleteData)(long offset, long count)
00154 {
00155         ATLTRACE(_T("IXMLDOMCharacterDataImpl::deleteData\n"));
00156 
00157         try
00158         {
00159                 get_DOMCharacterData()->deleteData(offset, count);
00160         }
00161         catch(...)
00162         {
00163                 return E_FAIL;
00164         }
00165         
00166 
00167         return S_OK;
00168 }
00169 
00170 STDMETHOD(replaceData)(long offset, long count, BSTR data)
00171 {
00172         ATLTRACE(_T("IXMLDOMCharacterDataImpl::replaceData\n"));
00173 
00174         try
00175         {
00176                 get_DOMCharacterData()->replaceData(offset, count, data);
00177         }
00178         catch(...)
00179         {
00180                 return E_FAIL;
00181         }
00182         
00183         return S_OK;
00184 }
00185 
00186 };
00187 
00188 #endif // ___ixmldomcharacterdataimpl_h___

Generated on Thu Jan 12 2012 23:13:51 for ACS-10.0 C++ API by  doxygen 1.7.0