You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by an...@locus.apache.org on 2000/06/03 02:29:27 UTC

cvs commit: xml-xerces/c/src/com IXMLDOMNodeImpl.h IXMLDOMNodeImpl.inl StdAfx.cpp StdAfx.h XMLDOMAttribute.h XMLDOMCDATASection.h XMLDOMComment.h XMLDOMDocument.cpp XMLDOMDocument.h XMLDOMDocumentFragment.h XMLDOMDocumentType.h XMLDOMElement.h XMLDOMEntity.h XMLDOMEntityReference.h XMLDOMImplementation.h XMLDOMNamedNodeMap.h XMLDOMNodeList.h XMLDOMNotation.h XMLDOMParseError.h XMLDOMProcessingInstruction.h XMLDOMText.h XMLDOMUtil.cpp XMLDOMUtil.h XMLHTTPRequest.cpp XMLHttpRequest.h xml4com.cpp xml4com.idl xml4com.rc

andyh       00/06/02 17:29:25

  Modified:    c/src/com IXMLDOMNodeImpl.h IXMLDOMNodeImpl.inl StdAfx.cpp
                        StdAfx.h XMLDOMAttribute.h XMLDOMCDATASection.h
                        XMLDOMComment.h XMLDOMDocument.cpp XMLDOMDocument.h
                        XMLDOMDocumentFragment.h XMLDOMDocumentType.h
                        XMLDOMElement.h XMLDOMEntity.h
                        XMLDOMEntityReference.h XMLDOMImplementation.h
                        XMLDOMNamedNodeMap.h XMLDOMNodeList.h
                        XMLDOMNotation.h XMLDOMParseError.h
                        XMLDOMProcessingInstruction.h XMLDOMText.h
                        XMLDOMUtil.cpp XMLDOMUtil.h XMLHTTPRequest.cpp
                        XMLHttpRequest.h xml4com.cpp xml4com.idl xml4com.rc
  Log:
  COM Wrapper changes from Curt Arnold
  
  Revision  Changes    Path
  1.3       +19 -1     xml-xerces/c/src/com/IXMLDOMNodeImpl.h
  
  Index: IXMLDOMNodeImpl.h
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/com/IXMLDOMNodeImpl.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- IXMLDOMNodeImpl.h	2000/03/30 02:00:12	1.2
  +++ IXMLDOMNodeImpl.h	2000/06/03 00:28:54	1.3
  @@ -56,6 +56,9 @@
   
   /*
    * $Log: IXMLDOMNodeImpl.h,v $
  + * Revision 1.3  2000/06/03 00:28:54  andyh
  + * COM Wrapper changes from Curt Arnold
  + *
    * Revision 1.2  2000/03/30 02:00:12  abagchi
    * Initial checkin of working code with Copyright Notice
    *
  @@ -63,6 +66,21 @@
   
   #ifndef ___ixmldomnodeimpl_h___
   #define ___ixmldomnodeimpl_h___
  +
  +
  +//
  +//   This macro is defined in MSXML.H's compatible with IE5
  +//      and not defined in those from IE4.
  +//
  +//   To correct, install a IE5 or later version of the Microsoft Platform SDK
  +//      and add \Program Files\Microsoft Platform SDK\Include as the first entry
  +//      on the Directories tab on the dialog displayed after selecting Tools Options
  +//      from the Visual Studio IDE.
  +//
  +#ifndef __IXMLDOMNode_INTERFACE_DEFINED__
  +#error "xerces-dom requires an MSXML.H compatible with IE5 or later.  See comments for directions to correct this problem."
  +#endif
  +
   
   template <class T, const IID* piid, const GUID* plibid = &CComModule::m_libid, WORD wMajor = 1,
   WORD wMinor = 0, class tihclass = CComTypeInfoHolder>
  
  
  
  1.3       +45 -6     xml-xerces/c/src/com/IXMLDOMNodeImpl.inl
  
  Index: IXMLDOMNodeImpl.inl
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/com/IXMLDOMNodeImpl.inl,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- IXMLDOMNodeImpl.inl	2000/03/30 02:00:12	1.2
  +++ IXMLDOMNodeImpl.inl	2000/06/03 00:28:54	1.3
  @@ -56,6 +56,9 @@
   
   /*
    * $Log: IXMLDOMNodeImpl.inl,v $
  + * Revision 1.3  2000/06/03 00:28:54  andyh
  + * COM Wrapper changes from Curt Arnold
  + *
    * Revision 1.2  2000/03/30 02:00:12  abagchi
    * Initial checkin of working code with Copyright Notice
    *
  @@ -63,6 +66,7 @@
   
   
   #include <dom/DOM_Node.hpp>
  +#include <dom/DOM_Document.hpp>
   #include "XMLDOMNodeList.h"
   #include "XMLDOMNamedNodeMap.h"
   #include "XMLDOMUtil.h"
  @@ -221,12 +225,19 @@
   	if (NULL == pVal)
   		return E_POINTER;
   
  +	if(*pVal) (*pVal)->Release();
   	*pVal = NULL;
  +
   	HRESULT hr = S_OK;
   
   	try
   	{
  -		hr = wrapNode(m_pIXMLDOMDocument,get_DOM_Node().getFirstChild(),IID_IXMLDOMNode, reinterpret_cast<LPVOID *> (pVal));
  +		DOM_Node n = get_DOM_Node().getFirstChild();
  +		//
  +		//   returns Nothing if no children
  +		//
  +		if(!n.isNull())
  +			hr = wrapNode(m_pIXMLDOMDocument,n,IID_IXMLDOMNode, reinterpret_cast<LPVOID *> (pVal));
   	}
   	catch(...)
   	{
  @@ -246,12 +257,16 @@
   	if (NULL == pVal)
   		return E_POINTER;
   
  +	if(*pVal) (*pVal)->Release();
   	*pVal = NULL;
  +
   	HRESULT hr = S_OK;
   
   	try
   	{
  -		hr = wrapNode(m_pIXMLDOMDocument,get_DOM_Node().getLastChild(),IID_IXMLDOMNode, reinterpret_cast<LPVOID *> (pVal));
  +		DOM_Node n = get_DOM_Node().getLastChild();
  +		if(!n.isNull())
  +			hr = wrapNode(m_pIXMLDOMDocument,n,IID_IXMLDOMNode, reinterpret_cast<LPVOID *> (pVal));
   	}
   	catch(...)
   	{
  @@ -271,12 +286,15 @@
   	if (NULL == pVal)
   		return E_POINTER;
   
  +	if(*pVal) (*pVal)->Release();
   	*pVal = NULL;
   	HRESULT hr = S_OK;
   
   	try
   	{
  -		hr = wrapNode(m_pIXMLDOMDocument,get_DOM_Node().getPreviousSibling(),IID_IXMLDOMNode, reinterpret_cast<LPVOID *> (pVal));
  +		DOM_Node n = get_DOM_Node().getPreviousSibling();
  +		if(!n.isNull())
  +			hr = wrapNode(m_pIXMLDOMDocument,n,IID_IXMLDOMNode, reinterpret_cast<LPVOID *> (pVal));
   	}
   	catch(...)
   	{
  @@ -296,12 +314,16 @@
   	if (NULL == pVal)
   		return E_POINTER;
   
  +	if(*pVal) (*pVal)->Release();
   	*pVal = NULL;
  +
   	HRESULT hr = S_OK;
   
   	try
   	{
  -		hr = wrapNode(m_pIXMLDOMDocument,get_DOM_Node().getNextSibling(),IID_IXMLDOMNode, reinterpret_cast<LPVOID *> (pVal));
  +		DOM_Node n = get_DOM_Node().getNextSibling();
  +		if(!n.isNull())
  +			hr = wrapNode(m_pIXMLDOMDocument,n,IID_IXMLDOMNode, reinterpret_cast<LPVOID *> (pVal));
   	}
   	catch(...)
   	{
  @@ -666,7 +688,24 @@
   
   	try
   	{
  -		get_DOM_Node().setNodeValue(newVal);
  +		if(NODE_ELEMENT == type)
  +		{
  +			//
  +			//   remove all child elements
  +			//
  +			DOM_Node elem = get_DOM_Node();
  +			DOM_Node child = elem.getLastChild();
  +			while(!child.isNull())
  +			{
  +				elem.removeChild(child);
  +				child = elem.getLastChild();
  +			}
  +			
  +			DOM_Document doc = elem.getOwnerDocument();
  +			elem.appendChild(doc.createTextNode(newVal));
  +		}
  +		else
  +			get_DOM_Node().setNodeValue(newVal);
   	}
   	catch(...)
   	{
  
  
  
  1.2       +14 -0     xml-xerces/c/src/com/StdAfx.cpp
  
  Index: StdAfx.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/com/StdAfx.cpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- StdAfx.cpp	2000/03/10 22:45:40	1.1
  +++ StdAfx.cpp	2000/06/03 00:28:55	1.2
  @@ -10,3 +10,17 @@
   #endif
   
   #include <atlimpl.cpp>
  +
  +//
  +//   This macro is defined in MSXML.H's compatible with IE5
  +//      and not defined in those from IE4.
  +//
  +//   To correct, install a IE5 or later version of the Microsoft Platform SDK
  +//      and add \Program Files\Microsoft Platform SDK\Include as the first entry
  +//      on the Directories tab on the dialog displayed after selecting Tools Options
  +//      from the Visual Studio IDE.
  +//
  +#ifndef __IXMLDOMNode_INTERFACE_DEFINED__
  +#error "xerces-dom requires an MSXML.H compatible with IE5 or later.  See comments for directions to correct this problem."
  +#endif
  +
  
  
  
  1.3       +28 -1     xml-xerces/c/src/com/StdAfx.h
  
  Index: StdAfx.h
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/com/StdAfx.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- StdAfx.h	2000/03/30 02:00:12	1.2
  +++ StdAfx.h	2000/06/03 00:28:55	1.3
  @@ -56,6 +56,9 @@
   
   /*
    * $Log: StdAfx.h,v $
  + * Revision 1.3  2000/06/03 00:28:55  andyh
  + * COM Wrapper changes from Curt Arnold
  + *
    * Revision 1.2  2000/03/30 02:00:12  abagchi
    * Initial checkin of working code with Copyright Notice
    *
  @@ -78,6 +81,16 @@
   #endif
   #define _ATL_APARTMENT_THREADED
   
  +#define DOMDocument _MSXMLDOMDocument
  +#define XMLHTTPRequest _MSXMLHTTPRequest
  +#define CLSID_DOMDocument CLSID_MSDOMDocument
  +#define CLSID_XMLHTTPRequest CLSID_MSXMLHTTPRequest
  +
  +//
  +//   suppress MSXML.H since we duplicate some of the information
  +//      in xml4com.h
  +//
  +
   #include <atlbase.h>
   //You may derive a class from CComModule and use it if you want to override
   //something, but do not change the name of _Module
  @@ -91,7 +104,21 @@
   #include <process.h>
   #include <Wininet.h>
   
  +#undef DOMDocument
  +#undef XMLHTTPRequest
  +#undef CLSID_DOMDocument
  +#undef CLSID_XMLHTTPRequest
  +
  +//
  +//   These are defined in xml4dom_i.c which is included in xml4dom.cpp
  +//
  +//
  +extern const IID CLSID_DOMDocument;
  +extern const IID CLSID_XMLHTTPRequest;
  +extern const IID LIBID_Xerces;
  +
   const long	MSG_READY_STATE_CHANGE = WM_APP + 0x0001;
  +
   
   //{{AFX_INSERT_LOCATION}}
   // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  
  
  
  1.3       +5 -2      xml-xerces/c/src/com/XMLDOMAttribute.h
  
  Index: XMLDOMAttribute.h
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/com/XMLDOMAttribute.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XMLDOMAttribute.h	2000/03/30 02:00:12	1.2
  +++ XMLDOMAttribute.h	2000/06/03 00:28:55	1.3
  @@ -56,6 +56,9 @@
   
   /*
    * $Log: XMLDOMAttribute.h,v $
  + * Revision 1.3  2000/06/03 00:28:55  andyh
  + * COM Wrapper changes from Curt Arnold
  + *
    * Revision 1.2  2000/03/30 02:00:12  abagchi
    * Initial checkin of working code with Copyright Notice
    *
  @@ -69,7 +72,7 @@
   
   class ATL_NO_VTABLE CXMLDOMAttribute : 
   	public CComObjectRootEx<CComSingleThreadModel>,
  -	public IXMLDOMNodeImpl<IXMLDOMAttribute, &IID_IXMLDOMAttribute, &LIBID_IBMXMLLib>
  +	public IXMLDOMNodeImpl<IXMLDOMAttribute, &IID_IXMLDOMAttribute, &LIBID_Xerces>
   {
   public:
   	CXMLDOMAttribute()
  
  
  
  1.3       +5 -2      xml-xerces/c/src/com/XMLDOMCDATASection.h
  
  Index: XMLDOMCDATASection.h
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/com/XMLDOMCDATASection.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XMLDOMCDATASection.h	2000/03/30 02:00:11	1.2
  +++ XMLDOMCDATASection.h	2000/06/03 00:28:55	1.3
  @@ -56,6 +56,9 @@
   
   /*
    * $Log: XMLDOMCDATASection.h,v $
  + * Revision 1.3  2000/06/03 00:28:55  andyh
  + * COM Wrapper changes from Curt Arnold
  + *
    * Revision 1.2  2000/03/30 02:00:11  abagchi
    * Initial checkin of working code with Copyright Notice
    *
  @@ -69,7 +72,7 @@
   
   class ATL_NO_VTABLE CXMLDOMCDATASection : 
   	public CComObjectRootEx<CComSingleThreadModel>,
  -	public IXMLDOMTextImpl<IXMLDOMCDATASection, &IID_IXMLDOMCDATASection, &LIBID_IBMXMLLib>
  +	public IXMLDOMTextImpl<IXMLDOMCDATASection, &IID_IXMLDOMCDATASection, &LIBID_Xerces>
   {
   public:
   	CXMLDOMCDATASection()
  
  
  
  1.3       +5 -2      xml-xerces/c/src/com/XMLDOMComment.h
  
  Index: XMLDOMComment.h
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/com/XMLDOMComment.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XMLDOMComment.h	2000/03/30 02:00:11	1.2
  +++ XMLDOMComment.h	2000/06/03 00:28:57	1.3
  @@ -56,6 +56,9 @@
   
   /*
    * $Log: XMLDOMComment.h,v $
  + * Revision 1.3  2000/06/03 00:28:57  andyh
  + * COM Wrapper changes from Curt Arnold
  + *
    * Revision 1.2  2000/03/30 02:00:11  abagchi
    * Initial checkin of working code with Copyright Notice
    *
  @@ -69,7 +72,7 @@
   
   class ATL_NO_VTABLE CXMLDOMComment : 
   	public CComObjectRootEx<CComSingleThreadModel>,
  -	public IXMLDOMCharacterDataImpl<IXMLDOMComment, &IID_IXMLDOMComment, &LIBID_IBMXMLLib>
  +	public IXMLDOMCharacterDataImpl<IXMLDOMComment, &IID_IXMLDOMComment, &LIBID_Xerces>
   {
   public:
   	CXMLDOMComment()
  
  
  
  1.3       +23 -13    xml-xerces/c/src/com/XMLDOMDocument.cpp
  
  Index: XMLDOMDocument.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/com/XMLDOMDocument.cpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XMLDOMDocument.cpp	2000/03/30 02:00:11	1.2
  +++ XMLDOMDocument.cpp	2000/06/03 00:28:57	1.3
  @@ -56,6 +56,9 @@
   
   /*
    * $Log: XMLDOMDocument.cpp,v $
  + * Revision 1.3  2000/06/03 00:28:57  andyh
  + * COM Wrapper changes from Curt Arnold
  + *
    * Revision 1.2  2000/03/30 02:00:11  abagchi
    * Initial checkin of working code with Copyright Notice
    *
  @@ -83,6 +86,7 @@
   #include "XMLDOMAttribute.h"
   #include "XMLDOMEntityReference.h"
   #include "BindStatusCallback.h"
  +#include <dom/DocumentImpl.hpp>
   
   // I need to make sure the file is registered with long filenames
   HRESULT WINAPI CXMLDOMDocument::UpdateRegistry(BOOL bRegister)
  @@ -144,6 +148,9 @@
   	
   	m_pParseError->AddRef();
   	m_pIXMLDOMDocument = this;
  +
  +	m_Document = DOM_Document::createDocument();
  +
   	return hr;
   }
   
  @@ -183,7 +190,14 @@
   
   void CXMLDOMDocument::error(const SAXParseException& exception)
   {
  -	// ignore errors
  +	m_pParseError->SetData(1,
  +						   exception.getSystemId(),
  +						   exception.getMessage(),
  +						   _T(""),
  +						   exception.getLineNumber(),
  +						   exception.getColumnNumber(),
  +						   0);
  +	m_bParseError = true;
   }
   
   void CXMLDOMDocument::fatalError(const SAXParseException& exception)
  @@ -233,15 +247,8 @@
   
   STDMETHODIMP CXMLDOMDocument::InterfaceSupportsErrorInfo(REFIID riid)
   {
  -	static const IID* arr[] = 
  -	{
  -		&IID_IXMLDOMDocument
  -	};
  -	for (int i=0; i < sizeof(arr) / sizeof(arr[0]); i++)
  -	{
  -		if (InlineIsEqualGUID(*arr[i],riid))
  -			return S_OK;
  -	}
  +	if (IsEqualGUID(IID_IXMLDOMDocument,riid))
  +		return S_OK;
   	return S_FALSE;
   }
   
  @@ -348,7 +355,7 @@
   	try
   	{
   		elem = m_Document.getDocumentElement();
  -		if (NULL == newVal) {
  +		if (NULL == newVal && !elem.isNull()) {
   			m_Document.removeChild(elem);
   			return S_OK;
   		}
  @@ -373,7 +380,10 @@
   
   	try
   	{
  -		m_Document.replaceChild(*pNewValNode, elem);
  +		if(elem.isNull())
  +			m_Document.appendChild(*pNewValNode);
  +		else
  +			m_Document.replaceChild(*pNewValNode, elem);
   	}
   	catch(...)
   	{
  
  
  
  1.3       +7 -4      xml-xerces/c/src/com/XMLDOMDocument.h
  
  Index: XMLDOMDocument.h
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/com/XMLDOMDocument.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XMLDOMDocument.h	2000/03/30 02:00:11	1.2
  +++ XMLDOMDocument.h	2000/06/03 00:28:57	1.3
  @@ -56,6 +56,9 @@
   
   /*
    * $Log: XMLDOMDocument.h,v $
  + * Revision 1.3  2000/06/03 00:28:57  andyh
  + * COM Wrapper changes from Curt Arnold
  + *
    * Revision 1.2  2000/03/30 02:00:11  abagchi
    * Initial checkin of working code with Copyright Notice
    *
  @@ -77,14 +80,14 @@
   
   class ATL_NO_VTABLE CXMLDOMDocument : 
   	public CComObjectRootEx<CComSingleThreadModel>,
  -	public CComCoClass<CXMLDOMDocument, &CLSID_XMLDOMDocument>,
  +	public CComCoClass<CXMLDOMDocument, &CLSID_DOMDocument>,
   	public IObjectSafetyImpl<CXMLDOMDocument, INTERFACESAFE_FOR_UNTRUSTED_CALLER>,
  -	public IXMLDOMNodeImpl<IXMLDOMDocument, &IID_IXMLDOMDocument, &LIBID_IBMXMLLib>,
  +	public IXMLDOMNodeImpl<IXMLDOMDocument, &IID_IXMLDOMDocument, &LIBID_Xerces>,
   	public IObjectWithSiteImpl<CXMLDOMDocument>,
   	public ISupportErrorInfo,
   	public CProxyXMLDOMDocumentEvents< CXMLDOMDocument >,
   	public IConnectionPointContainerImpl<CXMLDOMDocument>,
  -	public IProvideClassInfo2Impl<&CLSID_XMLDOMDocument, &DIID_XMLDOMDocumentEvents, &LIBID_IBMXMLLib>,
  +	public IProvideClassInfo2Impl<&CLSID_DOMDocument, &DIID_XMLDOMDocumentEvents, &LIBID_Xerces>,
   	public CWindowImpl<CXMLDOMDocument, CWindow, CWinTraits<0,0> >,
   	ErrorHandler
   {
  
  
  
  1.3       +5 -2      xml-xerces/c/src/com/XMLDOMDocumentFragment.h
  
  Index: XMLDOMDocumentFragment.h
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/com/XMLDOMDocumentFragment.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XMLDOMDocumentFragment.h	2000/03/30 02:00:11	1.2
  +++ XMLDOMDocumentFragment.h	2000/06/03 00:28:58	1.3
  @@ -56,6 +56,9 @@
   
   /*
    * $Log: XMLDOMDocumentFragment.h,v $
  + * Revision 1.3  2000/06/03 00:28:58  andyh
  + * COM Wrapper changes from Curt Arnold
  + *
    * Revision 1.2  2000/03/30 02:00:11  abagchi
    * Initial checkin of working code with Copyright Notice
    *
  @@ -69,7 +72,7 @@
   
   class ATL_NO_VTABLE CXMLDOMDocumentFragment : 
   	public CComObjectRootEx<CComSingleThreadModel>,
  -	public IXMLDOMNodeImpl<IXMLDOMDocumentFragment, &IID_IXMLDOMDocumentFragment, &LIBID_IBMXMLLib>
  +	public IXMLDOMNodeImpl<IXMLDOMDocumentFragment, &IID_IXMLDOMDocumentFragment, &LIBID_Xerces>
   {
   public:
   	CXMLDOMDocumentFragment()
  
  
  
  1.3       +5 -2      xml-xerces/c/src/com/XMLDOMDocumentType.h
  
  Index: XMLDOMDocumentType.h
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/com/XMLDOMDocumentType.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XMLDOMDocumentType.h	2000/03/30 02:00:11	1.2
  +++ XMLDOMDocumentType.h	2000/06/03 00:28:58	1.3
  @@ -56,6 +56,9 @@
   
   /*
    * $Log: XMLDOMDocumentType.h,v $
  + * Revision 1.3  2000/06/03 00:28:58  andyh
  + * COM Wrapper changes from Curt Arnold
  + *
    * Revision 1.2  2000/03/30 02:00:11  abagchi
    * Initial checkin of working code with Copyright Notice
    *
  @@ -69,7 +72,7 @@
   
   class ATL_NO_VTABLE CXMLDOMDocumentType : 
   	public CComObjectRootEx<CComSingleThreadModel>,
  -	public IXMLDOMNodeImpl<IXMLDOMDocumentType, &IID_IXMLDOMDocumentType, &LIBID_IBMXMLLib>
  +	public IXMLDOMNodeImpl<IXMLDOMDocumentType, &IID_IXMLDOMDocumentType, &LIBID_Xerces>
   {
   public:
   	CXMLDOMDocumentType()
  
  
  
  1.3       +5 -2      xml-xerces/c/src/com/XMLDOMElement.h
  
  Index: XMLDOMElement.h
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/com/XMLDOMElement.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XMLDOMElement.h	2000/03/30 02:00:11	1.2
  +++ XMLDOMElement.h	2000/06/03 00:28:59	1.3
  @@ -56,6 +56,9 @@
   
   /*
    * $Log: XMLDOMElement.h,v $
  + * Revision 1.3  2000/06/03 00:28:59  andyh
  + * COM Wrapper changes from Curt Arnold
  + *
    * Revision 1.2  2000/03/30 02:00:11  abagchi
    * Initial checkin of working code with Copyright Notice
    *
  @@ -69,7 +72,7 @@
   
   class ATL_NO_VTABLE CXMLDOMElement : 
   	public CComObjectRootEx<CComSingleThreadModel>,
  -	public IXMLDOMNodeImpl<IXMLDOMElement, &IID_IXMLDOMElement, &LIBID_IBMXMLLib>
  +	public IXMLDOMNodeImpl<IXMLDOMElement, &IID_IXMLDOMElement, &LIBID_Xerces>
   {
   public:
   	CXMLDOMElement()
  
  
  
  1.3       +5 -2      xml-xerces/c/src/com/XMLDOMEntity.h
  
  Index: XMLDOMEntity.h
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/com/XMLDOMEntity.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XMLDOMEntity.h	2000/03/30 02:00:11	1.2
  +++ XMLDOMEntity.h	2000/06/03 00:28:59	1.3
  @@ -56,6 +56,9 @@
   
   /*
    * $Log: XMLDOMEntity.h,v $
  + * Revision 1.3  2000/06/03 00:28:59  andyh
  + * COM Wrapper changes from Curt Arnold
  + *
    * Revision 1.2  2000/03/30 02:00:11  abagchi
    * Initial checkin of working code with Copyright Notice
    *
  @@ -69,7 +72,7 @@
   
   class ATL_NO_VTABLE CXMLDOMEntity : 
   	public CComObjectRootEx<CComSingleThreadModel>,
  -	public IXMLDOMNodeImpl<IXMLDOMEntity, &IID_IXMLDOMEntity, &LIBID_IBMXMLLib>
  +	public IXMLDOMNodeImpl<IXMLDOMEntity, &IID_IXMLDOMEntity, &LIBID_Xerces>
   {
   public:
   	CXMLDOMEntity()
  
  
  
  1.3       +5 -2      xml-xerces/c/src/com/XMLDOMEntityReference.h
  
  Index: XMLDOMEntityReference.h
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/com/XMLDOMEntityReference.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XMLDOMEntityReference.h	2000/03/30 02:00:10	1.2
  +++ XMLDOMEntityReference.h	2000/06/03 00:28:59	1.3
  @@ -56,6 +56,9 @@
   
   /*
    * $Log: XMLDOMEntityReference.h,v $
  + * Revision 1.3  2000/06/03 00:28:59  andyh
  + * COM Wrapper changes from Curt Arnold
  + *
    * Revision 1.2  2000/03/30 02:00:10  abagchi
    * Initial checkin of working code with Copyright Notice
    *
  @@ -69,7 +72,7 @@
   
   class ATL_NO_VTABLE CXMLDOMEntityReference : 
   	public CComObjectRootEx<CComSingleThreadModel>,
  -	public IXMLDOMNodeImpl<IXMLDOMEntityReference, &IID_IXMLDOMEntityReference, &LIBID_IBMXMLLib>
  +	public IXMLDOMNodeImpl<IXMLDOMEntityReference, &IID_IXMLDOMEntityReference, &LIBID_Xerces>
   {
   public:
   	CXMLDOMEntityReference()
  
  
  
  1.3       +5 -2      xml-xerces/c/src/com/XMLDOMImplementation.h
  
  Index: XMLDOMImplementation.h
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/com/XMLDOMImplementation.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XMLDOMImplementation.h	2000/03/30 02:00:10	1.2
  +++ XMLDOMImplementation.h	2000/06/03 00:28:59	1.3
  @@ -56,6 +56,9 @@
   
   /*
    * $Log: XMLDOMImplementation.h,v $
  + * Revision 1.3  2000/06/03 00:28:59  andyh
  + * COM Wrapper changes from Curt Arnold
  + *
    * Revision 1.2  2000/03/30 02:00:10  abagchi
    * Initial checkin of working code with Copyright Notice
    *
  @@ -68,7 +71,7 @@
   
   class ATL_NO_VTABLE CXMLDOMImplementation : 
   	public CComObjectRootEx<CComSingleThreadModel>,
  -	public IDispatchImpl<IXMLDOMImplementation, &IID_IXMLDOMImplementation, &LIBID_IBMXMLLib>
  +	public IDispatchImpl<IXMLDOMImplementation, &IID_IXMLDOMImplementation, &LIBID_Xerces>
   {
   public:
   	CXMLDOMImplementation()
  
  
  
  1.3       +5 -2      xml-xerces/c/src/com/XMLDOMNamedNodeMap.h
  
  Index: XMLDOMNamedNodeMap.h
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/com/XMLDOMNamedNodeMap.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XMLDOMNamedNodeMap.h	2000/03/30 02:00:10	1.2
  +++ XMLDOMNamedNodeMap.h	2000/06/03 00:29:00	1.3
  @@ -56,6 +56,9 @@
   
   /*
    * $Log: XMLDOMNamedNodeMap.h,v $
  + * Revision 1.3  2000/06/03 00:29:00  andyh
  + * COM Wrapper changes from Curt Arnold
  + *
    * Revision 1.2  2000/03/30 02:00:10  abagchi
    * Initial checkin of working code with Copyright Notice
    *
  @@ -69,7 +72,7 @@
   
   class ATL_NO_VTABLE CXMLDOMNamedNodeMap : 
   	public CComObjectRootEx<CComSingleThreadModel>,
  -	public IDispatchImpl<IXMLDOMNamedNodeMap, &IID_IXMLDOMNamedNodeMap, &LIBID_IBMXMLLib>,
  +	public IDispatchImpl<IXMLDOMNamedNodeMap, &IID_IXMLDOMNamedNodeMap, &LIBID_Xerces>,
   	public NodeContainerImpl<DOM_NamedNodeMap>
   {
   public:
  
  
  
  1.3       +5 -2      xml-xerces/c/src/com/XMLDOMNodeList.h
  
  Index: XMLDOMNodeList.h
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/com/XMLDOMNodeList.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XMLDOMNodeList.h	2000/03/30 02:00:10	1.2
  +++ XMLDOMNodeList.h	2000/06/03 00:29:00	1.3
  @@ -56,6 +56,9 @@
   
   /*
    * $Log: XMLDOMNodeList.h,v $
  + * Revision 1.3  2000/06/03 00:29:00  andyh
  + * COM Wrapper changes from Curt Arnold
  + *
    * Revision 1.2  2000/03/30 02:00:10  abagchi
    * Initial checkin of working code with Copyright Notice
    *
  @@ -69,7 +72,7 @@
   
   class ATL_NO_VTABLE CXMLDOMNodeList : 
   	public CComObjectRootEx<CComSingleThreadModel>,
  -	public IDispatchImpl<IXMLDOMNodeList, &IID_IXMLDOMNodeList, &LIBID_IBMXMLLib>,
  +	public IDispatchImpl<IXMLDOMNodeList, &IID_IXMLDOMNodeList, &LIBID_Xerces>,
   	public NodeContainerImpl<DOM_NodeList>
   {
   public:
  
  
  
  1.3       +5 -2      xml-xerces/c/src/com/XMLDOMNotation.h
  
  Index: XMLDOMNotation.h
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/com/XMLDOMNotation.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XMLDOMNotation.h	2000/03/30 02:00:10	1.2
  +++ XMLDOMNotation.h	2000/06/03 00:29:00	1.3
  @@ -56,6 +56,9 @@
   
   /*
    * $Log: XMLDOMNotation.h,v $
  + * Revision 1.3  2000/06/03 00:29:00  andyh
  + * COM Wrapper changes from Curt Arnold
  + *
    * Revision 1.2  2000/03/30 02:00:10  abagchi
    * Initial checkin of working code with Copyright Notice
    *
  @@ -69,7 +72,7 @@
   
   class ATL_NO_VTABLE CXMLDOMNotation : 
   	public CComObjectRootEx<CComSingleThreadModel>,
  -	public IXMLDOMNodeImpl<IXMLDOMNotation, &IID_IXMLDOMNotation, &LIBID_IBMXMLLib>
  +	public IXMLDOMNodeImpl<IXMLDOMNotation, &IID_IXMLDOMNotation, &LIBID_Xerces>
   {
   public:
   	CXMLDOMNotation()
  
  
  
  1.3       +5 -2      xml-xerces/c/src/com/XMLDOMParseError.h
  
  Index: XMLDOMParseError.h
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/com/XMLDOMParseError.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XMLDOMParseError.h	2000/03/30 02:00:10	1.2
  +++ XMLDOMParseError.h	2000/06/03 00:29:01	1.3
  @@ -56,6 +56,9 @@
   
   /*
    * $Log: XMLDOMParseError.h,v $
  + * Revision 1.3  2000/06/03 00:29:01  andyh
  + * COM Wrapper changes from Curt Arnold
  + *
    * Revision 1.2  2000/03/30 02:00:10  abagchi
    * Initial checkin of working code with Copyright Notice
    *
  @@ -66,7 +69,7 @@
   
   class ATL_NO_VTABLE CXMLDOMParseError : 
   	public CComObjectRootEx<CComSingleThreadModel>,
  -	public IDispatchImpl<IXMLDOMParseError, &IID_IXMLDOMParseError, &LIBID_IBMXMLLib>
  +	public IDispatchImpl<IXMLDOMParseError, &IID_IXMLDOMParseError, &LIBID_Xerces>
   {
   public:
   	CXMLDOMParseError()
  
  
  
  1.3       +5 -2      xml-xerces/c/src/com/XMLDOMProcessingInstruction.h
  
  Index: XMLDOMProcessingInstruction.h
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/com/XMLDOMProcessingInstruction.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XMLDOMProcessingInstruction.h	2000/03/30 02:00:09	1.2
  +++ XMLDOMProcessingInstruction.h	2000/06/03 00:29:01	1.3
  @@ -56,6 +56,9 @@
   
   /*
    * $Log: XMLDOMProcessingInstruction.h,v $
  + * Revision 1.3  2000/06/03 00:29:01  andyh
  + * COM Wrapper changes from Curt Arnold
  + *
    * Revision 1.2  2000/03/30 02:00:09  abagchi
    * Initial checkin of working code with Copyright Notice
    *
  @@ -69,7 +72,7 @@
   
   class ATL_NO_VTABLE CXMLDOMProcessingInstruction : 
   	public CComObjectRootEx<CComSingleThreadModel>,
  -	public IXMLDOMNodeImpl<IXMLDOMProcessingInstruction, &IID_IXMLDOMProcessingInstruction, &LIBID_IBMXMLLib>
  +	public IXMLDOMNodeImpl<IXMLDOMProcessingInstruction, &IID_IXMLDOMProcessingInstruction, &LIBID_Xerces>
   {
   public:
   	CXMLDOMProcessingInstruction()
  
  
  
  1.3       +5 -2      xml-xerces/c/src/com/XMLDOMText.h
  
  Index: XMLDOMText.h
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/com/XMLDOMText.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XMLDOMText.h	2000/03/30 02:00:09	1.2
  +++ XMLDOMText.h	2000/06/03 00:29:01	1.3
  @@ -56,6 +56,9 @@
   
   /*
    * $Log: XMLDOMText.h,v $
  + * Revision 1.3  2000/06/03 00:29:01  andyh
  + * COM Wrapper changes from Curt Arnold
  + *
    * Revision 1.2  2000/03/30 02:00:09  abagchi
    * Initial checkin of working code with Copyright Notice
    *
  @@ -69,7 +72,7 @@
   
   class ATL_NO_VTABLE CXMLDOMText : 
   	public CComObjectRootEx<CComSingleThreadModel>,
  -	public IXMLDOMTextImpl<IXMLDOMText, &IID_IXMLDOMText, &LIBID_IBMXMLLib>
  +	public IXMLDOMTextImpl<IXMLDOMText, &IID_IXMLDOMText, &LIBID_Xerces>
   {
   public:
   	CXMLDOMText()
  
  
  
  1.3       +490 -54   xml-xerces/c/src/com/XMLDOMUtil.cpp
  
  Index: XMLDOMUtil.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/com/XMLDOMUtil.cpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XMLDOMUtil.cpp	2000/03/30 02:00:09	1.2
  +++ XMLDOMUtil.cpp	2000/06/03 00:29:02	1.3
  @@ -56,6 +56,9 @@
   
   /*
    * $Log: XMLDOMUtil.cpp,v $
  + * Revision 1.3  2000/06/03 00:29:02  andyh
  + * COM Wrapper changes from Curt Arnold
  + *
    * Revision 1.2  2000/03/30 02:00:09  abagchi
    * Initial checkin of working code with Copyright Notice
    *
  @@ -76,6 +79,8 @@
   #include "XMLDOMDocumentFragment.h"
   #include "XMLDOMNotation.h"
   #include "XMLDOMUtil.h"
  +#include <util/PlatformUtils.hpp>
  +
   
   const TCHAR* g_DomNodeName[] = 
   {	
  @@ -122,6 +127,190 @@
   		text += node.getNodeValue().rawBuffer();
   }
   
  +
  +
  +template <class Base>
  +class CComObjectPool
  +{
  +public:
  +	CComObjectPool(unsigned long poolSize);
  +
  +	virtual ~CComObjectPool();
  +
  +	HRESULT WINAPI CreateInstance(Base** pp);
  +
  +	HRESULT Deactivate(Base* obj);
  +
  +private:
  +	Base** m_pool;
  +	unsigned long m_size;
  +	unsigned long m_hit;
  +	unsigned long m_attempt;
  +	HRESULT Activate(Base* obj);
  +};
  +
  +
  +
  +
  +template <class Base>
  +class CPooledComObject : public Base
  +{
  +public:
  +	typedef Base _BaseClass;
  +	CPooledComObject(void* = NULL)
  +	{
  +		_Module.Lock();
  +	}
  +	// Set refcount to 1 to protect destruction
  +	~CPooledComObject()
  +	{
  +		m_dwRef = 1L;
  +		FinalRelease();
  +#ifdef _ATL_DEBUG_INTERFACES
  +		_Module.DeleteNonAddRefThunk(_GetRawUnknown());
  +#endif
  +		_Module.Unlock();
  +	}
  +	//If InternalAddRef or InternalRelease is undefined then your class
  +	//doesn't derive from CComObjectRoot
  +	STDMETHOD_(ULONG, AddRef)() {return InternalAddRef();}
  +	STDMETHOD_(ULONG, Release)()
  +	{
  +		ULONG l = InternalRelease();
  +		if (l == 0) {
  +			if(SUCCEEDED(m_pool.Deactivate(this))) {
  +				FinalRelease();
  +			}
  +			else
  +				delete this;
  +		}
  +		return l;
  +	}
  +	//if _InternalQueryInterface is undefined then you forgot BEGIN_COM_MAP
  +	STDMETHOD(QueryInterface)(REFIID iid, void ** ppvObject)
  +	{return _InternalQueryInterface(iid, ppvObject);}
  +	template <class Q>
  +	HRESULT STDMETHODCALLTYPE QueryInterface(Q** pp)
  +	{
  +		return QueryInterface(__uuidof(Q), (void**)pp);
  +	}
  +
  +	static HRESULT WINAPI CreateInstance(Base** pp) {
  +		return m_pool.CreateInstance(pp);
  +	}
  +
  +private:
  +	static CComObjectPool<Base> m_pool;
  +};
  +
  +
  +
  +
  +template <class Base>
  +CComObjectPool<Base>::CComObjectPool<Base>(unsigned long poolSize) {
  +	m_pool = NULL;
  +	m_size = poolSize;
  +	m_pool = new Base*[m_size];
  +	for(unsigned long i = 0; i < m_size; i++)
  +		m_pool[i] = NULL;
  +	m_hit= 0;
  +	m_attempt = 0;
  +}
  +
  +template <class Base>
  +CComObjectPool<Base>::~CComObjectPool<Base>() {
  +	for(unsigned long i = 0; i < m_size; i++) {
  +		if(m_pool[i]) delete m_pool[i];
  +	}
  +	delete [] m_pool;
  +}
  +
  +template <class Base>
  +HRESULT CComObjectPool<Base>::Deactivate(Base* obj) {
  +	for(unsigned long i = 0; i < m_size; i++) {
  +		if(m_pool[i] == NULL) {
  +			m_pool[i] = obj;
  +			return S_OK;
  +		}
  +	}
  +	return E_FAIL;
  +}
  +
  +template <class Base>
  +HRESULT CComObjectPool<Base>::Activate(Base* p)
  +{
  +	p->SetVoid(NULL);
  +	p->InternalFinalConstructAddRef();
  +	HRESULT hRes = p->FinalConstruct();
  +	p->InternalFinalConstructRelease();
  +	return hRes;
  +}
  +
  +
  +template <class Base>
  +HRESULT WINAPI CComObjectPool<Base>::CreateInstance(Base** pp) {
  +	ATLASSERT(pp != NULL);
  +	HRESULT hRes = E_OUTOFMEMORY;
  +	Base* p = NULL;
  +
  +	m_attempt++;
  +
  +	for(unsigned long i = 0; i < m_size; i++) {
  +		if(m_pool[i]) {
  +			p = m_pool[i];
  +			m_pool[i] = NULL;
  +			hRes = Activate(p);
  +			if (SUCCEEDED(hRes)) {
  +				m_hit++;
  +				break;
  +			}
  +			else {
  +				delete p;
  +				p = NULL;
  +			}
  +		}
  +	}
  +
  +	if(FAILED(hRes)) {
  +		ATLTRY(p = new CPooledComObject<Base>())
  +		if (p != NULL) {
  +			hRes = Activate(p);
  +			if (hRes != S_OK) {
  +				delete p;
  +				p = NULL;
  +			}
  +		}
  +	}
  +	*pp = p;
  +	return hRes;
  +}
  +
  +
  +CComObjectPool<CXMLDOMElement> CPooledComObject<CXMLDOMElement>::m_pool(6);
  +typedef CPooledComObject<CXMLDOMElement> CPooledXMLDOMElementObj;
  +
  +CComObjectPool<CXMLDOMAttribute> CPooledComObject<CXMLDOMAttribute>::m_pool(6);
  +typedef CPooledComObject<CXMLDOMAttribute> CPooledXMLDOMAttributeObj;
  +
  +CComObjectPool<CXMLDOMText> CPooledComObject<CXMLDOMText>::m_pool(6);
  +typedef CPooledComObject<CXMLDOMText> CPooledXMLDOMTextObj;
  +
  +CComObjectPool<CXMLDOMCDATASection> CPooledComObject<CXMLDOMCDATASection>::m_pool(6);
  +typedef CPooledComObject<CXMLDOMCDATASection> CPooledXMLDOMCDATASectionObj;
  +
  +CComObjectPool<CXMLDOMEntityReference> CPooledComObject<CXMLDOMEntityReference>::m_pool(6);
  +typedef CPooledComObject<CXMLDOMEntityReference> CPooledXMLDOMEntityReferenceObj;
  +
  +CComObjectPool<CXMLDOMEntity> CPooledComObject<CXMLDOMEntity>::m_pool(6);
  +typedef CPooledComObject<CXMLDOMEntity> CPooledXMLDOMEntityObj;
  +
  +CComObjectPool<CXMLDOMProcessingInstruction> CPooledComObject<CXMLDOMProcessingInstruction>::m_pool(6);
  +typedef CPooledComObject<CXMLDOMProcessingInstruction> CPooledXMLDOMProcessingInstructionObj;
  +
  +CComObjectPool<CXMLDOMComment> CPooledComObject<CXMLDOMComment>::m_pool(6);
  +typedef CPooledComObject<CXMLDOMComment> CPooledXMLDOMCommentObj;
  +
  +
   HRESULT wrapNode(IXMLDOMDocument *pDoc, DOM_Node& node, REFIID iid, LPVOID *pVal)
   {
   	HRESULT hr = S_OK;
  @@ -140,8 +329,8 @@
   	{
   	case DOM_Node::ELEMENT_NODE:
   	{
  -		CXMLDOMElementObj *pObj = NULL;
  -		hr = CXMLDOMElementObj::CreateInstance(&pObj);
  +		CXMLDOMElement *pObj = NULL;
  +		hr = CPooledXMLDOMElementObj::CreateInstance(&pObj);
   		if (S_OK != hr) 
   			return hr;
   	
  @@ -167,8 +356,8 @@
   	}
   	case DOM_Node::ATTRIBUTE_NODE:
   	{
  -		CXMLDOMAttributeObj *pObj = NULL;
  -		hr = CXMLDOMAttributeObj::CreateInstance(&pObj);
  +		CXMLDOMAttribute *pObj = NULL;
  +		hr = CPooledXMLDOMAttributeObj::CreateInstance(&pObj);
   		if (S_OK != hr) 
   			return hr;
   	
  @@ -194,8 +383,8 @@
   	}
   	case DOM_Node::TEXT_NODE:
   	{
  -		CXMLDOMTextObj *pObj = NULL;
  -		hr = CXMLDOMTextObj::CreateInstance(&pObj);
  +		CXMLDOMText *pObj = NULL;
  +		hr = CPooledXMLDOMTextObj::CreateInstance(&pObj);
   		if (S_OK != hr) 
   			return hr;
   	
  @@ -221,8 +410,8 @@
   	}
   	case DOM_Node::CDATA_SECTION_NODE:
   	{
  -		CXMLDOMCDATASectionObj *pObj = NULL;
  -		hr = CXMLDOMCDATASectionObj::CreateInstance(&pObj);
  +		CXMLDOMCDATASection *pObj = NULL;
  +		hr = CPooledXMLDOMCDATASectionObj::CreateInstance(&pObj);
   		if (S_OK != hr) 
   			return hr;
   	
  @@ -248,8 +437,8 @@
   	}
   	case DOM_Node::ENTITY_REFERENCE_NODE:
   	{
  -		CXMLDOMEntityReferenceObj *pObj = NULL;
  -		hr = CXMLDOMEntityReferenceObj::CreateInstance(&pObj);
  +		CXMLDOMEntityReference *pObj = NULL;
  +		hr = CPooledXMLDOMEntityReferenceObj::CreateInstance(&pObj);
   		if (S_OK != hr) 
   			return hr;
   	
  @@ -275,8 +464,8 @@
   	}
   	case DOM_Node::ENTITY_NODE:
   	{
  -		CXMLDOMEntityObj *pObj = NULL;
  -		hr = CXMLDOMEntityObj::CreateInstance(&pObj);
  +		CXMLDOMEntity *pObj = NULL;
  +		hr = CPooledXMLDOMEntityObj::CreateInstance(&pObj);
   		if (S_OK != hr) 
   			return hr;
   	
  @@ -302,8 +491,8 @@
   	}
   	case DOM_Node::PROCESSING_INSTRUCTION_NODE:
   	{
  -		CXMLDOMProcessingInstructionObj *pObj = NULL;
  -		hr = CXMLDOMProcessingInstructionObj::CreateInstance(&pObj);
  +		CXMLDOMProcessingInstruction *pObj = NULL;
  +		hr = CPooledXMLDOMProcessingInstructionObj::CreateInstance(&pObj);
   		if (S_OK != hr) 
   			return hr;
   	
  @@ -329,8 +518,8 @@
   	}
   	case DOM_Node::COMMENT_NODE:
   	{
  -		CXMLDOMCommentObj *pObj = NULL;
  -		hr = CXMLDOMCommentObj::CreateInstance(&pObj);
  +		CXMLDOMComment *pObj = NULL;
  +		hr = CPooledXMLDOMCommentObj::CreateInstance(&pObj);
   		if (S_OK != hr) 
   			return hr;
   	
  @@ -470,50 +659,297 @@
   	return hr;
   }
   
  -void GetXML(const DOM_Node &node, _bstr_t &text)
  -{
  -	DOM_Node::NodeType type = static_cast<DOM_Node::NodeType> (node.getNodeType());
  -	
  -	if (DOM_Node::TEXT_NODE == type) {
  -		_bstr_t value = node.getNodeValue().rawBuffer();
  -		if (value.length() > 0) 
  -			text += value; 
   
  -		return;
  +class xmlstream {
  +public:
  +	xmlstream() {
  +		m_length = 0;
  +		m_alloc = 0;
  +		m_buffer = 0;
  +		m_next = 0;
   	}
   
  -	_bstr_t tagName = node.getNodeName().rawBuffer();
  +	~xmlstream() {
  +		delete [] m_buffer;
  +	}
   
  -	text += _T("<");
  -	text += tagName;
  +	xmlstream& operator<<(const XMLCh* other) {
  +		//
  +		//   get length of string
  +		//
  +		unsigned long len = 0;
  +		for(const XMLCh* source = other; *source; source++,len++);
   
  -	DOM_NamedNodeMap attrs = node.getAttributes();
  +		//
  +		//    append to stream
  +		//
  +		append(other,len);
  +		return *this;
  +	}
   
  -	int length = 0;
  -	if (attrs != 0) {
  -		length = attrs.getLength();
  -		for (int i=0; i < length; ++i) {
  -			DOM_Node attr = attrs.item(i);
  -			text += _T(" ");
  -			text += attr.getNodeName().rawBuffer();
  -			text += _T("=\"");
  -			text += attr.getNodeValue().rawBuffer();
  -			text += _T("\"");
  -		}
  +	xmlstream& operator<<(const DOMString& other) {
  +		append(other.rawBuffer(),other.length());
  +		return *this;
   	}
   
  -	DOM_NodeList childs = node.getChildNodes();
  -	length = childs.getLength();
  -	if (length > 0) {
  -		text += _T(">");
  -		for (int i=0; i < length; ++i) {
  -			DOM_Node child = childs.item(i);
  -			GetXML(child,text);
  -		}
  -		text += _T("</");
  -		text += tagName;
  -		text += _T(">");
  +	xmlstream& operator<<(const XMLCh other) {
  +		append(&other,1);
  +		return *this;
   	}
  -	else
  -		text += _T("/>");
  +
  +	BSTR SysAllocString() {
  +		if(m_length > 0)
  +			return SysAllocStringLen(m_buffer,m_length);
  +		return 0;
  +	}
  +
  +private:
  +	void append(const XMLCh* other,unsigned long length) {
  +		const XMLCh* source = NULL;
  +
  +		if(m_length + length > m_alloc) {
  +			unsigned long chunk = 4096;
  +			if(length > chunk) chunk += length;
  +			XMLCh* newbuf = new XMLCh[m_alloc+ chunk];
  +			m_alloc += chunk;
  +			m_next = newbuf + m_length;
  +
  +			//
  +			//    copy old content into new buffer
  +			//
  +			XMLCh* dest = newbuf;
  +			source = m_buffer;
  +			for(unsigned long i = 0; i < m_length; i++,dest++,source++) {
  +				*dest = *source;
  +			}
  +			delete [] m_buffer;
  +			m_buffer = newbuf;
  +		}
  +
  +		source = other;
  +		for(unsigned long i = 0; i < length; i++,source++,m_next++) {
  +			*m_next = *source;
  +		}
  +		m_length += length;
  +	}
  +
  +	unsigned long m_length;
  +	unsigned long m_alloc;
  +	XMLCh* m_buffer;
  +	XMLCh* m_next;
  +};
  +
  +
  +
  +
  +// ---------------------------------------------------------------------------
  +//  outputContent
  +//
  +//  Write document content from a DOMString to a C++ ostream. Escape the
  +//  XML special characters (<, &, etc.) unless this is suppressed by the
  +//  command line option.
  +// ---------------------------------------------------------------------------
  +void outputContent(xmlstream& target, const DOMString &toWrite)
  +{
  +    
  +        int            length = toWrite.length();
  +        const XMLCh*   chars  = toWrite.rawBuffer();
  +        
  +        int index;
  +        for (index = 0; index < length; index++)
  +        {
  +            switch (chars[index])
  +            {
  +            case chAmpersand :
  +                target << XMLStrL("&amp;");
  +                break;
  +                
  +            case chOpenAngle :
  +                target << XMLStrL("&lt;");
  +                break;
  +                
  +            case chCloseAngle:
  +                target << XMLStrL("&gt;");
  +                break;
  +                
  +            case chDoubleQuote :
  +                target << XMLStrL("&quot;");
  +                break;
  +                
  +            default:
  +                // If it is none of the special characters, print it as such
  +                target << toWrite.substringData(index, 1);
  +                break;
  +            }
  +        }
  +
  +    return;
  +}
  +
  +xmlstream& operator<<(xmlstream& target, const DOM_Node& toWrite)
  +{
  +    // Get the name and value out for convenience
  +    DOMString   nodeName = toWrite.getNodeName();
  +    DOMString   nodeValue = toWrite.getNodeValue();
  +
  +
  +	switch (toWrite.getNodeType())
  +    {
  +		case DOM_Node::TEXT_NODE:
  +        {
  +            outputContent(target, nodeValue);
  +            break;
  +        }
  +
  +        case DOM_Node::PROCESSING_INSTRUCTION_NODE :
  +        {
  +            target  << XMLStrL("<?")
  +                    << nodeName
  +                    << XMLStrL(' ')
  +                    << nodeValue
  +                    << XMLStrL("?>");
  +            break;
  +        }
  +
  +        case DOM_Node::DOCUMENT_NODE :
  +        {
  +            //
  +            //  Bug here:  we need to find a way to get the encoding name
  +            //  for the default code page on the system where the program
  +            //  is running, and plug that in for the encoding name.  
  +            //
  +            //target << "<?xml version='1.0' encoding='ISO-8859-1' ?>\n";
  +            DOM_Node child = toWrite.getFirstChild();
  +            while( child != 0)
  +            {
  +                target << child;
  +                child = child.getNextSibling();
  +            }
  +            break;
  +        }
  +
  +        case DOM_Node::ELEMENT_NODE :
  +        {
  +            // Output the element start tag.
  +            target << XMLStrL('<') << nodeName;
  +
  +            // Output any attributes on this element
  +            DOM_NamedNodeMap attributes = toWrite.getAttributes();
  +            int attrCount = attributes.getLength();
  +            for (int i = 0; i < attrCount; i++)
  +            {
  +                DOM_Node  attribute = attributes.item(i);
  +
  +                target  << XMLStrL(' ') << attribute.getNodeName()
  +                        << XMLStrL(" = \"");
  +                        //  Note that "<" must be escaped in attribute values.
  +                        outputContent(target, attribute.getNodeValue());
  +                        target << XMLStrL('"');
  +            }
  +
  +            //
  +            //  Test for the presence of children, which includes both
  +            //  text content and nested elements.
  +            //
  +            DOM_Node child = toWrite.getFirstChild();
  +            if (child != 0)
  +            {
  +                // There are children. Close start-tag, and output children.
  +                target << XMLStrL(">");
  +                while( child != 0)
  +                {
  +                    target << child;
  +                    child = child.getNextSibling();
  +                }
  +
  +                // Done with children.  Output the end tag.
  +                target << XMLStrL("</") << nodeName << XMLStrL(">");
  +            }
  +            else
  +            {
  +                //
  +                //  There were no children. Output the short form close of
  +                //  the element start tag, making it an empty-element tag.
  +                //
  +                target << XMLStrL("/>");
  +            }
  +            break;
  +        }
  +
  +        case DOM_Node::ENTITY_REFERENCE_NODE:
  +        {
  +            DOM_Node child;
  +            for (child = toWrite.getFirstChild(); child != 0; child = child.getNextSibling())
  +                target << child;
  +            break;
  +        }
  +
  +        case DOM_Node::CDATA_SECTION_NODE:
  +        {
  +            target << XMLStrL("<![CDATA[") << nodeValue << XMLStrL("]]>");
  +            break;
  +        }
  +
  +        case DOM_Node::COMMENT_NODE:
  +        {
  +            target << XMLStrL("<!--") << nodeValue << XMLStrL("-->");
  +            break;
  +        }
  +
  +        case DOM_Node::DOCUMENT_TYPE_NODE:
  +        {
  +			DOM_DocumentType doctype = (DOM_DocumentType &)toWrite;;
  +
  +			target << XMLStrL("<!DOCTYPE ") << nodeName ;
  +			DOMString id = doctype.getPublicId();
  +			if (id != 0)
  +				target << XMLStrL(" PUBLIC \"") << id << XMLStrL("\"");
  +			id = doctype.getSystemId();
  +			if (id != 0)
  +				target << XMLStrL(" SYSTEM \"") << id << XMLStrL("\"");
  +			id = doctype.getInternalSubset(); 
  +			if (id !=0)
  +				target << XMLStrL(" [ ") << id  << XMLStrL("]");
  +			target  << XMLStrL(">");
  +            break;
  +        }
  +		case DOM_Node::ENTITY_NODE:
  +        {
  +			target << XMLStrL("<!ENTITY ") << nodeName;
  +			DOMString id = ((DOM_Entity &)toWrite).getPublicId();
  +			if (id != 0)
  +				target << XMLStrL("PUBLIC \"") << id << XMLStrL("\"");
  +			id = ((DOM_Entity &)toWrite).getSystemId();
  +			if (id != 0)
  +				target << XMLStrL("SYSTEM \"") << id << XMLStrL("\"");
  +			id = ((DOM_Entity &)toWrite).getNotationName();
  +			if (id != 0)
  +				target << XMLStrL("NDATA \"") << id << XMLStrL("\"");
  +
  +            break;
  +        }
  +        case DOM_Node::XML_DECL_NODE:
  +        {
  +            target << XMLStrL("<?xml version=") << ((DOM_XMLDecl &)toWrite).getVersion();
  +            DOMString str = ((DOM_XMLDecl &)toWrite).getEncoding();
  +            if (str != 0)
  +                target << XMLStrL(" encoding=") << str;
  +            str = ((DOM_XMLDecl &)toWrite).getStandalone();
  +            if (str != 0)
  +                target << XMLStrL(" standalone=") << str;
  +            target << XMLStrL("?>");
  +            break;
  +        }
  +        default:
  +            target << XMLStrL("<!-- Unrecognized node type -->");
  +    }
  +	return target;
  +}
  +
  +void GetXML(const DOM_Node &node, _bstr_t &text)
  +{
  +	xmlstream stream;
  +	stream << node;
  +	text.Assign(stream.SysAllocString());
   }
  +
  
  
  
  1.3       +6 -1      xml-xerces/c/src/com/XMLDOMUtil.h
  
  Index: XMLDOMUtil.h
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/com/XMLDOMUtil.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XMLDOMUtil.h	2000/03/30 02:00:09	1.2
  +++ XMLDOMUtil.h	2000/06/03 00:29:03	1.3
  @@ -56,6 +56,9 @@
   
   /*
    * $Log: XMLDOMUtil.h,v $
  + * Revision 1.3  2000/06/03 00:29:03  andyh
  + * COM Wrapper changes from Curt Arnold
  + *
    * Revision 1.2  2000/03/30 02:00:09  abagchi
    * Initial checkin of working code with Copyright Notice
    *
  @@ -72,5 +75,7 @@
   void GetXML (const DOM_Node &node, _bstr_t &text);
   void GetText(const DOM_Node& node, _bstr_t &text);
   HRESULT wrapNode(IXMLDOMDocument *pDoc, DOM_Node& node, REFIID iid, LPVOID *pVal);
  +
  +
   
   #endif // ___wrapnode_h___
  
  
  
  1.3       +6 -10     xml-xerces/c/src/com/XMLHTTPRequest.cpp
  
  Index: XMLHTTPRequest.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/com/XMLHTTPRequest.cpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XMLHTTPRequest.cpp	2000/03/30 02:00:09	1.2
  +++ XMLHTTPRequest.cpp	2000/06/03 00:29:03	1.3
  @@ -56,6 +56,9 @@
   
   /*
    * $Log: XMLHTTPRequest.cpp,v $
  + * Revision 1.3  2000/06/03 00:29:03  andyh
  + * COM Wrapper changes from Curt Arnold
  + *
    * Revision 1.2  2000/03/30 02:00:09  abagchi
    * Initial checkin of working code with Copyright Notice
    *
  @@ -174,15 +177,8 @@
   
   STDMETHODIMP CXMLHttpRequest::InterfaceSupportsErrorInfo(REFIID riid)
   {
  -	static const IID* arr[] = 
  -	{
  -		&IID_IXMLHttpRequest
  -	};
  -	for (int i=0; i < sizeof(arr) / sizeof(arr[0]); i++)
  -	{
  -		if (InlineIsEqualGUID(*arr[i],riid))
  -			return S_OK;
  -	}
  +	if (IsEqualGUID(IID_IXMLHttpRequest,riid))
  +		return S_OK;
   	return S_FALSE;
   }
   
  
  
  
  1.3       +6 -3      xml-xerces/c/src/com/XMLHttpRequest.h
  
  Index: XMLHttpRequest.h
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/com/XMLHttpRequest.h,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XMLHttpRequest.h	2000/03/30 02:00:09	1.2
  +++ XMLHttpRequest.h	2000/06/03 00:29:04	1.3
  @@ -56,6 +56,9 @@
   
   /*
    * $Log: XMLHttpRequest.h,v $
  + * Revision 1.3  2000/06/03 00:29:04  andyh
  + * COM Wrapper changes from Curt Arnold
  + *
    * Revision 1.2  2000/03/30 02:00:09  abagchi
    * Initial checkin of working code with Copyright Notice
    *
  @@ -71,9 +74,9 @@
   
   class ATL_NO_VTABLE CXMLHttpRequest : 
   	public CComObjectRootEx<CComSingleThreadModel>,
  -	public CComCoClass<CXMLHttpRequest, &CLSID_XMLHttpRequest>,
  +	public CComCoClass<CXMLHttpRequest, &CLSID_XMLHTTPRequest>,
   	public IObjectSafetyImpl<CXMLHttpRequest, INTERFACESAFE_FOR_UNTRUSTED_CALLER>,
  -	public IDispatchImpl<IXMLHttpRequest, &IID_IXMLHttpRequest, &LIBID_IBMXMLLib>,
  +	public IDispatchImpl<IXMLHttpRequest, &IID_IXMLHttpRequest, &LIBID_Xerces>,
   	public IObjectWithSiteImpl<CXMLHttpRequest>,
   	public ISupportErrorInfo,
   	public CWindowImpl<CXMLHttpRequest, CWindow, CWinTraits<0,0> >
  
  
  
  1.3       +25 -5     xml-xerces/c/src/com/xml4com.cpp
  
  Index: xml4com.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/com/xml4com.cpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- xml4com.cpp	2000/03/30 02:00:12	1.2
  +++ xml4com.cpp	2000/06/03 00:29:04	1.3
  @@ -56,6 +56,9 @@
   
   /*
    * $Log: xml4com.cpp,v $
  + * Revision 1.3  2000/06/03 00:29:04  andyh
  + * COM Wrapper changes from Curt Arnold
  + *
    * Revision 1.2  2000/03/30 02:00:12  abagchi
    * Initial checkin of working code with Copyright Notice
    *
  @@ -86,9 +89,26 @@
   #include "stdafx.h"
   #include "resource.h"
   #include <initguid.h>
  -#include "xml4com.h"
   
   #include <util/PlatformUtils.hpp>
  +#include "xml4com.h"
  +
  +//
  +//   This file is generated from the type library compilation
  +//       of xmldom.idl
  +//
  +//   The define prevent the Microsoft versions of DOMDocument
  +//      and HTTPRequest from causing symbol clashes with ours
  +#define CLSID_DOMDocument CLSID_MSDOMDocument
  +#define CLSID_XMLHTTPRequest CLSID_MSXMLHTTPRequest
  +#include "msxml_i.c"
  +#undef CLSID_DOMDocument
  +#undef CLSID_XMLHTTPRequest
  +
  +//
  +//   This file is generated from the type library compilation
  +//       of xml4com.idl
  +//
   #include "xml4com_i.c"
   #include "XMLDOMDocument.h"
   #include "XMLHTTPRequest.h"
  @@ -100,8 +120,8 @@
   CComModule _Module;
   
   BEGIN_OBJECT_MAP(ObjectMap)
  -OBJECT_ENTRY(CLSID_XMLDOMDocument, CXMLDOMDocument)
  -OBJECT_ENTRY(CLSID_XMLHttpRequest, CXMLHttpRequest)
  +OBJECT_ENTRY(CLSID_DOMDocument, CXMLDOMDocument)
  +OBJECT_ENTRY(CLSID_XMLHTTPRequest, CXMLHttpRequest)
   END_OBJECT_MAP()
   
   /////////////////////////////////////////////////////////////////////////////
  @@ -117,7 +137,7 @@
   #endif
       if (dwReason == DLL_PROCESS_ATTACH)
       {
  -        _Module.Init(ObjectMap, hInstance, &LIBID_IBMXMLLib);
  +        _Module.Init(ObjectMap, hInstance, &LIBID_Xerces);
           DisableThreadLibraryCalls(hInstance);
   		XMLPlatformUtils::Initialize();
       }
  
  
  
  1.2       +65 -6     xml-xerces/c/src/com/xml4com.idl
  
  Index: xml4com.idl
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/com/xml4com.idl,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- xml4com.idl	2000/03/10 22:45:40	1.1
  +++ xml4com.idl	2000/06/03 00:29:05	1.2
  @@ -1,3 +1,61 @@
  +/*
  + * The Apache Software License, Version 1.1
  + * 
  + * Copyright (c) 1999-2000 The Apache Software Foundation.  All rights
  + * reserved.
  + * 
  + * Redistribution and use in source and binary forms, with or without
  + * modification, are permitted provided that the following conditions
  + * are met:
  + * 
  + * 1. Redistributions of source code must retain the above copyright
  + *    notice, this list of conditions and the following disclaimer. 
  + * 
  + * 2. Redistributions in binary form must reproduce the above copyright
  + *    notice, this list of conditions and the following disclaimer in
  + *    the documentation and/or other materials provided with the
  + *    distribution.
  + * 
  + * 3. The end-user documentation included with the redistribution,
  + *    if any, must include the following acknowledgment:  
  + *       "This product includes software developed by the
  + *        Apache Software Foundation (http://www.apache.org/)."
  + *    Alternately, this acknowledgment may appear in the software itself,
  + *    if and wherever such third-party acknowledgments normally appear.
  + * 
  + * 4. The names "Xerces" and "Apache Software Foundation" must
  + *    not be used to endorse or promote products derived from this
  + *    software without prior written permission. For written 
  + *    permission, please contact apache\@apache.org.
  + * 
  + * 5. Products derived from this software may not be called "Apache",
  + *    nor may "Apache" appear in their name, without prior written
  + *    permission of the Apache Software Foundation.
  + * 
  + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  + * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  + * SUCH DAMAGE.
  + * ====================================================================
  + * 
  + * This software consists of voluntary contributions made by many
  + * individuals on behalf of the Apache Software Foundation, and was
  + * originally based on software copyright (c) 1999, International
  + * Business Machines, Inc., http://www.ibm.com .  For more information
  + * on the Apache Software Foundation, please see
  + * <http://www.apache.org/>.
  + */
  +
  +
  +
   // xml4com.idl : IDL source 
   //
    
  @@ -9,13 +67,14 @@
   [
   	uuid(79516F60-3AEA-11D3-BC47-0004ACB7DBEB),
   	version(1.0),
  -	helpstring("xml4com 1.0 Type Library")
  +	helpstring("Xerces XML Parser")
   ]
  -library IBMXMLLib
  +library Xerces
   {
   	importlib("stdole32.tlb");
   	importlib("stdole2.tlb");
   
  +
   	import "xmldom.idl";
   	
   	[
  @@ -33,9 +92,9 @@
   
   	[
   		uuid(79516F6F-3AEA-11D3-BC47-0004ACB7DBEB),
  -		helpstring("XMLDOMDocument Class")
  +		helpstring("DOMDocument Class")
   	]
  -	coclass XMLDOMDocument
  +	coclass DOMDocument
   	{
   		[default] interface IXMLDOMDocument;
   		[default, source] dispinterface XMLDOMDocumentEvents;
  @@ -43,9 +102,9 @@
   
   	[
   	  uuid(1C598E82-9AB9-456b-9C24-D711F08F3584),
  -	  helpstring("XMLHttpRequest class.")
  +	  helpstring("XMLHTTPRequest class.")
   	]
  -	coclass XMLHttpRequest
  +	coclass XMLHTTPRequest
   	{
   		[default] interface IXMLHttpRequest;
   	};
  
  
  
  1.2       +65 -8     xml-xerces/c/src/com/xml4com.rc
  
  Index: xml4com.rc
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/com/xml4com.rc,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- xml4com.rc	2000/03/10 22:45:40	1.1
  +++ xml4com.rc	2000/06/03 00:29:06	1.2
  @@ -1,3 +1,60 @@
  +/*
  + * The Apache Software License, Version 1.1
  + * 
  + * Copyright (c) 1999-2000 The Apache Software Foundation.  All rights
  + * reserved.
  + * 
  + * Redistribution and use in source and binary forms, with or without
  + * modification, are permitted provided that the following conditions
  + * are met:
  + * 
  + * 1. Redistributions of source code must retain the above copyright
  + *    notice, this list of conditions and the following disclaimer. 
  + * 
  + * 2. Redistributions in binary form must reproduce the above copyright
  + *    notice, this list of conditions and the following disclaimer in
  + *    the documentation and/or other materials provided with the
  + *    distribution.
  + * 
  + * 3. The end-user documentation included with the redistribution,
  + *    if any, must include the following acknowledgment:  
  + *       "This product includes software developed by the
  + *        Apache Software Foundation (http://www.apache.org/)."
  + *    Alternately, this acknowledgment may appear in the software itself,
  + *    if and wherever such third-party acknowledgments normally appear.
  + * 
  + * 4. The names "Xerces" and "Apache Software Foundation" must
  + *    not be used to endorse or promote products derived from this
  + *    software without prior written permission. For written 
  + *    permission, please contact apache\@apache.org.
  + * 
  + * 5. Products derived from this software may not be called "Apache",
  + *    nor may "Apache" appear in their name, without prior written
  + *    permission of the Apache Software Foundation.
  + * 
  + * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  + * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  + * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  + * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  + * SUCH DAMAGE.
  + * ====================================================================
  + * 
  + * This software consists of voluntary contributions made by many
  + * individuals on behalf of the Apache Software Foundation, and was
  + * originally based on software copyright (c) 1999, International
  + * Business Machines, Inc., http://www.ibm.com .  For more information
  + * on the Apache Software Foundation, please see
  + * <http://www.apache.org/>.
  + */
  +
  +
   //Microsoft Developer Studio generated resource script.
   //
   #include "resource.h"
  @@ -71,17 +128,17 @@
           BLOCK "040904b0"
           BEGIN
               VALUE "Comments", "\0"
  -            VALUE "CompanyName", "\0"
  -            VALUE "FileDescription", "IBM XML Parser\0"
  -            VALUE "FileVersion", "1, 0, 0, 1\0"
  -            VALUE "InternalName", "IBM XML Parser \0"
  -            VALUE "LegalCopyright", "Copyright 1999\0"
  +            VALUE "CompanyName", "Apache Software Foundation\0"
  +            VALUE "FileDescription", "Xerces XML Parser for COM\0"
  +            VALUE "FileVersion", "1, 2, 0\0"
  +            VALUE "InternalName", "Xerces XML Parser for COM \0"
  +            VALUE "LegalCopyright", "Copyright � Apache Software Foundation 2000 subject to licensing terms\0"
               VALUE "LegalTrademarks", "\0"
               VALUE "OLESelfRegister", "\0"
  -            VALUE "OriginalFilename", "IXXML4C3_0.DLL\0"
  +            VALUE "OriginalFilename", "xerces-com.dll\0"
               VALUE "PrivateBuild", "\0"
  -            VALUE "ProductName", "IBM XML Parser \0"
  -            VALUE "ProductVersion", "1, 0, 0, 1\0"
  +            VALUE "ProductName", "Xerces XML Parser for COM\0"
  +            VALUE "ProductVersion", "1, 2, 0\0"
               VALUE "SpecialBuild", "\0"
           END
       END