/*** Autogenerated by WIDL 1.3.20 from msxml2.idl - Do not edit ***/

#include <rpc.h>
#include <rpcndr.h>

#ifndef __WIDL_MSXML2_H
#define __WIDL_MSXML2_H

/* Forward declarations */

#ifndef __IXMLElementCollection_FWD_DEFINED__
#define __IXMLElementCollection_FWD_DEFINED__
typedef interface IXMLElementCollection IXMLElementCollection;
#endif

#ifndef __IXMLElement_FWD_DEFINED__
#define __IXMLElement_FWD_DEFINED__
typedef interface IXMLElement IXMLElement;
#endif

#ifndef __IXMLDOMNode_FWD_DEFINED__
#define __IXMLDOMNode_FWD_DEFINED__
typedef interface IXMLDOMNode IXMLDOMNode;
#endif

#ifndef __IXMLDOMDocument_FWD_DEFINED__
#define __IXMLDOMDocument_FWD_DEFINED__
typedef interface IXMLDOMDocument IXMLDOMDocument;
#endif

#ifndef __IXMLDOMSchemaCollection_FWD_DEFINED__
#define __IXMLDOMSchemaCollection_FWD_DEFINED__
typedef interface IXMLDOMSchemaCollection IXMLDOMSchemaCollection;
#endif

#ifndef __IXMLDOMSchemaCollection2_FWD_DEFINED__
#define __IXMLDOMSchemaCollection2_FWD_DEFINED__
typedef interface IXMLDOMSchemaCollection2 IXMLDOMSchemaCollection2;
#endif

#ifndef __IXMLDOMDocument2_FWD_DEFINED__
#define __IXMLDOMDocument2_FWD_DEFINED__
typedef interface IXMLDOMDocument2 IXMLDOMDocument2;
#endif

#ifndef __IXMLDOMDocument3_FWD_DEFINED__
#define __IXMLDOMDocument3_FWD_DEFINED__
typedef interface IXMLDOMDocument3 IXMLDOMDocument3;
#endif

#ifndef __IXMLDOMNodeList_FWD_DEFINED__
#define __IXMLDOMNodeList_FWD_DEFINED__
typedef interface IXMLDOMNodeList IXMLDOMNodeList;
#endif

#ifndef __IXMLDOMSelection_FWD_DEFINED__
#define __IXMLDOMSelection_FWD_DEFINED__
typedef interface IXMLDOMSelection IXMLDOMSelection;
#endif

#ifndef __IXMLDOMNamedNodeMap_FWD_DEFINED__
#define __IXMLDOMNamedNodeMap_FWD_DEFINED__
typedef interface IXMLDOMNamedNodeMap IXMLDOMNamedNodeMap;
#endif

#ifndef __IXMLDOMDocumentFragment_FWD_DEFINED__
#define __IXMLDOMDocumentFragment_FWD_DEFINED__
typedef interface IXMLDOMDocumentFragment IXMLDOMDocumentFragment;
#endif

#ifndef __IXMLDOMCharacterData_FWD_DEFINED__
#define __IXMLDOMCharacterData_FWD_DEFINED__
typedef interface IXMLDOMCharacterData IXMLDOMCharacterData;
#endif

#ifndef __IXMLDOMAttribute_FWD_DEFINED__
#define __IXMLDOMAttribute_FWD_DEFINED__
typedef interface IXMLDOMAttribute IXMLDOMAttribute;
#endif

#ifndef __IXMLDOMElement_FWD_DEFINED__
#define __IXMLDOMElement_FWD_DEFINED__
typedef interface IXMLDOMElement IXMLDOMElement;
#endif

#ifndef __IXMLDOMText_FWD_DEFINED__
#define __IXMLDOMText_FWD_DEFINED__
typedef interface IXMLDOMText IXMLDOMText;
#endif

#ifndef __IXMLDOMComment_FWD_DEFINED__
#define __IXMLDOMComment_FWD_DEFINED__
typedef interface IXMLDOMComment IXMLDOMComment;
#endif

#ifndef __IXMLDOMProcessingInstruction_FWD_DEFINED__
#define __IXMLDOMProcessingInstruction_FWD_DEFINED__
typedef interface IXMLDOMProcessingInstruction IXMLDOMProcessingInstruction;
#endif

#ifndef __IXMLDOMCDATASection_FWD_DEFINED__
#define __IXMLDOMCDATASection_FWD_DEFINED__
typedef interface IXMLDOMCDATASection IXMLDOMCDATASection;
#endif

#ifndef __IXMLDOMDocumentType_FWD_DEFINED__
#define __IXMLDOMDocumentType_FWD_DEFINED__
typedef interface IXMLDOMDocumentType IXMLDOMDocumentType;
#endif

#ifndef __IXMLDOMNotation_FWD_DEFINED__
#define __IXMLDOMNotation_FWD_DEFINED__
typedef interface IXMLDOMNotation IXMLDOMNotation;
#endif

#ifndef __IXMLDOMEntity_FWD_DEFINED__
#define __IXMLDOMEntity_FWD_DEFINED__
typedef interface IXMLDOMEntity IXMLDOMEntity;
#endif

#ifndef __IXMLDOMEntityReference_FWD_DEFINED__
#define __IXMLDOMEntityReference_FWD_DEFINED__
typedef interface IXMLDOMEntityReference IXMLDOMEntityReference;
#endif

#ifndef __IXMLDOMImplementation_FWD_DEFINED__
#define __IXMLDOMImplementation_FWD_DEFINED__
typedef interface IXMLDOMImplementation IXMLDOMImplementation;
#endif

#ifndef __IXTLRuntime_FWD_DEFINED__
#define __IXTLRuntime_FWD_DEFINED__
typedef interface IXTLRuntime IXTLRuntime;
#endif

#ifndef __IDSOControl_FWD_DEFINED__
#define __IDSOControl_FWD_DEFINED__
typedef interface IDSOControl IDSOControl;
#endif

#ifndef __XMLDOMDocumentEvents_FWD_DEFINED__
#define __XMLDOMDocumentEvents_FWD_DEFINED__
typedef interface XMLDOMDocumentEvents XMLDOMDocumentEvents;
#endif

#ifndef __IXSLProcessor_FWD_DEFINED__
#define __IXSLProcessor_FWD_DEFINED__
typedef interface IXSLProcessor IXSLProcessor;
#endif

#ifndef __IXSLTemplate_FWD_DEFINED__
#define __IXSLTemplate_FWD_DEFINED__
typedef interface IXSLTemplate IXSLTemplate;
#endif

#ifndef __IXMLHTTPRequest_FWD_DEFINED__
#define __IXMLHTTPRequest_FWD_DEFINED__
typedef interface IXMLHTTPRequest IXMLHTTPRequest;
#endif

#ifndef __IServerXMLHTTPRequest_FWD_DEFINED__
#define __IServerXMLHTTPRequest_FWD_DEFINED__
typedef interface IServerXMLHTTPRequest IServerXMLHTTPRequest;
#endif

#ifndef __IServerXMLHTTPRequest2_FWD_DEFINED__
#define __IServerXMLHTTPRequest2_FWD_DEFINED__
typedef interface IServerXMLHTTPRequest2 IServerXMLHTTPRequest2;
#endif

#ifndef __IXMLDOMParseError_FWD_DEFINED__
#define __IXMLDOMParseError_FWD_DEFINED__
typedef interface IXMLDOMParseError IXMLDOMParseError;
#endif

#ifndef __IXMLDOMParseError2_FWD_DEFINED__
#define __IXMLDOMParseError2_FWD_DEFINED__
typedef interface IXMLDOMParseError2 IXMLDOMParseError2;
#endif

#ifndef __IXMLDOMParseErrorCollection_FWD_DEFINED__
#define __IXMLDOMParseErrorCollection_FWD_DEFINED__
typedef interface IXMLDOMParseErrorCollection IXMLDOMParseErrorCollection;
#endif

#ifndef __DOMDocument26_FWD_DEFINED__
#define __DOMDocument26_FWD_DEFINED__
typedef struct DOMDocument26 DOMDocument26;
#endif /* defined __DOMDocument26_FWD_DEFINED__ */

#ifndef __DOMDocument30_FWD_DEFINED__
#define __DOMDocument30_FWD_DEFINED__
typedef struct DOMDocument30 DOMDocument30;
#endif /* defined __DOMDocument30_FWD_DEFINED__ */

#ifndef __DOMDocument40_FWD_DEFINED__
#define __DOMDocument40_FWD_DEFINED__
typedef struct DOMDocument40 DOMDocument40;
#endif /* defined __DOMDocument40_FWD_DEFINED__ */

#ifndef __DOMDocument60_FWD_DEFINED__
#define __DOMDocument60_FWD_DEFINED__
typedef struct DOMDocument60 DOMDocument60;
#endif /* defined __DOMDocument60_FWD_DEFINED__ */

#ifndef __DOMDocument_FWD_DEFINED__
#define __DOMDocument_FWD_DEFINED__
typedef struct DOMDocument DOMDocument;
#endif /* defined __DOMDocument_FWD_DEFINED__ */

#ifndef __FreeThreadedDOMDocument26_FWD_DEFINED__
#define __FreeThreadedDOMDocument26_FWD_DEFINED__
typedef struct FreeThreadedDOMDocument26 FreeThreadedDOMDocument26;
#endif /* defined __FreeThreadedDOMDocument26_FWD_DEFINED__ */

#ifndef __FreeThreadedDOMDocument30_FWD_DEFINED__
#define __FreeThreadedDOMDocument30_FWD_DEFINED__
typedef struct FreeThreadedDOMDocument30 FreeThreadedDOMDocument30;
#endif /* defined __FreeThreadedDOMDocument30_FWD_DEFINED__ */

#ifndef __FreeThreadedDOMDocument40_FWD_DEFINED__
#define __FreeThreadedDOMDocument40_FWD_DEFINED__
typedef struct FreeThreadedDOMDocument40 FreeThreadedDOMDocument40;
#endif /* defined __FreeThreadedDOMDocument40_FWD_DEFINED__ */

#ifndef __FreeThreadedDOMDocument60_FWD_DEFINED__
#define __FreeThreadedDOMDocument60_FWD_DEFINED__
typedef struct FreeThreadedDOMDocument60 FreeThreadedDOMDocument60;
#endif /* defined __FreeThreadedDOMDocument60_FWD_DEFINED__ */

#ifndef __FreeThreadedDOMDocument_FWD_DEFINED__
#define __FreeThreadedDOMDocument_FWD_DEFINED__
typedef struct FreeThreadedDOMDocument FreeThreadedDOMDocument;
#endif /* defined __FreeThreadedDOMDocument_FWD_DEFINED__ */

#ifndef __XMLHTTP26_FWD_DEFINED__
#define __XMLHTTP26_FWD_DEFINED__
typedef struct XMLHTTP26 XMLHTTP26;
#endif /* defined __XMLHTTP26_FWD_DEFINED__ */

#ifndef __XMLHTTP30_FWD_DEFINED__
#define __XMLHTTP30_FWD_DEFINED__
typedef struct XMLHTTP30 XMLHTTP30;
#endif /* defined __XMLHTTP30_FWD_DEFINED__ */

#ifndef __XMLHTTP40_FWD_DEFINED__
#define __XMLHTTP40_FWD_DEFINED__
typedef struct XMLHTTP40 XMLHTTP40;
#endif /* defined __XMLHTTP40_FWD_DEFINED__ */

#ifndef __XMLHTTP60_FWD_DEFINED__
#define __XMLHTTP60_FWD_DEFINED__
typedef struct XMLHTTP60 XMLHTTP60;
#endif /* defined __XMLHTTP60_FWD_DEFINED__ */

#ifndef __XMLHTTP_FWD_DEFINED__
#define __XMLHTTP_FWD_DEFINED__
typedef struct XMLHTTP XMLHTTP;
#endif /* defined __XMLHTTP_FWD_DEFINED__ */

#ifndef __ServerXMLHTTP30_FWD_DEFINED__
#define __ServerXMLHTTP30_FWD_DEFINED__
typedef struct ServerXMLHTTP30 ServerXMLHTTP30;
#endif /* defined __ServerXMLHTTP30_FWD_DEFINED__ */

#ifndef __ServerXMLHTTP40_FWD_DEFINED__
#define __ServerXMLHTTP40_FWD_DEFINED__
typedef struct ServerXMLHTTP40 ServerXMLHTTP40;
#endif /* defined __ServerXMLHTTP40_FWD_DEFINED__ */

#ifndef __ServerXMLHTTP60_FWD_DEFINED__
#define __ServerXMLHTTP60_FWD_DEFINED__
typedef struct ServerXMLHTTP60 ServerXMLHTTP60;
#endif /* defined __ServerXMLHTTP60_FWD_DEFINED__ */

#ifndef __ServerXMLHTTP_FWD_DEFINED__
#define __ServerXMLHTTP_FWD_DEFINED__
typedef struct ServerXMLHTTP ServerXMLHTTP;
#endif /* defined __ServerXMLHTTP_FWD_DEFINED__ */

#ifndef __XMLSchemaCache26_FWD_DEFINED__
#define __XMLSchemaCache26_FWD_DEFINED__
typedef struct XMLSchemaCache26 XMLSchemaCache26;
#endif /* defined __XMLSchemaCache26_FWD_DEFINED__ */

#ifndef __XMLSchemaCache30_FWD_DEFINED__
#define __XMLSchemaCache30_FWD_DEFINED__
typedef struct XMLSchemaCache30 XMLSchemaCache30;
#endif /* defined __XMLSchemaCache30_FWD_DEFINED__ */

#ifndef __XMLSchemaCache40_FWD_DEFINED__
#define __XMLSchemaCache40_FWD_DEFINED__
typedef struct XMLSchemaCache40 XMLSchemaCache40;
#endif /* defined __XMLSchemaCache40_FWD_DEFINED__ */

#ifndef __XMLSchemaCache60_FWD_DEFINED__
#define __XMLSchemaCache60_FWD_DEFINED__
typedef struct XMLSchemaCache60 XMLSchemaCache60;
#endif /* defined __XMLSchemaCache60_FWD_DEFINED__ */

#ifndef __XMLSchemaCache_FWD_DEFINED__
#define __XMLSchemaCache_FWD_DEFINED__
typedef struct XMLSchemaCache XMLSchemaCache;
#endif /* defined __XMLSchemaCache_FWD_DEFINED__ */

#ifndef __XSLTemplate26_FWD_DEFINED__
#define __XSLTemplate26_FWD_DEFINED__
typedef struct XSLTemplate26 XSLTemplate26;
#endif /* defined __XSLTemplate26_FWD_DEFINED__ */

#ifndef __XSLTemplate30_FWD_DEFINED__
#define __XSLTemplate30_FWD_DEFINED__
typedef struct XSLTemplate30 XSLTemplate30;
#endif /* defined __XSLTemplate30_FWD_DEFINED__ */

#ifndef __XSLTemplate40_FWD_DEFINED__
#define __XSLTemplate40_FWD_DEFINED__
typedef struct XSLTemplate40 XSLTemplate40;
#endif /* defined __XSLTemplate40_FWD_DEFINED__ */

#ifndef __XSLTemplate60_FWD_DEFINED__
#define __XSLTemplate60_FWD_DEFINED__
typedef struct XSLTemplate60 XSLTemplate60;
#endif /* defined __XSLTemplate60_FWD_DEFINED__ */

#ifndef __XSLTemplate_FWD_DEFINED__
#define __XSLTemplate_FWD_DEFINED__
typedef struct XSLTemplate XSLTemplate;
#endif /* defined __XSLTemplate_FWD_DEFINED__ */

#ifndef __ISAXAttributes_FWD_DEFINED__
#define __ISAXAttributes_FWD_DEFINED__
typedef interface ISAXAttributes ISAXAttributes;
#endif

#ifndef __ISAXContentHandler_FWD_DEFINED__
#define __ISAXContentHandler_FWD_DEFINED__
typedef interface ISAXContentHandler ISAXContentHandler;
#endif

#ifndef __ISAXDeclHandler_FWD_DEFINED__
#define __ISAXDeclHandler_FWD_DEFINED__
typedef interface ISAXDeclHandler ISAXDeclHandler;
#endif

#ifndef __ISAXDTDHandler_FWD_DEFINED__
#define __ISAXDTDHandler_FWD_DEFINED__
typedef interface ISAXDTDHandler ISAXDTDHandler;
#endif

#ifndef __ISAXEntityResolver_FWD_DEFINED__
#define __ISAXEntityResolver_FWD_DEFINED__
typedef interface ISAXEntityResolver ISAXEntityResolver;
#endif

#ifndef __ISAXErrorHandler_FWD_DEFINED__
#define __ISAXErrorHandler_FWD_DEFINED__
typedef interface ISAXErrorHandler ISAXErrorHandler;
#endif

#ifndef __ISAXLexicalHandler_FWD_DEFINED__
#define __ISAXLexicalHandler_FWD_DEFINED__
typedef interface ISAXLexicalHandler ISAXLexicalHandler;
#endif

#ifndef __ISAXLocator_FWD_DEFINED__
#define __ISAXLocator_FWD_DEFINED__
typedef interface ISAXLocator ISAXLocator;
#endif

#ifndef __ISAXXMLFilter_FWD_DEFINED__
#define __ISAXXMLFilter_FWD_DEFINED__
typedef interface ISAXXMLFilter ISAXXMLFilter;
#endif

#ifndef __ISAXXMLReader_FWD_DEFINED__
#define __ISAXXMLReader_FWD_DEFINED__
typedef interface ISAXXMLReader ISAXXMLReader;
#endif

#ifndef __IVBSAXAttributes_FWD_DEFINED__
#define __IVBSAXAttributes_FWD_DEFINED__
typedef interface IVBSAXAttributes IVBSAXAttributes;
#endif

#ifndef __IVBSAXContentHandler_FWD_DEFINED__
#define __IVBSAXContentHandler_FWD_DEFINED__
typedef interface IVBSAXContentHandler IVBSAXContentHandler;
#endif

#ifndef __IVBSAXDeclHandler_FWD_DEFINED__
#define __IVBSAXDeclHandler_FWD_DEFINED__
typedef interface IVBSAXDeclHandler IVBSAXDeclHandler;
#endif

#ifndef __IVBSAXDTDHandler_FWD_DEFINED__
#define __IVBSAXDTDHandler_FWD_DEFINED__
typedef interface IVBSAXDTDHandler IVBSAXDTDHandler;
#endif

#ifndef __IVBSAXEntityResolver_FWD_DEFINED__
#define __IVBSAXEntityResolver_FWD_DEFINED__
typedef interface IVBSAXEntityResolver IVBSAXEntityResolver;
#endif

#ifndef __IVBSAXErrorHandler_FWD_DEFINED__
#define __IVBSAXErrorHandler_FWD_DEFINED__
typedef interface IVBSAXErrorHandler IVBSAXErrorHandler;
#endif

#ifndef __IVBSAXLexicalHandler_FWD_DEFINED__
#define __IVBSAXLexicalHandler_FWD_DEFINED__
typedef interface IVBSAXLexicalHandler IVBSAXLexicalHandler;
#endif

#ifndef __IVBSAXLocator_FWD_DEFINED__
#define __IVBSAXLocator_FWD_DEFINED__
typedef interface IVBSAXLocator IVBSAXLocator;
#endif

#ifndef __IVBSAXXMLFilter_FWD_DEFINED__
#define __IVBSAXXMLFilter_FWD_DEFINED__
typedef interface IVBSAXXMLFilter IVBSAXXMLFilter;
#endif

#ifndef __IVBSAXXMLReader_FWD_DEFINED__
#define __IVBSAXXMLReader_FWD_DEFINED__
typedef interface IVBSAXXMLReader IVBSAXXMLReader;
#endif

#ifndef __IMXAttributes_FWD_DEFINED__
#define __IMXAttributes_FWD_DEFINED__
typedef interface IMXAttributes IMXAttributes;
#endif

#ifndef __IMXSchemaDeclHandler_FWD_DEFINED__
#define __IMXSchemaDeclHandler_FWD_DEFINED__
typedef interface IMXSchemaDeclHandler IMXSchemaDeclHandler;
#endif

#ifndef __IMXReaderControl_FWD_DEFINED__
#define __IMXReaderControl_FWD_DEFINED__
typedef interface IMXReaderControl IMXReaderControl;
#endif

#ifndef __IMXWriter_FWD_DEFINED__
#define __IMXWriter_FWD_DEFINED__
typedef interface IMXWriter IMXWriter;
#endif

#ifndef __IMXNamespacePrefixes_FWD_DEFINED__
#define __IMXNamespacePrefixes_FWD_DEFINED__
typedef interface IMXNamespacePrefixes IMXNamespacePrefixes;
#endif

#ifndef __IMXNamespaceManager_FWD_DEFINED__
#define __IMXNamespaceManager_FWD_DEFINED__
typedef interface IMXNamespaceManager IMXNamespaceManager;
#endif

#ifndef __IVBMXNamespaceManager_FWD_DEFINED__
#define __IVBMXNamespaceManager_FWD_DEFINED__
typedef interface IVBMXNamespaceManager IVBMXNamespaceManager;
#endif

#ifndef __IMXXMLFilter_FWD_DEFINED__
#define __IMXXMLFilter_FWD_DEFINED__
typedef interface IMXXMLFilter IMXXMLFilter;
#endif

#ifndef __ISchemaStringCollection_FWD_DEFINED__
#define __ISchemaStringCollection_FWD_DEFINED__
typedef interface ISchemaStringCollection ISchemaStringCollection;
#endif

#ifndef __ISchemaItemCollection_FWD_DEFINED__
#define __ISchemaItemCollection_FWD_DEFINED__
typedef interface ISchemaItemCollection ISchemaItemCollection;
#endif

#ifndef __ISchemaItem_FWD_DEFINED__
#define __ISchemaItem_FWD_DEFINED__
typedef interface ISchemaItem ISchemaItem;
#endif

#ifndef __ISchema_FWD_DEFINED__
#define __ISchema_FWD_DEFINED__
typedef interface ISchema ISchema;
#endif

#ifndef __ISchemaParticle_FWD_DEFINED__
#define __ISchemaParticle_FWD_DEFINED__
typedef interface ISchemaParticle ISchemaParticle;
#endif

#ifndef __ISchemaAttribute_FWD_DEFINED__
#define __ISchemaAttribute_FWD_DEFINED__
typedef interface ISchemaAttribute ISchemaAttribute;
#endif

#ifndef __ISchemaElement_FWD_DEFINED__
#define __ISchemaElement_FWD_DEFINED__
typedef interface ISchemaElement ISchemaElement;
#endif

#ifndef __ISchemaType_FWD_DEFINED__
#define __ISchemaType_FWD_DEFINED__
typedef interface ISchemaType ISchemaType;
#endif

#ifndef __ISchemaComplexType_FWD_DEFINED__
#define __ISchemaComplexType_FWD_DEFINED__
typedef interface ISchemaComplexType ISchemaComplexType;
#endif

#ifndef __ISchemaAttributeGroup_FWD_DEFINED__
#define __ISchemaAttributeGroup_FWD_DEFINED__
typedef interface ISchemaAttributeGroup ISchemaAttributeGroup;
#endif

#ifndef __ISchemaModelGroup_FWD_DEFINED__
#define __ISchemaModelGroup_FWD_DEFINED__
typedef interface ISchemaModelGroup ISchemaModelGroup;
#endif

#ifndef __ISchemaAny_FWD_DEFINED__
#define __ISchemaAny_FWD_DEFINED__
typedef interface ISchemaAny ISchemaAny;
#endif

#ifndef __ISchemaIdentityConstraint_FWD_DEFINED__
#define __ISchemaIdentityConstraint_FWD_DEFINED__
typedef interface ISchemaIdentityConstraint ISchemaIdentityConstraint;
#endif

#ifndef __ISchemaNotation_FWD_DEFINED__
#define __ISchemaNotation_FWD_DEFINED__
typedef interface ISchemaNotation ISchemaNotation;
#endif

#ifndef __SAXXMLReader30_FWD_DEFINED__
#define __SAXXMLReader30_FWD_DEFINED__
typedef struct SAXXMLReader30 SAXXMLReader30;
#endif /* defined __SAXXMLReader30_FWD_DEFINED__ */

#ifndef __SAXXMLReader40_FWD_DEFINED__
#define __SAXXMLReader40_FWD_DEFINED__
typedef struct SAXXMLReader40 SAXXMLReader40;
#endif /* defined __SAXXMLReader40_FWD_DEFINED__ */

#ifndef __SAXXMLReader60_FWD_DEFINED__
#define __SAXXMLReader60_FWD_DEFINED__
typedef struct SAXXMLReader60 SAXXMLReader60;
#endif /* defined __SAXXMLReader60_FWD_DEFINED__ */

#ifndef __SAXXMLReader_FWD_DEFINED__
#define __SAXXMLReader_FWD_DEFINED__
typedef struct SAXXMLReader SAXXMLReader;
#endif /* defined __SAXXMLReader_FWD_DEFINED__ */

#ifndef __MXHTMLWriter_FWD_DEFINED__
#define __MXHTMLWriter_FWD_DEFINED__
typedef struct MXHTMLWriter MXHTMLWriter;
#endif /* defined __MXHTMLWriter_FWD_DEFINED__ */

#ifndef __MXHTMLWriter30_FWD_DEFINED__
#define __MXHTMLWriter30_FWD_DEFINED__
typedef struct MXHTMLWriter30 MXHTMLWriter30;
#endif /* defined __MXHTMLWriter30_FWD_DEFINED__ */

#ifndef __MXHTMLWriter40_FWD_DEFINED__
#define __MXHTMLWriter40_FWD_DEFINED__
typedef struct MXHTMLWriter40 MXHTMLWriter40;
#endif /* defined __MXHTMLWriter40_FWD_DEFINED__ */

#ifndef __MXHTMLWriter60_FWD_DEFINED__
#define __MXHTMLWriter60_FWD_DEFINED__
typedef struct MXHTMLWriter60 MXHTMLWriter60;
#endif /* defined __MXHTMLWriter60_FWD_DEFINED__ */

#ifndef __MXXMLWriter30_FWD_DEFINED__
#define __MXXMLWriter30_FWD_DEFINED__
typedef struct MXXMLWriter30 MXXMLWriter30;
#endif /* defined __MXXMLWriter30_FWD_DEFINED__ */

#ifndef __MXXMLWriter40_FWD_DEFINED__
#define __MXXMLWriter40_FWD_DEFINED__
typedef struct MXXMLWriter40 MXXMLWriter40;
#endif /* defined __MXXMLWriter40_FWD_DEFINED__ */

#ifndef __MXXMLWriter60_FWD_DEFINED__
#define __MXXMLWriter60_FWD_DEFINED__
typedef struct MXXMLWriter60 MXXMLWriter60;
#endif /* defined __MXXMLWriter60_FWD_DEFINED__ */

#ifndef __MXXMLWriter_FWD_DEFINED__
#define __MXXMLWriter_FWD_DEFINED__
typedef struct MXXMLWriter MXXMLWriter;
#endif /* defined __MXXMLWriter_FWD_DEFINED__ */

#ifndef __MXNamespaceManager_FWD_DEFINED__
#define __MXNamespaceManager_FWD_DEFINED__
typedef struct MXNamespaceManager MXNamespaceManager;
#endif /* defined __MXNamespaceManager_FWD_DEFINED__ */

#ifndef __MXNamespaceManager40_FWD_DEFINED__
#define __MXNamespaceManager40_FWD_DEFINED__
typedef struct MXNamespaceManager40 MXNamespaceManager40;
#endif /* defined __MXNamespaceManager40_FWD_DEFINED__ */

#ifndef __MXNamespaceManager60_FWD_DEFINED__
#define __MXNamespaceManager60_FWD_DEFINED__
typedef struct MXNamespaceManager60 MXNamespaceManager60;
#endif /* defined __MXNamespaceManager60_FWD_DEFINED__ */

#ifndef __SAXAttributes30_FWD_DEFINED__
#define __SAXAttributes30_FWD_DEFINED__
typedef struct SAXAttributes30 SAXAttributes30;
#endif /* defined __SAXAttributes30_FWD_DEFINED__ */

#ifndef __SAXAttributes40_FWD_DEFINED__
#define __SAXAttributes40_FWD_DEFINED__
typedef struct SAXAttributes40 SAXAttributes40;
#endif /* defined __SAXAttributes40_FWD_DEFINED__ */

#ifndef __SAXAttributes60_FWD_DEFINED__
#define __SAXAttributes60_FWD_DEFINED__
typedef struct SAXAttributes60 SAXAttributes60;
#endif /* defined __SAXAttributes60_FWD_DEFINED__ */

#ifndef __SAXAttributes_FWD_DEFINED__
#define __SAXAttributes_FWD_DEFINED__
typedef struct SAXAttributes SAXAttributes;
#endif /* defined __SAXAttributes_FWD_DEFINED__ */

/* Headers for imported files */

#include <unknwn.h>
#include <objidl.h>
#include <oaidl.h>

#ifdef __cplusplus
extern "C" {
#endif


DEFINE_GUID(LIBID_MSXML2, 0xf5078f18, 0xc551, 0x11d3, 0x89,0xb9, 0x00,0x00,0xf8,0x1f,0xe2,0x21);

#ifndef __IXMLDOMImplementation_FWD_DEFINED__
#define __IXMLDOMImplementation_FWD_DEFINED__
typedef interface IXMLDOMImplementation IXMLDOMImplementation;
#endif

#ifndef __IXMLDOMNode_FWD_DEFINED__
#define __IXMLDOMNode_FWD_DEFINED__
typedef interface IXMLDOMNode IXMLDOMNode;
#endif

#ifndef __IXMLDOMDocumentFragment_FWD_DEFINED__
#define __IXMLDOMDocumentFragment_FWD_DEFINED__
typedef interface IXMLDOMDocumentFragment IXMLDOMDocumentFragment;
#endif

#ifndef __IXMLDOMDocument_FWD_DEFINED__
#define __IXMLDOMDocument_FWD_DEFINED__
typedef interface IXMLDOMDocument IXMLDOMDocument;
#endif

#ifndef __IXMLDOMSchemaCollection_FWD_DEFINED__
#define __IXMLDOMSchemaCollection_FWD_DEFINED__
typedef interface IXMLDOMSchemaCollection IXMLDOMSchemaCollection;
#endif

#ifndef __IXMLDOMDocument2_FWD_DEFINED__
#define __IXMLDOMDocument2_FWD_DEFINED__
typedef interface IXMLDOMDocument2 IXMLDOMDocument2;
#endif

#ifndef __IXMLDOMNodeList_FWD_DEFINED__
#define __IXMLDOMNodeList_FWD_DEFINED__
typedef interface IXMLDOMNodeList IXMLDOMNodeList;
#endif

#ifndef __IXMLDOMNamedNodeMap_FWD_DEFINED__
#define __IXMLDOMNamedNodeMap_FWD_DEFINED__
typedef interface IXMLDOMNamedNodeMap IXMLDOMNamedNodeMap;
#endif

#ifndef __IXMLDOMCharacterData_FWD_DEFINED__
#define __IXMLDOMCharacterData_FWD_DEFINED__
typedef interface IXMLDOMCharacterData IXMLDOMCharacterData;
#endif

#ifndef __IXMLDOMAttribute_FWD_DEFINED__
#define __IXMLDOMAttribute_FWD_DEFINED__
typedef interface IXMLDOMAttribute IXMLDOMAttribute;
#endif

#ifndef __IXMLDOMElement_FWD_DEFINED__
#define __IXMLDOMElement_FWD_DEFINED__
typedef interface IXMLDOMElement IXMLDOMElement;
#endif

#ifndef __IXMLDOMText_FWD_DEFINED__
#define __IXMLDOMText_FWD_DEFINED__
typedef interface IXMLDOMText IXMLDOMText;
#endif

#ifndef __IXMLDOMComment_FWD_DEFINED__
#define __IXMLDOMComment_FWD_DEFINED__
typedef interface IXMLDOMComment IXMLDOMComment;
#endif

#ifndef __IXMLDOMProcessingInstruction_FWD_DEFINED__
#define __IXMLDOMProcessingInstruction_FWD_DEFINED__
typedef interface IXMLDOMProcessingInstruction IXMLDOMProcessingInstruction;
#endif

#ifndef __IXMLDOMCDATASection_FWD_DEFINED__
#define __IXMLDOMCDATASection_FWD_DEFINED__
typedef interface IXMLDOMCDATASection IXMLDOMCDATASection;
#endif

#ifndef __IXMLDOMDocumentType_FWD_DEFINED__
#define __IXMLDOMDocumentType_FWD_DEFINED__
typedef interface IXMLDOMDocumentType IXMLDOMDocumentType;
#endif

#ifndef __IXMLDOMNotation_FWD_DEFINED__
#define __IXMLDOMNotation_FWD_DEFINED__
typedef interface IXMLDOMNotation IXMLDOMNotation;
#endif

#ifndef __IXMLDOMEntity_FWD_DEFINED__
#define __IXMLDOMEntity_FWD_DEFINED__
typedef interface IXMLDOMEntity IXMLDOMEntity;
#endif

#ifndef __IXMLDOMEntityReference_FWD_DEFINED__
#define __IXMLDOMEntityReference_FWD_DEFINED__
typedef interface IXMLDOMEntityReference IXMLDOMEntityReference;
#endif

#ifndef __IXMLDOMParseError_FWD_DEFINED__
#define __IXMLDOMParseError_FWD_DEFINED__
typedef interface IXMLDOMParseError IXMLDOMParseError;
#endif

#ifndef __IXMLDOMParseErrorCollection_FWD_DEFINED__
#define __IXMLDOMParseErrorCollection_FWD_DEFINED__
typedef interface IXMLDOMParseErrorCollection IXMLDOMParseErrorCollection;
#endif

#ifndef __IXTLRuntime_FWD_DEFINED__
#define __IXTLRuntime_FWD_DEFINED__
typedef interface IXTLRuntime IXTLRuntime;
#endif

#ifndef __IXSLTemplate_FWD_DEFINED__
#define __IXSLTemplate_FWD_DEFINED__
typedef interface IXSLTemplate IXSLTemplate;
#endif

#ifndef __IXSLProcessor_FWD_DEFINED__
#define __IXSLProcessor_FWD_DEFINED__
typedef interface IXSLProcessor IXSLProcessor;
#endif

#ifndef __ISAXAttributes_FWD_DEFINED__
#define __ISAXAttributes_FWD_DEFINED__
typedef interface ISAXAttributes ISAXAttributes;
#endif

#ifndef __ISAXContentHandler_FWD_DEFINED__
#define __ISAXContentHandler_FWD_DEFINED__
typedef interface ISAXContentHandler ISAXContentHandler;
#endif

#ifndef __ISAXDeclHandler_FWD_DEFINED__
#define __ISAXDeclHandler_FWD_DEFINED__
typedef interface ISAXDeclHandler ISAXDeclHandler;
#endif

#ifndef __ISAXDTDHandler_FWD_DEFINED__
#define __ISAXDTDHandler_FWD_DEFINED__
typedef interface ISAXDTDHandler ISAXDTDHandler;
#endif

#ifndef __ISAXEntityResolver_FWD_DEFINED__
#define __ISAXEntityResolver_FWD_DEFINED__
typedef interface ISAXEntityResolver ISAXEntityResolver;
#endif

#ifndef __ISAXErrorHandler_FWD_DEFINED__
#define __ISAXErrorHandler_FWD_DEFINED__
typedef interface ISAXErrorHandler ISAXErrorHandler;
#endif

#ifndef __ISAXLexicalHandler_FWD_DEFINED__
#define __ISAXLexicalHandler_FWD_DEFINED__
typedef interface ISAXLexicalHandler ISAXLexicalHandler;
#endif

#ifndef __ISAXLocator_FWD_DEFINED__
#define __ISAXLocator_FWD_DEFINED__
typedef interface ISAXLocator ISAXLocator;
#endif

#ifndef __ISAXXMLFilter_FWD_DEFINED__
#define __ISAXXMLFilter_FWD_DEFINED__
typedef interface ISAXXMLFilter ISAXXMLFilter;
#endif

#ifndef __ISAXXMLReader_FWD_DEFINED__
#define __ISAXXMLReader_FWD_DEFINED__
typedef interface ISAXXMLReader ISAXXMLReader;
#endif

#ifndef __IVBSAXAttributes_FWD_DEFINED__
#define __IVBSAXAttributes_FWD_DEFINED__
typedef interface IVBSAXAttributes IVBSAXAttributes;
#endif

#ifndef __IVBSAXContentHandler_FWD_DEFINED__
#define __IVBSAXContentHandler_FWD_DEFINED__
typedef interface IVBSAXContentHandler IVBSAXContentHandler;
#endif

#ifndef __IVBSAXDeclHandler_FWD_DEFINED__
#define __IVBSAXDeclHandler_FWD_DEFINED__
typedef interface IVBSAXDeclHandler IVBSAXDeclHandler;
#endif

#ifndef __IVBSAXDTDHandler_FWD_DEFINED__
#define __IVBSAXDTDHandler_FWD_DEFINED__
typedef interface IVBSAXDTDHandler IVBSAXDTDHandler;
#endif

#ifndef __IVBSAXEntityResolver_FWD_DEFINED__
#define __IVBSAXEntityResolver_FWD_DEFINED__
typedef interface IVBSAXEntityResolver IVBSAXEntityResolver;
#endif

#ifndef __IVBSAXErrorHandler_FWD_DEFINED__
#define __IVBSAXErrorHandler_FWD_DEFINED__
typedef interface IVBSAXErrorHandler IVBSAXErrorHandler;
#endif

#ifndef __IVBSAXLexicalHandler_FWD_DEFINED__
#define __IVBSAXLexicalHandler_FWD_DEFINED__
typedef interface IVBSAXLexicalHandler IVBSAXLexicalHandler;
#endif

#ifndef __IVBSAXLocator_FWD_DEFINED__
#define __IVBSAXLocator_FWD_DEFINED__
typedef interface IVBSAXLocator IVBSAXLocator;
#endif

#ifndef __IVBSAXXMLFilter_FWD_DEFINED__
#define __IVBSAXXMLFilter_FWD_DEFINED__
typedef interface IVBSAXXMLFilter IVBSAXXMLFilter;
#endif

#ifndef __IVBSAXXMLReader_FWD_DEFINED__
#define __IVBSAXXMLReader_FWD_DEFINED__
typedef interface IVBSAXXMLReader IVBSAXXMLReader;
#endif

#ifndef __IMXAttributes_FWD_DEFINED__
#define __IMXAttributes_FWD_DEFINED__
typedef interface IMXAttributes IMXAttributes;
#endif

#ifndef __IMXReaderControl_FWD_DEFINED__
#define __IMXReaderControl_FWD_DEFINED__
typedef interface IMXReaderControl IMXReaderControl;
#endif

#ifndef __IMXWriter_FWD_DEFINED__
#define __IMXWriter_FWD_DEFINED__
typedef interface IMXWriter IMXWriter;
#endif

#ifndef __IXMLDOMSchemaCollection2_FWD_DEFINED__
#define __IXMLDOMSchemaCollection2_FWD_DEFINED__
typedef interface IXMLDOMSchemaCollection2 IXMLDOMSchemaCollection2;
#endif

#ifndef __ISchemaStringCollection_FWD_DEFINED__
#define __ISchemaStringCollection_FWD_DEFINED__
typedef interface ISchemaStringCollection ISchemaStringCollection;
#endif

#ifndef __ISchemaItemCollection_FWD_DEFINED__
#define __ISchemaItemCollection_FWD_DEFINED__
typedef interface ISchemaItemCollection ISchemaItemCollection;
#endif

#ifndef __ISchemaItem_FWD_DEFINED__
#define __ISchemaItem_FWD_DEFINED__
typedef interface ISchemaItem ISchemaItem;
#endif

#ifndef __ISchema_FWD_DEFINED__
#define __ISchema_FWD_DEFINED__
typedef interface ISchema ISchema;
#endif

#ifndef __ISchemaParticle_FWD_DEFINED__
#define __ISchemaParticle_FWD_DEFINED__
typedef interface ISchemaParticle ISchemaParticle;
#endif

#ifndef __ISchemaAttribute_FWD_DEFINED__
#define __ISchemaAttribute_FWD_DEFINED__
typedef interface ISchemaAttribute ISchemaAttribute;
#endif

#ifndef __ISchemaElement_FWD_DEFINED__
#define __ISchemaElement_FWD_DEFINED__
typedef interface ISchemaElement ISchemaElement;
#endif

#ifndef __ISchemaType_FWD_DEFINED__
#define __ISchemaType_FWD_DEFINED__
typedef interface ISchemaType ISchemaType;
#endif

#ifndef __ISchemaComplexType_FWD_DEFINED__
#define __ISchemaComplexType_FWD_DEFINED__
typedef interface ISchemaComplexType ISchemaComplexType;
#endif

#ifndef __ISchemaAttributeGroup_FWD_DEFINED__
#define __ISchemaAttributeGroup_FWD_DEFINED__
typedef interface ISchemaAttributeGroup ISchemaAttributeGroup;
#endif

#ifndef __ISchemaModelGroup_FWD_DEFINED__
#define __ISchemaModelGroup_FWD_DEFINED__
typedef interface ISchemaModelGroup ISchemaModelGroup;
#endif

#ifndef __ISchemaAny_FWD_DEFINED__
#define __ISchemaAny_FWD_DEFINED__
typedef interface ISchemaAny ISchemaAny;
#endif

#ifndef __ISchemaIdentityConstraint_FWD_DEFINED__
#define __ISchemaIdentityConstraint_FWD_DEFINED__
typedef interface ISchemaIdentityConstraint ISchemaIdentityConstraint;
#endif

#ifndef __ISchemaNotation_FWD_DEFINED__
#define __ISchemaNotation_FWD_DEFINED__
typedef interface ISchemaNotation ISchemaNotation;
#endif

#define DOMDocument DOMDocument2
#define CLSID_DOMDocument CLSID_DOMDocument2
#ifndef __MSXML_DOMNODETYPE_DEFINED
#define __MSXML_DOMNODETYPE_DEFINED
typedef enum tagDOMNodeType {
    NODE_INVALID = 0,
    NODE_ELEMENT = 1,
    NODE_ATTRIBUTE = 2,
    NODE_TEXT = 3,
    NODE_CDATA_SECTION = 4,
    NODE_ENTITY_REFERENCE = 5,
    NODE_ENTITY = 6,
    NODE_PROCESSING_INSTRUCTION = 7,
    NODE_COMMENT = 8,
    NODE_DOCUMENT = 9,
    NODE_DOCUMENT_TYPE = 10,
    NODE_DOCUMENT_FRAGMENT = 11,
    NODE_NOTATION = 12
} DOMNodeType;
#endif
typedef enum _SOMITEMTYPE {
    SOMITEM_SCHEMA = 0x1000,
    SOMITEM_ATTRIBUTE = 0x1001,
    SOMITEM_ATTRIBUTEGROUP = 0x1002,
    SOMITEM_NOTATION = 0x1003,
    SOMITEM_IDENTITYCONSTRAINT = 0x1100,
    SOMITEM_KEY = 0x1101,
    SOMITEM_KEYREF = 0x1102,
    SOMITEM_UNIQUE = 0x1103,
    SOMITEM_ANYTYPE = 0x2000,
    SOMITEM_DATATYPE = 0x2100,
    SOMITEM_DATATYPE_ANYTYPE = 0x2101,
    SOMITEM_DATATYPE_ANYURI = 0x2102,
    SOMITEM_DATATYPE_BASE64BINARY = 0x2103,
    SOMITEM_DATATYPE_BOOLEAN = 0x2104,
    SOMITEM_DATATYPE_BYTE = 0x2105,
    SOMITEM_DATATYPE_DATE = 0x2106,
    SOMITEM_DATATYPE_DATETIME = 0x2107,
    SOMITEM_DATATYPE_DAY = 0x2108,
    SOMITEM_DATATYPE_DECIMAL = 0x2109,
    SOMITEM_DATATYPE_DOUBLE = 0x210a,
    SOMITEM_DATATYPE_DURATION = 0x210b,
    SOMITEM_DATATYPE_ENTITIES = 0x210c,
    SOMITEM_DATATYPE_ENTITY = 0x210d,
    SOMITEM_DATATYPE_FLOAT = 0x210e,
    SOMITEM_DATATYPE_HEXBINARY = 0x210f,
    SOMITEM_DATATYPE_ID = 0x2110,
    SOMITEM_DATATYPE_IDREF = 0x2111,
    SOMITEM_DATATYPE_IDREFS = 0x2112,
    SOMITEM_DATATYPE_INT = 0x2113,
    SOMITEM_DATATYPE_INTEGER = 0x2114,
    SOMITEM_DATATYPE_LANGUAGE = 0x2115,
    SOMITEM_DATATYPE_LONG = 0x2116,
    SOMITEM_DATATYPE_MONTH = 0x2117,
    SOMITEM_DATATYPE_MONTHDAY = 0x2118,
    SOMITEM_DATATYPE_NAME = 0x2119,
    SOMITEM_DATATYPE_NCNAME = 0x211a,
    SOMITEM_DATATYPE_NEGATIVEINTEGER = 0x211b,
    SOMITEM_DATATYPE_NMTOKEN = 0x211c,
    SOMITEM_DATATYPE_NMTOKENS = 0x211d,
    SOMITEM_DATATYPE_NONNEGATIVEINTEGER = 0x211e,
    SOMITEM_DATATYPE_NONPOSITIVEINTEGER = 0x211f,
    SOMITEM_DATATYPE_NORMALIZEDSTRING = 0x2120,
    SOMITEM_DATATYPE_NOTATION = 0x2121,
    SOMITEM_DATATYPE_POSITIVEINTEGER = 0x2122,
    SOMITEM_DATATYPE_QNAME = 0x2123,
    SOMITEM_DATATYPE_SHORT = 0x2124,
    SOMITEM_DATATYPE_STRING = 0x2125,
    SOMITEM_DATATYPE_TIME = 0x2126,
    SOMITEM_DATATYPE_TOKEN = 0x2127,
    SOMITEM_DATATYPE_UNSIGNEDBYTE = 0x2128,
    SOMITEM_DATATYPE_UNSIGNEDINT = 0x2129,
    SOMITEM_DATATYPE_UNSIGNEDLONG = 0x212a,
    SOMITEM_DATATYPE_UNSIGNEDSHORT = 0x212b,
    SOMITEM_DATATYPE_YEAR = 0x212c,
    SOMITEM_DATATYPE_YEARMONTH = 0x212d,
    SOMITEM_DATATYPE_ANYSIMPLETYPE = 0x21ff,
    SOMITEM_SIMPLETYPE = 0x2200,
    SOMITEM_COMPLEXTYPE = 0x2400,
    SOMITEM_PARTICLE = 0x4000,
    SOMITEM_ANY = 0x4001,
    SOMITEM_ANYATTRIBUTE = 0x4002,
    SOMITEM_ELEMENT = 0x4003,
    SOMITEM_GROUP = 0x4100,
    SOMITEM_ALL = 0x4101,
    SOMITEM_CHOICE = 0x4102,
    SOMITEM_SEQUENCE = 0x4103,
    SOMITEM_EMPTYPARTICLE = 0x4104,
    SOMITEM_NULL = 0x800,
    SOMITEM_NULL_TYPE = 0x2800,
    SOMITEM_NULL_ANY = 0x4801,
    SOMITEM_NULL_ANYATTRIBUTE = 0x4802,
    SOMITEM_NULL_ELEMENT = 0x4803
} SOMITEMTYPE;
typedef enum _SCHEMAUSE {
    SCHEMAUSE_OPTIONAL = 0,
    SCHEMAUSE_PROHIBITED = 1,
    SCHEMAUSE_REQUIRED = 2
} SCHEMAUSE;
typedef enum _SCHEMADERIVATIONMETHOD {
    SCHEMADERIVATIONMETHOD_EMPTY = 0x0,
    SCHEMADERIVATIONMETHOD_SUBSTITUTION = 0x1,
    SCHEMADERIVATIONMETHOD_EXTENSION = 0x2,
    SCHEMADERIVATIONMETHOD_RESTRICTION = 0x4,
    SCHEMADERIVATIONMETHOD_LIST = 0x8,
    SCHEMADERIVATIONMETHOD_UNION = 0x10,
    SCHEMADERIVATIONMETHOD_ALL = 0xff,
    SCHEMADERIVATIONMETHOD_NONE = 0x100
} SCHEMADERIVATIONMETHOD;
typedef enum _SCHEMACONTENTTYPE {
    SCHEMACONTENTTYPE_EMPTY = 0,
    SCHEMACONTENTTYPE_TEXTONLY = 1,
    SCHEMACONTENTTYPE_ELEMENTONLY = 2,
    SCHEMACONTENTTYPE_MIXED = 3
} SCHEMACONTENTTYPE;
typedef enum _SCHEMAPROCESSCONTENTS {
    SCHEMAPROCESSCONTENTS_NONE = 0,
    SCHEMAPROCESSCONTENTS_SKIP = 1,
    SCHEMAPROCESSCONTENTS_LAX = 2,
    SCHEMAPROCESSCONTENTS_STRICT = 3
} SCHEMAPROCESSCONTENTS;
typedef enum _SCHEMAWHITESPACE {
    SCHEMAWHITESPACE_NONE = -1,
    SCHEMAWHITESPACE_PRESERVE = 0,
    SCHEMAWHITESPACE_REPLACE = 1,
    SCHEMAWHITESPACE_COLLAPSE = 2
} SCHEMAWHITESPACE;
typedef enum _SCHEMATYPEVARIETY {
    SCHEMATYPEVARIETY_NONE = -1,
    SCHEMATYPEVARIETY_ATOMIC = 0,
    SCHEMATYPEVARIETY_LIST = 1,
    SCHEMATYPEVARIETY_UNION = 2
} SCHEMATYPEVARIETY;
/*****************************************************************************
 * IXMLElementCollection interface
 */
#ifndef __IXMLElementCollection_INTERFACE_DEFINED__
#define __IXMLElementCollection_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLElementCollection, 0x65725580, 0x9b5d, 0x11d0, 0x9b,0xfe, 0x00,0xc0,0x4f,0xc9,0x9c,0x8e);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLElementCollection : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE put_length(
        LONG v) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_length(
        LONG *p) = 0;

    virtual HRESULT STDMETHODCALLTYPE get__newEnum(
        IUnknown **ppUnk) = 0;

    virtual HRESULT STDMETHODCALLTYPE item(
        VARIANT var1,
        VARIANT var2,
        IDispatch **ppDisp) = 0;

};
#else
typedef struct IXMLElementCollectionVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXMLElementCollection* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXMLElementCollection* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXMLElementCollection* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXMLElementCollection* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXMLElementCollection* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXMLElementCollection* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXMLElementCollection* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IXMLElementCollection methods ***/
    HRESULT (STDMETHODCALLTYPE *put_length)(
        IXMLElementCollection* This,
        LONG v);

    HRESULT (STDMETHODCALLTYPE *get_length)(
        IXMLElementCollection* This,
        LONG *p);

    HRESULT (STDMETHODCALLTYPE *get__newEnum)(
        IXMLElementCollection* This,
        IUnknown **ppUnk);

    HRESULT (STDMETHODCALLTYPE *item)(
        IXMLElementCollection* This,
        VARIANT var1,
        VARIANT var2,
        IDispatch **ppDisp);

    END_INTERFACE
} IXMLElementCollectionVtbl;
interface IXMLElementCollection {
    CONST_VTBL IXMLElementCollectionVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLElementCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXMLElementCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXMLElementCollection_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXMLElementCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXMLElementCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXMLElementCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXMLElementCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLElementCollection methods ***/
#define IXMLElementCollection_put_length(This,v) (This)->lpVtbl->put_length(This,v)
#define IXMLElementCollection_get_length(This,p) (This)->lpVtbl->get_length(This,p)
#define IXMLElementCollection_get__newEnum(This,ppUnk) (This)->lpVtbl->get__newEnum(This,ppUnk)
#define IXMLElementCollection_item(This,var1,var2,ppDisp) (This)->lpVtbl->item(This,var1,var2,ppDisp)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLElementCollection_put_length_Proxy(
    IXMLElementCollection* This,
    LONG v);
void __RPC_STUB IXMLElementCollection_put_length_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLElementCollection_get_length_Proxy(
    IXMLElementCollection* This,
    LONG *p);
void __RPC_STUB IXMLElementCollection_get_length_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLElementCollection_get__newEnum_Proxy(
    IXMLElementCollection* This,
    IUnknown **ppUnk);
void __RPC_STUB IXMLElementCollection_get__newEnum_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLElementCollection_item_Proxy(
    IXMLElementCollection* This,
    VARIANT var1,
    VARIANT var2,
    IDispatch **ppDisp);
void __RPC_STUB IXMLElementCollection_item_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLElementCollection_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLElement interface
 */
#ifndef __IXMLElement_INTERFACE_DEFINED__
#define __IXMLElement_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLElement, 0x3f7f31ac, 0xe15f, 0x11d0, 0x9c,0x25, 0x00,0xc0,0x4f,0xc9,0x9c,0x8e);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLElement : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_tagName(
        BSTR *p) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_tagName(
        BSTR p) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_parent(
        IXMLElement **parent) = 0;

    virtual HRESULT STDMETHODCALLTYPE setAttribute(
        BSTR strPropertyName,
        VARIANT PropertyValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE getAttribute(
        BSTR strPropertyName,
        VARIANT *PropertyValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE removeAttribute(
        BSTR strPropertyName) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_children(
        IXMLElementCollection **p) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_type(
        LONG *p) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_text(
        BSTR *p) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_text(
        BSTR p) = 0;

    virtual HRESULT STDMETHODCALLTYPE addChild(
        IXMLElement *pChildElem,
        LONG lIndex,
        LONG lreserved) = 0;

    virtual HRESULT STDMETHODCALLTYPE removeChild(
        IXMLElement *pChildElem) = 0;

};
#else
typedef struct IXMLElementVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXMLElement* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXMLElement* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXMLElement* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXMLElement* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXMLElement* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXMLElement* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXMLElement* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IXMLElement methods ***/
    HRESULT (STDMETHODCALLTYPE *get_tagName)(
        IXMLElement* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *put_tagName)(
        IXMLElement* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_parent)(
        IXMLElement* This,
        IXMLElement **parent);

    HRESULT (STDMETHODCALLTYPE *setAttribute)(
        IXMLElement* This,
        BSTR strPropertyName,
        VARIANT PropertyValue);

    HRESULT (STDMETHODCALLTYPE *getAttribute)(
        IXMLElement* This,
        BSTR strPropertyName,
        VARIANT *PropertyValue);

    HRESULT (STDMETHODCALLTYPE *removeAttribute)(
        IXMLElement* This,
        BSTR strPropertyName);

    HRESULT (STDMETHODCALLTYPE *get_children)(
        IXMLElement* This,
        IXMLElementCollection **p);

    HRESULT (STDMETHODCALLTYPE *get_type)(
        IXMLElement* This,
        LONG *p);

    HRESULT (STDMETHODCALLTYPE *get_text)(
        IXMLElement* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *put_text)(
        IXMLElement* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *addChild)(
        IXMLElement* This,
        IXMLElement *pChildElem,
        LONG lIndex,
        LONG lreserved);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXMLElement* This,
        IXMLElement *pChildElem);

    END_INTERFACE
} IXMLElementVtbl;
interface IXMLElement {
    CONST_VTBL IXMLElementVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLElement_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXMLElement_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXMLElement_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXMLElement_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXMLElement_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXMLElement_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXMLElement_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLElement methods ***/
#define IXMLElement_get_tagName(This,p) (This)->lpVtbl->get_tagName(This,p)
#define IXMLElement_put_tagName(This,p) (This)->lpVtbl->put_tagName(This,p)
#define IXMLElement_get_parent(This,parent) (This)->lpVtbl->get_parent(This,parent)
#define IXMLElement_setAttribute(This,strPropertyName,PropertyValue) (This)->lpVtbl->setAttribute(This,strPropertyName,PropertyValue)
#define IXMLElement_getAttribute(This,strPropertyName,PropertyValue) (This)->lpVtbl->getAttribute(This,strPropertyName,PropertyValue)
#define IXMLElement_removeAttribute(This,strPropertyName) (This)->lpVtbl->removeAttribute(This,strPropertyName)
#define IXMLElement_get_children(This,p) (This)->lpVtbl->get_children(This,p)
#define IXMLElement_get_type(This,p) (This)->lpVtbl->get_type(This,p)
#define IXMLElement_get_text(This,p) (This)->lpVtbl->get_text(This,p)
#define IXMLElement_put_text(This,p) (This)->lpVtbl->put_text(This,p)
#define IXMLElement_addChild(This,pChildElem,lIndex,lreserved) (This)->lpVtbl->addChild(This,pChildElem,lIndex,lreserved)
#define IXMLElement_removeChild(This,pChildElem) (This)->lpVtbl->removeChild(This,pChildElem)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLElement_get_tagName_Proxy(
    IXMLElement* This,
    BSTR *p);
void __RPC_STUB IXMLElement_get_tagName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLElement_put_tagName_Proxy(
    IXMLElement* This,
    BSTR p);
void __RPC_STUB IXMLElement_put_tagName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLElement_get_parent_Proxy(
    IXMLElement* This,
    IXMLElement **parent);
void __RPC_STUB IXMLElement_get_parent_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLElement_setAttribute_Proxy(
    IXMLElement* This,
    BSTR strPropertyName,
    VARIANT PropertyValue);
void __RPC_STUB IXMLElement_setAttribute_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLElement_getAttribute_Proxy(
    IXMLElement* This,
    BSTR strPropertyName,
    VARIANT *PropertyValue);
void __RPC_STUB IXMLElement_getAttribute_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLElement_removeAttribute_Proxy(
    IXMLElement* This,
    BSTR strPropertyName);
void __RPC_STUB IXMLElement_removeAttribute_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLElement_get_children_Proxy(
    IXMLElement* This,
    IXMLElementCollection **p);
void __RPC_STUB IXMLElement_get_children_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLElement_get_type_Proxy(
    IXMLElement* This,
    LONG *p);
void __RPC_STUB IXMLElement_get_type_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLElement_get_text_Proxy(
    IXMLElement* This,
    BSTR *p);
void __RPC_STUB IXMLElement_get_text_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLElement_put_text_Proxy(
    IXMLElement* This,
    BSTR p);
void __RPC_STUB IXMLElement_put_text_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLElement_addChild_Proxy(
    IXMLElement* This,
    IXMLElement *pChildElem,
    LONG lIndex,
    LONG lreserved);
void __RPC_STUB IXMLElement_addChild_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLElement_removeChild_Proxy(
    IXMLElement* This,
    IXMLElement *pChildElem);
void __RPC_STUB IXMLElement_removeChild_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLElement_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMNode interface
 */
#ifndef __IXMLDOMNode_INTERFACE_DEFINED__
#define __IXMLDOMNode_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDOMNode, 0x2933bf80, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLDOMNode : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_nodeName(
        BSTR *p) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_nodeValue(
        VARIANT *var1) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_nodeValue(
        VARIANT var1) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_nodeType(
        DOMNodeType *domNodeType) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_parentNode(
        IXMLDOMNode **parent) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_childNodes(
        IXMLDOMNodeList **outList) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_firstChild(
        IXMLDOMNode **domNode) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_lastChild(
        IXMLDOMNode **domNode) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_previousSibling(
        IXMLDOMNode **domNode) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_nextSibling(
        IXMLDOMNode **domNode) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_attributes(
        IXMLDOMNamedNodeMap **attributeMap) = 0;

    virtual HRESULT STDMETHODCALLTYPE insertBefore(
        IXMLDOMNode *newNode,
        VARIANT var1,
        IXMLDOMNode **outOldNode) = 0;

    virtual HRESULT STDMETHODCALLTYPE replaceChild(
        IXMLDOMNode *newNode,
        IXMLDOMNode *oldNode,
        IXMLDOMNode **outOldNode) = 0;

    virtual HRESULT STDMETHODCALLTYPE removeChild(
        IXMLDOMNode *domNode,
        IXMLDOMNode **oldNode) = 0;

    virtual HRESULT STDMETHODCALLTYPE appendChild(
        IXMLDOMNode *newNode,
        IXMLDOMNode **outNewNode) = 0;

    virtual HRESULT STDMETHODCALLTYPE hasChildNodes(
        VARIANT_BOOL *pbool) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_ownerDocument(
        IXMLDOMDocument **domDocument) = 0;

    virtual HRESULT STDMETHODCALLTYPE cloneNode(
        VARIANT_BOOL pbool,
        IXMLDOMNode **outNode) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_nodeTypeString(
        BSTR *p) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_text(
        BSTR *p) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_text(
        BSTR p) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_specified(
        VARIANT_BOOL *pbool) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_definition(
        IXMLDOMNode **domNode) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_nodeTypedValue(
        VARIANT *var1) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_nodeTypedValue(
        VARIANT var1) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_dataType(
        VARIANT *var1) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_dataType(
        BSTR p) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_xml(
        BSTR *p) = 0;

    virtual HRESULT STDMETHODCALLTYPE transformNode(
        IXMLDOMNode *domNode,
        BSTR *p) = 0;

    virtual HRESULT STDMETHODCALLTYPE selectNodes(
        BSTR p,
        IXMLDOMNodeList **outList) = 0;

    virtual HRESULT STDMETHODCALLTYPE selectSingleNode(
        BSTR p,
        IXMLDOMNode **outNode) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_parsed(
        VARIANT_BOOL *pbool) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_namespaceURI(
        BSTR *p) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_prefix(
        BSTR *p) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_baseName(
        BSTR *p) = 0;

    virtual HRESULT STDMETHODCALLTYPE transformNodeToObject(
        IXMLDOMNode *domNode,
        VARIANT var1) = 0;

};
#else
typedef struct IXMLDOMNodeVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXMLDOMNode* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXMLDOMNode* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXMLDOMNode* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXMLDOMNode* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXMLDOMNode* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXMLDOMNode* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXMLDOMNode* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IXMLDOMNode methods ***/
    HRESULT (STDMETHODCALLTYPE *get_nodeName)(
        IXMLDOMNode* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_nodeValue)(
        IXMLDOMNode* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeValue)(
        IXMLDOMNode* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_nodeType)(
        IXMLDOMNode* This,
        DOMNodeType *domNodeType);

    HRESULT (STDMETHODCALLTYPE *get_parentNode)(
        IXMLDOMNode* This,
        IXMLDOMNode **parent);

    HRESULT (STDMETHODCALLTYPE *get_childNodes)(
        IXMLDOMNode* This,
        IXMLDOMNodeList **outList);

    HRESULT (STDMETHODCALLTYPE *get_firstChild)(
        IXMLDOMNode* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_lastChild)(
        IXMLDOMNode* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_previousSibling)(
        IXMLDOMNode* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_nextSibling)(
        IXMLDOMNode* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_attributes)(
        IXMLDOMNode* This,
        IXMLDOMNamedNodeMap **attributeMap);

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXMLDOMNode* This,
        IXMLDOMNode *newNode,
        VARIANT var1,
        IXMLDOMNode **outOldNode);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXMLDOMNode* This,
        IXMLDOMNode *newNode,
        IXMLDOMNode *oldNode,
        IXMLDOMNode **outOldNode);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXMLDOMNode* This,
        IXMLDOMNode *domNode,
        IXMLDOMNode **oldNode);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXMLDOMNode* This,
        IXMLDOMNode *newNode,
        IXMLDOMNode **outNewNode);

    HRESULT (STDMETHODCALLTYPE *hasChildNodes)(
        IXMLDOMNode* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_ownerDocument)(
        IXMLDOMNode* This,
        IXMLDOMDocument **domDocument);

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXMLDOMNode* This,
        VARIANT_BOOL pbool,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypeString)(
        IXMLDOMNode* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_text)(
        IXMLDOMNode* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *put_text)(
        IXMLDOMNode* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_specified)(
        IXMLDOMNode* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_definition)(
        IXMLDOMNode* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypedValue)(
        IXMLDOMNode* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeTypedValue)(
        IXMLDOMNode* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_dataType)(
        IXMLDOMNode* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_dataType)(
        IXMLDOMNode* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_xml)(
        IXMLDOMNode* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXMLDOMNode* This,
        IXMLDOMNode *domNode,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXMLDOMNode* This,
        BSTR p,
        IXMLDOMNodeList **outList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXMLDOMNode* This,
        BSTR p,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_parsed)(
        IXMLDOMNode* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        IXMLDOMNode* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_prefix)(
        IXMLDOMNode* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_baseName)(
        IXMLDOMNode* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXMLDOMNode* This,
        IXMLDOMNode *domNode,
        VARIANT var1);

    END_INTERFACE
} IXMLDOMNodeVtbl;
interface IXMLDOMNode {
    CONST_VTBL IXMLDOMNodeVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMNode_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXMLDOMNode_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXMLDOMNode_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXMLDOMNode_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXMLDOMNode_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXMLDOMNode_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXMLDOMNode_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLDOMNode methods ***/
#define IXMLDOMNode_get_nodeName(This,p) (This)->lpVtbl->get_nodeName(This,p)
#define IXMLDOMNode_get_nodeValue(This,var1) (This)->lpVtbl->get_nodeValue(This,var1)
#define IXMLDOMNode_put_nodeValue(This,var1) (This)->lpVtbl->put_nodeValue(This,var1)
#define IXMLDOMNode_get_nodeType(This,domNodeType) (This)->lpVtbl->get_nodeType(This,domNodeType)
#define IXMLDOMNode_get_parentNode(This,parent) (This)->lpVtbl->get_parentNode(This,parent)
#define IXMLDOMNode_get_childNodes(This,outList) (This)->lpVtbl->get_childNodes(This,outList)
#define IXMLDOMNode_get_firstChild(This,domNode) (This)->lpVtbl->get_firstChild(This,domNode)
#define IXMLDOMNode_get_lastChild(This,domNode) (This)->lpVtbl->get_lastChild(This,domNode)
#define IXMLDOMNode_get_previousSibling(This,domNode) (This)->lpVtbl->get_previousSibling(This,domNode)
#define IXMLDOMNode_get_nextSibling(This,domNode) (This)->lpVtbl->get_nextSibling(This,domNode)
#define IXMLDOMNode_get_attributes(This,attributeMap) (This)->lpVtbl->get_attributes(This,attributeMap)
#define IXMLDOMNode_insertBefore(This,newNode,var1,outOldNode) (This)->lpVtbl->insertBefore(This,newNode,var1,outOldNode)
#define IXMLDOMNode_replaceChild(This,newNode,oldNode,outOldNode) (This)->lpVtbl->replaceChild(This,newNode,oldNode,outOldNode)
#define IXMLDOMNode_removeChild(This,domNode,oldNode) (This)->lpVtbl->removeChild(This,domNode,oldNode)
#define IXMLDOMNode_appendChild(This,newNode,outNewNode) (This)->lpVtbl->appendChild(This,newNode,outNewNode)
#define IXMLDOMNode_hasChildNodes(This,pbool) (This)->lpVtbl->hasChildNodes(This,pbool)
#define IXMLDOMNode_get_ownerDocument(This,domDocument) (This)->lpVtbl->get_ownerDocument(This,domDocument)
#define IXMLDOMNode_cloneNode(This,pbool,outNode) (This)->lpVtbl->cloneNode(This,pbool,outNode)
#define IXMLDOMNode_get_nodeTypeString(This,p) (This)->lpVtbl->get_nodeTypeString(This,p)
#define IXMLDOMNode_get_text(This,p) (This)->lpVtbl->get_text(This,p)
#define IXMLDOMNode_put_text(This,p) (This)->lpVtbl->put_text(This,p)
#define IXMLDOMNode_get_specified(This,pbool) (This)->lpVtbl->get_specified(This,pbool)
#define IXMLDOMNode_get_definition(This,domNode) (This)->lpVtbl->get_definition(This,domNode)
#define IXMLDOMNode_get_nodeTypedValue(This,var1) (This)->lpVtbl->get_nodeTypedValue(This,var1)
#define IXMLDOMNode_put_nodeTypedValue(This,var1) (This)->lpVtbl->put_nodeTypedValue(This,var1)
#define IXMLDOMNode_get_dataType(This,var1) (This)->lpVtbl->get_dataType(This,var1)
#define IXMLDOMNode_put_dataType(This,p) (This)->lpVtbl->put_dataType(This,p)
#define IXMLDOMNode_get_xml(This,p) (This)->lpVtbl->get_xml(This,p)
#define IXMLDOMNode_transformNode(This,domNode,p) (This)->lpVtbl->transformNode(This,domNode,p)
#define IXMLDOMNode_selectNodes(This,p,outList) (This)->lpVtbl->selectNodes(This,p,outList)
#define IXMLDOMNode_selectSingleNode(This,p,outNode) (This)->lpVtbl->selectSingleNode(This,p,outNode)
#define IXMLDOMNode_get_parsed(This,pbool) (This)->lpVtbl->get_parsed(This,pbool)
#define IXMLDOMNode_get_namespaceURI(This,p) (This)->lpVtbl->get_namespaceURI(This,p)
#define IXMLDOMNode_get_prefix(This,p) (This)->lpVtbl->get_prefix(This,p)
#define IXMLDOMNode_get_baseName(This,p) (This)->lpVtbl->get_baseName(This,p)
#define IXMLDOMNode_transformNodeToObject(This,domNode,var1) (This)->lpVtbl->transformNodeToObject(This,domNode,var1)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_nodeName_Proxy(
    IXMLDOMNode* This,
    BSTR *p);
void __RPC_STUB IXMLDOMNode_get_nodeName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_nodeValue_Proxy(
    IXMLDOMNode* This,
    VARIANT *var1);
void __RPC_STUB IXMLDOMNode_get_nodeValue_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_put_nodeValue_Proxy(
    IXMLDOMNode* This,
    VARIANT var1);
void __RPC_STUB IXMLDOMNode_put_nodeValue_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_nodeType_Proxy(
    IXMLDOMNode* This,
    DOMNodeType *domNodeType);
void __RPC_STUB IXMLDOMNode_get_nodeType_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_parentNode_Proxy(
    IXMLDOMNode* This,
    IXMLDOMNode **parent);
void __RPC_STUB IXMLDOMNode_get_parentNode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_childNodes_Proxy(
    IXMLDOMNode* This,
    IXMLDOMNodeList **outList);
void __RPC_STUB IXMLDOMNode_get_childNodes_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_firstChild_Proxy(
    IXMLDOMNode* This,
    IXMLDOMNode **domNode);
void __RPC_STUB IXMLDOMNode_get_firstChild_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_lastChild_Proxy(
    IXMLDOMNode* This,
    IXMLDOMNode **domNode);
void __RPC_STUB IXMLDOMNode_get_lastChild_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_previousSibling_Proxy(
    IXMLDOMNode* This,
    IXMLDOMNode **domNode);
void __RPC_STUB IXMLDOMNode_get_previousSibling_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_nextSibling_Proxy(
    IXMLDOMNode* This,
    IXMLDOMNode **domNode);
void __RPC_STUB IXMLDOMNode_get_nextSibling_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_attributes_Proxy(
    IXMLDOMNode* This,
    IXMLDOMNamedNodeMap **attributeMap);
void __RPC_STUB IXMLDOMNode_get_attributes_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_insertBefore_Proxy(
    IXMLDOMNode* This,
    IXMLDOMNode *newNode,
    VARIANT var1,
    IXMLDOMNode **outOldNode);
void __RPC_STUB IXMLDOMNode_insertBefore_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_replaceChild_Proxy(
    IXMLDOMNode* This,
    IXMLDOMNode *newNode,
    IXMLDOMNode *oldNode,
    IXMLDOMNode **outOldNode);
void __RPC_STUB IXMLDOMNode_replaceChild_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_removeChild_Proxy(
    IXMLDOMNode* This,
    IXMLDOMNode *domNode,
    IXMLDOMNode **oldNode);
void __RPC_STUB IXMLDOMNode_removeChild_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_appendChild_Proxy(
    IXMLDOMNode* This,
    IXMLDOMNode *newNode,
    IXMLDOMNode **outNewNode);
void __RPC_STUB IXMLDOMNode_appendChild_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_hasChildNodes_Proxy(
    IXMLDOMNode* This,
    VARIANT_BOOL *pbool);
void __RPC_STUB IXMLDOMNode_hasChildNodes_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_ownerDocument_Proxy(
    IXMLDOMNode* This,
    IXMLDOMDocument **domDocument);
void __RPC_STUB IXMLDOMNode_get_ownerDocument_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_cloneNode_Proxy(
    IXMLDOMNode* This,
    VARIANT_BOOL pbool,
    IXMLDOMNode **outNode);
void __RPC_STUB IXMLDOMNode_cloneNode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_nodeTypeString_Proxy(
    IXMLDOMNode* This,
    BSTR *p);
void __RPC_STUB IXMLDOMNode_get_nodeTypeString_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_text_Proxy(
    IXMLDOMNode* This,
    BSTR *p);
void __RPC_STUB IXMLDOMNode_get_text_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_put_text_Proxy(
    IXMLDOMNode* This,
    BSTR p);
void __RPC_STUB IXMLDOMNode_put_text_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_specified_Proxy(
    IXMLDOMNode* This,
    VARIANT_BOOL *pbool);
void __RPC_STUB IXMLDOMNode_get_specified_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_definition_Proxy(
    IXMLDOMNode* This,
    IXMLDOMNode **domNode);
void __RPC_STUB IXMLDOMNode_get_definition_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_nodeTypedValue_Proxy(
    IXMLDOMNode* This,
    VARIANT *var1);
void __RPC_STUB IXMLDOMNode_get_nodeTypedValue_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_put_nodeTypedValue_Proxy(
    IXMLDOMNode* This,
    VARIANT var1);
void __RPC_STUB IXMLDOMNode_put_nodeTypedValue_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_dataType_Proxy(
    IXMLDOMNode* This,
    VARIANT *var1);
void __RPC_STUB IXMLDOMNode_get_dataType_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_put_dataType_Proxy(
    IXMLDOMNode* This,
    BSTR p);
void __RPC_STUB IXMLDOMNode_put_dataType_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_xml_Proxy(
    IXMLDOMNode* This,
    BSTR *p);
void __RPC_STUB IXMLDOMNode_get_xml_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_transformNode_Proxy(
    IXMLDOMNode* This,
    IXMLDOMNode *domNode,
    BSTR *p);
void __RPC_STUB IXMLDOMNode_transformNode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_selectNodes_Proxy(
    IXMLDOMNode* This,
    BSTR p,
    IXMLDOMNodeList **outList);
void __RPC_STUB IXMLDOMNode_selectNodes_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_selectSingleNode_Proxy(
    IXMLDOMNode* This,
    BSTR p,
    IXMLDOMNode **outNode);
void __RPC_STUB IXMLDOMNode_selectSingleNode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_parsed_Proxy(
    IXMLDOMNode* This,
    VARIANT_BOOL *pbool);
void __RPC_STUB IXMLDOMNode_get_parsed_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_namespaceURI_Proxy(
    IXMLDOMNode* This,
    BSTR *p);
void __RPC_STUB IXMLDOMNode_get_namespaceURI_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_prefix_Proxy(
    IXMLDOMNode* This,
    BSTR *p);
void __RPC_STUB IXMLDOMNode_get_prefix_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_baseName_Proxy(
    IXMLDOMNode* This,
    BSTR *p);
void __RPC_STUB IXMLDOMNode_get_baseName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_transformNodeToObject_Proxy(
    IXMLDOMNode* This,
    IXMLDOMNode *domNode,
    VARIANT var1);
void __RPC_STUB IXMLDOMNode_transformNodeToObject_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMNode_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMDocument interface
 */
#ifndef __IXMLDOMDocument_INTERFACE_DEFINED__
#define __IXMLDOMDocument_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDOMDocument, 0x2933bf81, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLDOMDocument : public IXMLDOMNode
{
    virtual HRESULT STDMETHODCALLTYPE get_doctype(
        IXMLDOMDocumentType **docType) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_implementation(
        IXMLDOMImplementation **impl) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_documentElement(
        IXMLDOMElement **domElement) = 0;

    virtual HRESULT STDMETHODCALLTYPE putref_documentElement(
        IXMLDOMElement *domElement) = 0;

    virtual HRESULT STDMETHODCALLTYPE createElement(
        BSTR p,
        IXMLDOMElement **domElement) = 0;

    virtual HRESULT STDMETHODCALLTYPE createDocumentFragment(
        IXMLDOMDocumentFragment **docFrag) = 0;

    virtual HRESULT STDMETHODCALLTYPE createTextNode(
        BSTR p,
        IXMLDOMText **text) = 0;

    virtual HRESULT STDMETHODCALLTYPE createComment(
        BSTR p,
        IXMLDOMComment **comment) = 0;

    virtual HRESULT STDMETHODCALLTYPE createCDATASection(
        BSTR p,
        IXMLDOMCDATASection **cdata) = 0;

    virtual HRESULT STDMETHODCALLTYPE createProcessingInstruction(
        BSTR target,
        BSTR data,
        IXMLDOMProcessingInstruction **pi) = 0;

    virtual HRESULT STDMETHODCALLTYPE createAttribute(
        BSTR p,
        IXMLDOMAttribute **attribute) = 0;

    virtual HRESULT STDMETHODCALLTYPE createEntityReference(
        BSTR p,
        IXMLDOMEntityReference **entityRef) = 0;

    virtual HRESULT STDMETHODCALLTYPE getElementsByTagName(
        BSTR p,
        IXMLDOMNodeList **resultList) = 0;

    virtual HRESULT STDMETHODCALLTYPE createNode(
        VARIANT var,
        BSTR name,
        BSTR uri,
        IXMLDOMNode **node) = 0;

    virtual HRESULT STDMETHODCALLTYPE nodeFromID(
        BSTR id,
        IXMLDOMNode **node) = 0;

    virtual HRESULT STDMETHODCALLTYPE load(
        VARIANT var1,
        VARIANT_BOOL *pbool) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_readyState(
        LONG *value) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_parseError(
        IXMLDOMParseError **err) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_url(
        BSTR *p) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_async(
        VARIANT_BOOL *pbool) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_async(
        VARIANT_BOOL pbool) = 0;

    virtual HRESULT STDMETHODCALLTYPE abort(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE loadXML(
        BSTR p,
        VARIANT_BOOL *pbool) = 0;

    virtual HRESULT STDMETHODCALLTYPE save(
        VARIANT var1) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_validateOnParse(
        VARIANT_BOOL *pbool) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_validateOnParse(
        VARIANT_BOOL pbool) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_resolveExternals(
        VARIANT_BOOL *pbool) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_resolveExternals(
        VARIANT_BOOL pbool) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_preserveWhiteSpace(
        VARIANT_BOOL *pbool) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_preserveWhiteSpace(
        VARIANT_BOOL pbool) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_onreadystatechange(
        VARIANT var1) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_ondataavailable(
        VARIANT var1) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_ontransformnode(
        VARIANT var1) = 0;

};
#else
typedef struct IXMLDOMDocumentVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXMLDOMDocument* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXMLDOMDocument* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXMLDOMDocument* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXMLDOMDocument* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXMLDOMDocument* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXMLDOMDocument* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXMLDOMDocument* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IXMLDOMNode methods ***/
    HRESULT (STDMETHODCALLTYPE *get_nodeName)(
        IXMLDOMDocument* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_nodeValue)(
        IXMLDOMDocument* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeValue)(
        IXMLDOMDocument* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_nodeType)(
        IXMLDOMDocument* This,
        DOMNodeType *domNodeType);

    HRESULT (STDMETHODCALLTYPE *get_parentNode)(
        IXMLDOMDocument* This,
        IXMLDOMNode **parent);

    HRESULT (STDMETHODCALLTYPE *get_childNodes)(
        IXMLDOMDocument* This,
        IXMLDOMNodeList **outList);

    HRESULT (STDMETHODCALLTYPE *get_firstChild)(
        IXMLDOMDocument* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_lastChild)(
        IXMLDOMDocument* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_previousSibling)(
        IXMLDOMDocument* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_nextSibling)(
        IXMLDOMDocument* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_attributes)(
        IXMLDOMDocument* This,
        IXMLDOMNamedNodeMap **attributeMap);

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXMLDOMDocument* This,
        IXMLDOMNode *newNode,
        VARIANT var1,
        IXMLDOMNode **outOldNode);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXMLDOMDocument* This,
        IXMLDOMNode *newNode,
        IXMLDOMNode *oldNode,
        IXMLDOMNode **outOldNode);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXMLDOMDocument* This,
        IXMLDOMNode *domNode,
        IXMLDOMNode **oldNode);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXMLDOMDocument* This,
        IXMLDOMNode *newNode,
        IXMLDOMNode **outNewNode);

    HRESULT (STDMETHODCALLTYPE *hasChildNodes)(
        IXMLDOMDocument* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_ownerDocument)(
        IXMLDOMDocument* This,
        IXMLDOMDocument **domDocument);

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXMLDOMDocument* This,
        VARIANT_BOOL pbool,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypeString)(
        IXMLDOMDocument* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_text)(
        IXMLDOMDocument* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *put_text)(
        IXMLDOMDocument* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_specified)(
        IXMLDOMDocument* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_definition)(
        IXMLDOMDocument* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypedValue)(
        IXMLDOMDocument* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeTypedValue)(
        IXMLDOMDocument* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_dataType)(
        IXMLDOMDocument* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_dataType)(
        IXMLDOMDocument* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_xml)(
        IXMLDOMDocument* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXMLDOMDocument* This,
        IXMLDOMNode *domNode,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXMLDOMDocument* This,
        BSTR p,
        IXMLDOMNodeList **outList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXMLDOMDocument* This,
        BSTR p,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_parsed)(
        IXMLDOMDocument* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        IXMLDOMDocument* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_prefix)(
        IXMLDOMDocument* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_baseName)(
        IXMLDOMDocument* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXMLDOMDocument* This,
        IXMLDOMNode *domNode,
        VARIANT var1);

    /*** IXMLDOMDocument methods ***/
    HRESULT (STDMETHODCALLTYPE *get_doctype)(
        IXMLDOMDocument* This,
        IXMLDOMDocumentType **docType);

    HRESULT (STDMETHODCALLTYPE *get_implementation)(
        IXMLDOMDocument* This,
        IXMLDOMImplementation **impl);

    HRESULT (STDMETHODCALLTYPE *get_documentElement)(
        IXMLDOMDocument* This,
        IXMLDOMElement **domElement);

    HRESULT (STDMETHODCALLTYPE *putref_documentElement)(
        IXMLDOMDocument* This,
        IXMLDOMElement *domElement);

    HRESULT (STDMETHODCALLTYPE *createElement)(
        IXMLDOMDocument* This,
        BSTR p,
        IXMLDOMElement **domElement);

    HRESULT (STDMETHODCALLTYPE *createDocumentFragment)(
        IXMLDOMDocument* This,
        IXMLDOMDocumentFragment **docFrag);

    HRESULT (STDMETHODCALLTYPE *createTextNode)(
        IXMLDOMDocument* This,
        BSTR p,
        IXMLDOMText **text);

    HRESULT (STDMETHODCALLTYPE *createComment)(
        IXMLDOMDocument* This,
        BSTR p,
        IXMLDOMComment **comment);

    HRESULT (STDMETHODCALLTYPE *createCDATASection)(
        IXMLDOMDocument* This,
        BSTR p,
        IXMLDOMCDATASection **cdata);

    HRESULT (STDMETHODCALLTYPE *createProcessingInstruction)(
        IXMLDOMDocument* This,
        BSTR target,
        BSTR data,
        IXMLDOMProcessingInstruction **pi);

    HRESULT (STDMETHODCALLTYPE *createAttribute)(
        IXMLDOMDocument* This,
        BSTR p,
        IXMLDOMAttribute **attribute);

    HRESULT (STDMETHODCALLTYPE *createEntityReference)(
        IXMLDOMDocument* This,
        BSTR p,
        IXMLDOMEntityReference **entityRef);

    HRESULT (STDMETHODCALLTYPE *getElementsByTagName)(
        IXMLDOMDocument* This,
        BSTR p,
        IXMLDOMNodeList **resultList);

    HRESULT (STDMETHODCALLTYPE *createNode)(
        IXMLDOMDocument* This,
        VARIANT var,
        BSTR name,
        BSTR uri,
        IXMLDOMNode **node);

    HRESULT (STDMETHODCALLTYPE *nodeFromID)(
        IXMLDOMDocument* This,
        BSTR id,
        IXMLDOMNode **node);

    HRESULT (STDMETHODCALLTYPE *load)(
        IXMLDOMDocument* This,
        VARIANT var1,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_readyState)(
        IXMLDOMDocument* This,
        LONG *value);

    HRESULT (STDMETHODCALLTYPE *get_parseError)(
        IXMLDOMDocument* This,
        IXMLDOMParseError **err);

    HRESULT (STDMETHODCALLTYPE *get_url)(
        IXMLDOMDocument* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_async)(
        IXMLDOMDocument* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *put_async)(
        IXMLDOMDocument* This,
        VARIANT_BOOL pbool);

    HRESULT (STDMETHODCALLTYPE *abort)(
        IXMLDOMDocument* This);

    HRESULT (STDMETHODCALLTYPE *loadXML)(
        IXMLDOMDocument* This,
        BSTR p,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *save)(
        IXMLDOMDocument* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_validateOnParse)(
        IXMLDOMDocument* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *put_validateOnParse)(
        IXMLDOMDocument* This,
        VARIANT_BOOL pbool);

    HRESULT (STDMETHODCALLTYPE *get_resolveExternals)(
        IXMLDOMDocument* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *put_resolveExternals)(
        IXMLDOMDocument* This,
        VARIANT_BOOL pbool);

    HRESULT (STDMETHODCALLTYPE *get_preserveWhiteSpace)(
        IXMLDOMDocument* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *put_preserveWhiteSpace)(
        IXMLDOMDocument* This,
        VARIANT_BOOL pbool);

    HRESULT (STDMETHODCALLTYPE *put_onreadystatechange)(
        IXMLDOMDocument* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *put_ondataavailable)(
        IXMLDOMDocument* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *put_ontransformnode)(
        IXMLDOMDocument* This,
        VARIANT var1);

    END_INTERFACE
} IXMLDOMDocumentVtbl;
interface IXMLDOMDocument {
    CONST_VTBL IXMLDOMDocumentVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMDocument_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXMLDOMDocument_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXMLDOMDocument_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXMLDOMDocument_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXMLDOMDocument_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXMLDOMDocument_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXMLDOMDocument_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLDOMNode methods ***/
#define IXMLDOMDocument_get_nodeName(This,p) (This)->lpVtbl->get_nodeName(This,p)
#define IXMLDOMDocument_get_nodeValue(This,var1) (This)->lpVtbl->get_nodeValue(This,var1)
#define IXMLDOMDocument_put_nodeValue(This,var1) (This)->lpVtbl->put_nodeValue(This,var1)
#define IXMLDOMDocument_get_nodeType(This,domNodeType) (This)->lpVtbl->get_nodeType(This,domNodeType)
#define IXMLDOMDocument_get_parentNode(This,parent) (This)->lpVtbl->get_parentNode(This,parent)
#define IXMLDOMDocument_get_childNodes(This,outList) (This)->lpVtbl->get_childNodes(This,outList)
#define IXMLDOMDocument_get_firstChild(This,domNode) (This)->lpVtbl->get_firstChild(This,domNode)
#define IXMLDOMDocument_get_lastChild(This,domNode) (This)->lpVtbl->get_lastChild(This,domNode)
#define IXMLDOMDocument_get_previousSibling(This,domNode) (This)->lpVtbl->get_previousSibling(This,domNode)
#define IXMLDOMDocument_get_nextSibling(This,domNode) (This)->lpVtbl->get_nextSibling(This,domNode)
#define IXMLDOMDocument_get_attributes(This,attributeMap) (This)->lpVtbl->get_attributes(This,attributeMap)
#define IXMLDOMDocument_insertBefore(This,newNode,var1,outOldNode) (This)->lpVtbl->insertBefore(This,newNode,var1,outOldNode)
#define IXMLDOMDocument_replaceChild(This,newNode,oldNode,outOldNode) (This)->lpVtbl->replaceChild(This,newNode,oldNode,outOldNode)
#define IXMLDOMDocument_removeChild(This,domNode,oldNode) (This)->lpVtbl->removeChild(This,domNode,oldNode)
#define IXMLDOMDocument_appendChild(This,newNode,outNewNode) (This)->lpVtbl->appendChild(This,newNode,outNewNode)
#define IXMLDOMDocument_hasChildNodes(This,pbool) (This)->lpVtbl->hasChildNodes(This,pbool)
#define IXMLDOMDocument_get_ownerDocument(This,domDocument) (This)->lpVtbl->get_ownerDocument(This,domDocument)
#define IXMLDOMDocument_cloneNode(This,pbool,outNode) (This)->lpVtbl->cloneNode(This,pbool,outNode)
#define IXMLDOMDocument_get_nodeTypeString(This,p) (This)->lpVtbl->get_nodeTypeString(This,p)
#define IXMLDOMDocument_get_text(This,p) (This)->lpVtbl->get_text(This,p)
#define IXMLDOMDocument_put_text(This,p) (This)->lpVtbl->put_text(This,p)
#define IXMLDOMDocument_get_specified(This,pbool) (This)->lpVtbl->get_specified(This,pbool)
#define IXMLDOMDocument_get_definition(This,domNode) (This)->lpVtbl->get_definition(This,domNode)
#define IXMLDOMDocument_get_nodeTypedValue(This,var1) (This)->lpVtbl->get_nodeTypedValue(This,var1)
#define IXMLDOMDocument_put_nodeTypedValue(This,var1) (This)->lpVtbl->put_nodeTypedValue(This,var1)
#define IXMLDOMDocument_get_dataType(This,var1) (This)->lpVtbl->get_dataType(This,var1)
#define IXMLDOMDocument_put_dataType(This,p) (This)->lpVtbl->put_dataType(This,p)
#define IXMLDOMDocument_get_xml(This,p) (This)->lpVtbl->get_xml(This,p)
#define IXMLDOMDocument_transformNode(This,domNode,p) (This)->lpVtbl->transformNode(This,domNode,p)
#define IXMLDOMDocument_selectNodes(This,p,outList) (This)->lpVtbl->selectNodes(This,p,outList)
#define IXMLDOMDocument_selectSingleNode(This,p,outNode) (This)->lpVtbl->selectSingleNode(This,p,outNode)
#define IXMLDOMDocument_get_parsed(This,pbool) (This)->lpVtbl->get_parsed(This,pbool)
#define IXMLDOMDocument_get_namespaceURI(This,p) (This)->lpVtbl->get_namespaceURI(This,p)
#define IXMLDOMDocument_get_prefix(This,p) (This)->lpVtbl->get_prefix(This,p)
#define IXMLDOMDocument_get_baseName(This,p) (This)->lpVtbl->get_baseName(This,p)
#define IXMLDOMDocument_transformNodeToObject(This,domNode,var1) (This)->lpVtbl->transformNodeToObject(This,domNode,var1)
/*** IXMLDOMDocument methods ***/
#define IXMLDOMDocument_get_doctype(This,docType) (This)->lpVtbl->get_doctype(This,docType)
#define IXMLDOMDocument_get_implementation(This,impl) (This)->lpVtbl->get_implementation(This,impl)
#define IXMLDOMDocument_get_documentElement(This,domElement) (This)->lpVtbl->get_documentElement(This,domElement)
#define IXMLDOMDocument_putref_documentElement(This,domElement) (This)->lpVtbl->putref_documentElement(This,domElement)
#define IXMLDOMDocument_createElement(This,p,domElement) (This)->lpVtbl->createElement(This,p,domElement)
#define IXMLDOMDocument_createDocumentFragment(This,docFrag) (This)->lpVtbl->createDocumentFragment(This,docFrag)
#define IXMLDOMDocument_createTextNode(This,p,text) (This)->lpVtbl->createTextNode(This,p,text)
#define IXMLDOMDocument_createComment(This,p,comment) (This)->lpVtbl->createComment(This,p,comment)
#define IXMLDOMDocument_createCDATASection(This,p,cdata) (This)->lpVtbl->createCDATASection(This,p,cdata)
#define IXMLDOMDocument_createProcessingInstruction(This,target,data,pi) (This)->lpVtbl->createProcessingInstruction(This,target,data,pi)
#define IXMLDOMDocument_createAttribute(This,p,attribute) (This)->lpVtbl->createAttribute(This,p,attribute)
#define IXMLDOMDocument_createEntityReference(This,p,entityRef) (This)->lpVtbl->createEntityReference(This,p,entityRef)
#define IXMLDOMDocument_getElementsByTagName(This,p,resultList) (This)->lpVtbl->getElementsByTagName(This,p,resultList)
#define IXMLDOMDocument_createNode(This,var,name,uri,node) (This)->lpVtbl->createNode(This,var,name,uri,node)
#define IXMLDOMDocument_nodeFromID(This,id,node) (This)->lpVtbl->nodeFromID(This,id,node)
#define IXMLDOMDocument_load(This,var1,pbool) (This)->lpVtbl->load(This,var1,pbool)
#define IXMLDOMDocument_get_readyState(This,value) (This)->lpVtbl->get_readyState(This,value)
#define IXMLDOMDocument_get_parseError(This,err) (This)->lpVtbl->get_parseError(This,err)
#define IXMLDOMDocument_get_url(This,p) (This)->lpVtbl->get_url(This,p)
#define IXMLDOMDocument_get_async(This,pbool) (This)->lpVtbl->get_async(This,pbool)
#define IXMLDOMDocument_put_async(This,pbool) (This)->lpVtbl->put_async(This,pbool)
#define IXMLDOMDocument_abort(This) (This)->lpVtbl->abort(This)
#define IXMLDOMDocument_loadXML(This,p,pbool) (This)->lpVtbl->loadXML(This,p,pbool)
#define IXMLDOMDocument_save(This,var1) (This)->lpVtbl->save(This,var1)
#define IXMLDOMDocument_get_validateOnParse(This,pbool) (This)->lpVtbl->get_validateOnParse(This,pbool)
#define IXMLDOMDocument_put_validateOnParse(This,pbool) (This)->lpVtbl->put_validateOnParse(This,pbool)
#define IXMLDOMDocument_get_resolveExternals(This,pbool) (This)->lpVtbl->get_resolveExternals(This,pbool)
#define IXMLDOMDocument_put_resolveExternals(This,pbool) (This)->lpVtbl->put_resolveExternals(This,pbool)
#define IXMLDOMDocument_get_preserveWhiteSpace(This,pbool) (This)->lpVtbl->get_preserveWhiteSpace(This,pbool)
#define IXMLDOMDocument_put_preserveWhiteSpace(This,pbool) (This)->lpVtbl->put_preserveWhiteSpace(This,pbool)
#define IXMLDOMDocument_put_onreadystatechange(This,var1) (This)->lpVtbl->put_onreadystatechange(This,var1)
#define IXMLDOMDocument_put_ondataavailable(This,var1) (This)->lpVtbl->put_ondataavailable(This,var1)
#define IXMLDOMDocument_put_ontransformnode(This,var1) (This)->lpVtbl->put_ontransformnode(This,var1)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLDOMDocument_get_doctype_Proxy(
    IXMLDOMDocument* This,
    IXMLDOMDocumentType **docType);
void __RPC_STUB IXMLDOMDocument_get_doctype_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument_get_implementation_Proxy(
    IXMLDOMDocument* This,
    IXMLDOMImplementation **impl);
void __RPC_STUB IXMLDOMDocument_get_implementation_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument_get_documentElement_Proxy(
    IXMLDOMDocument* This,
    IXMLDOMElement **domElement);
void __RPC_STUB IXMLDOMDocument_get_documentElement_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument_putref_documentElement_Proxy(
    IXMLDOMDocument* This,
    IXMLDOMElement *domElement);
void __RPC_STUB IXMLDOMDocument_putref_documentElement_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument_createElement_Proxy(
    IXMLDOMDocument* This,
    BSTR p,
    IXMLDOMElement **domElement);
void __RPC_STUB IXMLDOMDocument_createElement_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument_createDocumentFragment_Proxy(
    IXMLDOMDocument* This,
    IXMLDOMDocumentFragment **docFrag);
void __RPC_STUB IXMLDOMDocument_createDocumentFragment_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument_createTextNode_Proxy(
    IXMLDOMDocument* This,
    BSTR p,
    IXMLDOMText **text);
void __RPC_STUB IXMLDOMDocument_createTextNode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument_createComment_Proxy(
    IXMLDOMDocument* This,
    BSTR p,
    IXMLDOMComment **comment);
void __RPC_STUB IXMLDOMDocument_createComment_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument_createCDATASection_Proxy(
    IXMLDOMDocument* This,
    BSTR p,
    IXMLDOMCDATASection **cdata);
void __RPC_STUB IXMLDOMDocument_createCDATASection_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument_createProcessingInstruction_Proxy(
    IXMLDOMDocument* This,
    BSTR target,
    BSTR data,
    IXMLDOMProcessingInstruction **pi);
void __RPC_STUB IXMLDOMDocument_createProcessingInstruction_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument_createAttribute_Proxy(
    IXMLDOMDocument* This,
    BSTR p,
    IXMLDOMAttribute **attribute);
void __RPC_STUB IXMLDOMDocument_createAttribute_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument_createEntityReference_Proxy(
    IXMLDOMDocument* This,
    BSTR p,
    IXMLDOMEntityReference **entityRef);
void __RPC_STUB IXMLDOMDocument_createEntityReference_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument_getElementsByTagName_Proxy(
    IXMLDOMDocument* This,
    BSTR p,
    IXMLDOMNodeList **resultList);
void __RPC_STUB IXMLDOMDocument_getElementsByTagName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument_createNode_Proxy(
    IXMLDOMDocument* This,
    VARIANT var,
    BSTR name,
    BSTR uri,
    IXMLDOMNode **node);
void __RPC_STUB IXMLDOMDocument_createNode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument_nodeFromID_Proxy(
    IXMLDOMDocument* This,
    BSTR id,
    IXMLDOMNode **node);
void __RPC_STUB IXMLDOMDocument_nodeFromID_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument_load_Proxy(
    IXMLDOMDocument* This,
    VARIANT var1,
    VARIANT_BOOL *pbool);
void __RPC_STUB IXMLDOMDocument_load_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument_get_readyState_Proxy(
    IXMLDOMDocument* This,
    LONG *value);
void __RPC_STUB IXMLDOMDocument_get_readyState_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument_get_parseError_Proxy(
    IXMLDOMDocument* This,
    IXMLDOMParseError **err);
void __RPC_STUB IXMLDOMDocument_get_parseError_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument_get_url_Proxy(
    IXMLDOMDocument* This,
    BSTR *p);
void __RPC_STUB IXMLDOMDocument_get_url_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument_get_async_Proxy(
    IXMLDOMDocument* This,
    VARIANT_BOOL *pbool);
void __RPC_STUB IXMLDOMDocument_get_async_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument_put_async_Proxy(
    IXMLDOMDocument* This,
    VARIANT_BOOL pbool);
void __RPC_STUB IXMLDOMDocument_put_async_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument_abort_Proxy(
    IXMLDOMDocument* This);
void __RPC_STUB IXMLDOMDocument_abort_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument_loadXML_Proxy(
    IXMLDOMDocument* This,
    BSTR p,
    VARIANT_BOOL *pbool);
void __RPC_STUB IXMLDOMDocument_loadXML_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument_save_Proxy(
    IXMLDOMDocument* This,
    VARIANT var1);
void __RPC_STUB IXMLDOMDocument_save_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument_get_validateOnParse_Proxy(
    IXMLDOMDocument* This,
    VARIANT_BOOL *pbool);
void __RPC_STUB IXMLDOMDocument_get_validateOnParse_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument_put_validateOnParse_Proxy(
    IXMLDOMDocument* This,
    VARIANT_BOOL pbool);
void __RPC_STUB IXMLDOMDocument_put_validateOnParse_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument_get_resolveExternals_Proxy(
    IXMLDOMDocument* This,
    VARIANT_BOOL *pbool);
void __RPC_STUB IXMLDOMDocument_get_resolveExternals_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument_put_resolveExternals_Proxy(
    IXMLDOMDocument* This,
    VARIANT_BOOL pbool);
void __RPC_STUB IXMLDOMDocument_put_resolveExternals_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument_get_preserveWhiteSpace_Proxy(
    IXMLDOMDocument* This,
    VARIANT_BOOL *pbool);
void __RPC_STUB IXMLDOMDocument_get_preserveWhiteSpace_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument_put_preserveWhiteSpace_Proxy(
    IXMLDOMDocument* This,
    VARIANT_BOOL pbool);
void __RPC_STUB IXMLDOMDocument_put_preserveWhiteSpace_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument_put_onreadystatechange_Proxy(
    IXMLDOMDocument* This,
    VARIANT var1);
void __RPC_STUB IXMLDOMDocument_put_onreadystatechange_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument_put_ondataavailable_Proxy(
    IXMLDOMDocument* This,
    VARIANT var1);
void __RPC_STUB IXMLDOMDocument_put_ondataavailable_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument_put_ontransformnode_Proxy(
    IXMLDOMDocument* This,
    VARIANT var1);
void __RPC_STUB IXMLDOMDocument_put_ontransformnode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMDocument_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMSchemaCollection interface
 */
#ifndef __IXMLDOMSchemaCollection_INTERFACE_DEFINED__
#define __IXMLDOMSchemaCollection_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDOMSchemaCollection, 0x373984c8, 0xb845, 0x449b, 0x91,0xe7, 0x45,0xac,0x83,0x03,0x6a,0xde);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLDOMSchemaCollection : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE add(
        BSTR uri,
        VARIANT var) = 0;

    virtual HRESULT STDMETHODCALLTYPE get(
        BSTR uri,
        IXMLDOMNode **node) = 0;

    virtual HRESULT STDMETHODCALLTYPE remove(
        BSTR uri) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_length(
        LONG *length) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_namespaceURI(
        LONG index,
        BSTR *len) = 0;

    virtual HRESULT STDMETHODCALLTYPE addCollection(
        IXMLDOMSchemaCollection *otherCollection) = 0;

    virtual HRESULT STDMETHODCALLTYPE get__newEnum(
        IUnknown **ppUnk) = 0;

};
#else
typedef struct IXMLDOMSchemaCollectionVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXMLDOMSchemaCollection* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXMLDOMSchemaCollection* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXMLDOMSchemaCollection* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXMLDOMSchemaCollection* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXMLDOMSchemaCollection* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXMLDOMSchemaCollection* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXMLDOMSchemaCollection* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IXMLDOMSchemaCollection methods ***/
    HRESULT (STDMETHODCALLTYPE *add)(
        IXMLDOMSchemaCollection* This,
        BSTR uri,
        VARIANT var);

    HRESULT (STDMETHODCALLTYPE *get)(
        IXMLDOMSchemaCollection* This,
        BSTR uri,
        IXMLDOMNode **node);

    HRESULT (STDMETHODCALLTYPE *remove)(
        IXMLDOMSchemaCollection* This,
        BSTR uri);

    HRESULT (STDMETHODCALLTYPE *get_length)(
        IXMLDOMSchemaCollection* This,
        LONG *length);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        IXMLDOMSchemaCollection* This,
        LONG index,
        BSTR *len);

    HRESULT (STDMETHODCALLTYPE *addCollection)(
        IXMLDOMSchemaCollection* This,
        IXMLDOMSchemaCollection *otherCollection);

    HRESULT (STDMETHODCALLTYPE *get__newEnum)(
        IXMLDOMSchemaCollection* This,
        IUnknown **ppUnk);

    END_INTERFACE
} IXMLDOMSchemaCollectionVtbl;
interface IXMLDOMSchemaCollection {
    CONST_VTBL IXMLDOMSchemaCollectionVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMSchemaCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXMLDOMSchemaCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXMLDOMSchemaCollection_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXMLDOMSchemaCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXMLDOMSchemaCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXMLDOMSchemaCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXMLDOMSchemaCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLDOMSchemaCollection methods ***/
#define IXMLDOMSchemaCollection_add(This,uri,var) (This)->lpVtbl->add(This,uri,var)
#define IXMLDOMSchemaCollection_get(This,uri,node) (This)->lpVtbl->get(This,uri,node)
#define IXMLDOMSchemaCollection_remove(This,uri) (This)->lpVtbl->remove(This,uri)
#define IXMLDOMSchemaCollection_get_length(This,length) (This)->lpVtbl->get_length(This,length)
#define IXMLDOMSchemaCollection_get_namespaceURI(This,index,len) (This)->lpVtbl->get_namespaceURI(This,index,len)
#define IXMLDOMSchemaCollection_addCollection(This,otherCollection) (This)->lpVtbl->addCollection(This,otherCollection)
#define IXMLDOMSchemaCollection_get__newEnum(This,ppUnk) (This)->lpVtbl->get__newEnum(This,ppUnk)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLDOMSchemaCollection_add_Proxy(
    IXMLDOMSchemaCollection* This,
    BSTR uri,
    VARIANT var);
void __RPC_STUB IXMLDOMSchemaCollection_add_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMSchemaCollection_get_Proxy(
    IXMLDOMSchemaCollection* This,
    BSTR uri,
    IXMLDOMNode **node);
void __RPC_STUB IXMLDOMSchemaCollection_get_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMSchemaCollection_remove_Proxy(
    IXMLDOMSchemaCollection* This,
    BSTR uri);
void __RPC_STUB IXMLDOMSchemaCollection_remove_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMSchemaCollection_get_length_Proxy(
    IXMLDOMSchemaCollection* This,
    LONG *length);
void __RPC_STUB IXMLDOMSchemaCollection_get_length_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMSchemaCollection_get_namespaceURI_Proxy(
    IXMLDOMSchemaCollection* This,
    LONG index,
    BSTR *len);
void __RPC_STUB IXMLDOMSchemaCollection_get_namespaceURI_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMSchemaCollection_addCollection_Proxy(
    IXMLDOMSchemaCollection* This,
    IXMLDOMSchemaCollection *otherCollection);
void __RPC_STUB IXMLDOMSchemaCollection_addCollection_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMSchemaCollection_get__newEnum_Proxy(
    IXMLDOMSchemaCollection* This,
    IUnknown **ppUnk);
void __RPC_STUB IXMLDOMSchemaCollection_get__newEnum_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMSchemaCollection_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMSchemaCollection2 interface
 */
#ifndef __IXMLDOMSchemaCollection2_INTERFACE_DEFINED__
#define __IXMLDOMSchemaCollection2_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDOMSchemaCollection2, 0x50ea08b0, 0xdd1b, 0x4664, 0x9a,0x50, 0xc2,0xf4,0x0f,0x4b,0xd7,0x9a);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLDOMSchemaCollection2 : public IXMLDOMSchemaCollection
{
    virtual HRESULT STDMETHODCALLTYPE validate(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_validateOnLoad(
        VARIANT_BOOL validateOnLoad) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_validateOnLoad(
        VARIANT_BOOL *validateOnLoad) = 0;

    virtual HRESULT STDMETHODCALLTYPE getSchema(
        BSTR namespaceURI,
        ISchema **schema) = 0;

    virtual HRESULT STDMETHODCALLTYPE getDeclaration(
        IXMLDOMNode *node,
        ISchemaItem **item) = 0;

};
#else
typedef struct IXMLDOMSchemaCollection2Vtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXMLDOMSchemaCollection2* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXMLDOMSchemaCollection2* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXMLDOMSchemaCollection2* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXMLDOMSchemaCollection2* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXMLDOMSchemaCollection2* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXMLDOMSchemaCollection2* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXMLDOMSchemaCollection2* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IXMLDOMSchemaCollection methods ***/
    HRESULT (STDMETHODCALLTYPE *add)(
        IXMLDOMSchemaCollection2* This,
        BSTR uri,
        VARIANT var);

    HRESULT (STDMETHODCALLTYPE *get)(
        IXMLDOMSchemaCollection2* This,
        BSTR uri,
        IXMLDOMNode **node);

    HRESULT (STDMETHODCALLTYPE *remove)(
        IXMLDOMSchemaCollection2* This,
        BSTR uri);

    HRESULT (STDMETHODCALLTYPE *get_length)(
        IXMLDOMSchemaCollection2* This,
        LONG *length);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        IXMLDOMSchemaCollection2* This,
        LONG index,
        BSTR *len);

    HRESULT (STDMETHODCALLTYPE *addCollection)(
        IXMLDOMSchemaCollection2* This,
        IXMLDOMSchemaCollection *otherCollection);

    HRESULT (STDMETHODCALLTYPE *get__newEnum)(
        IXMLDOMSchemaCollection2* This,
        IUnknown **ppUnk);

    /*** IXMLDOMSchemaCollection2 methods ***/
    HRESULT (STDMETHODCALLTYPE *validate)(
        IXMLDOMSchemaCollection2* This);

    HRESULT (STDMETHODCALLTYPE *put_validateOnLoad)(
        IXMLDOMSchemaCollection2* This,
        VARIANT_BOOL validateOnLoad);

    HRESULT (STDMETHODCALLTYPE *get_validateOnLoad)(
        IXMLDOMSchemaCollection2* This,
        VARIANT_BOOL *validateOnLoad);

    HRESULT (STDMETHODCALLTYPE *getSchema)(
        IXMLDOMSchemaCollection2* This,
        BSTR namespaceURI,
        ISchema **schema);

    HRESULT (STDMETHODCALLTYPE *getDeclaration)(
        IXMLDOMSchemaCollection2* This,
        IXMLDOMNode *node,
        ISchemaItem **item);

    END_INTERFACE
} IXMLDOMSchemaCollection2Vtbl;
interface IXMLDOMSchemaCollection2 {
    CONST_VTBL IXMLDOMSchemaCollection2Vtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMSchemaCollection2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXMLDOMSchemaCollection2_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXMLDOMSchemaCollection2_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXMLDOMSchemaCollection2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXMLDOMSchemaCollection2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXMLDOMSchemaCollection2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXMLDOMSchemaCollection2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLDOMSchemaCollection methods ***/
#define IXMLDOMSchemaCollection2_add(This,uri,var) (This)->lpVtbl->add(This,uri,var)
#define IXMLDOMSchemaCollection2_get(This,uri,node) (This)->lpVtbl->get(This,uri,node)
#define IXMLDOMSchemaCollection2_remove(This,uri) (This)->lpVtbl->remove(This,uri)
#define IXMLDOMSchemaCollection2_get_length(This,length) (This)->lpVtbl->get_length(This,length)
#define IXMLDOMSchemaCollection2_get_namespaceURI(This,index,len) (This)->lpVtbl->get_namespaceURI(This,index,len)
#define IXMLDOMSchemaCollection2_addCollection(This,otherCollection) (This)->lpVtbl->addCollection(This,otherCollection)
#define IXMLDOMSchemaCollection2_get__newEnum(This,ppUnk) (This)->lpVtbl->get__newEnum(This,ppUnk)
/*** IXMLDOMSchemaCollection2 methods ***/
#define IXMLDOMSchemaCollection2_validate(This) (This)->lpVtbl->validate(This)
#define IXMLDOMSchemaCollection2_put_validateOnLoad(This,validateOnLoad) (This)->lpVtbl->put_validateOnLoad(This,validateOnLoad)
#define IXMLDOMSchemaCollection2_get_validateOnLoad(This,validateOnLoad) (This)->lpVtbl->get_validateOnLoad(This,validateOnLoad)
#define IXMLDOMSchemaCollection2_getSchema(This,namespaceURI,schema) (This)->lpVtbl->getSchema(This,namespaceURI,schema)
#define IXMLDOMSchemaCollection2_getDeclaration(This,node,item) (This)->lpVtbl->getDeclaration(This,node,item)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLDOMSchemaCollection2_validate_Proxy(
    IXMLDOMSchemaCollection2* This);
void __RPC_STUB IXMLDOMSchemaCollection2_validate_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMSchemaCollection2_put_validateOnLoad_Proxy(
    IXMLDOMSchemaCollection2* This,
    VARIANT_BOOL validateOnLoad);
void __RPC_STUB IXMLDOMSchemaCollection2_put_validateOnLoad_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMSchemaCollection2_get_validateOnLoad_Proxy(
    IXMLDOMSchemaCollection2* This,
    VARIANT_BOOL *validateOnLoad);
void __RPC_STUB IXMLDOMSchemaCollection2_get_validateOnLoad_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMSchemaCollection2_getSchema_Proxy(
    IXMLDOMSchemaCollection2* This,
    BSTR namespaceURI,
    ISchema **schema);
void __RPC_STUB IXMLDOMSchemaCollection2_getSchema_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMSchemaCollection2_getDeclaration_Proxy(
    IXMLDOMSchemaCollection2* This,
    IXMLDOMNode *node,
    ISchemaItem **item);
void __RPC_STUB IXMLDOMSchemaCollection2_getDeclaration_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMSchemaCollection2_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMDocument2 interface
 */
#ifndef __IXMLDOMDocument2_INTERFACE_DEFINED__
#define __IXMLDOMDocument2_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDOMDocument2, 0x2933bf95, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLDOMDocument2 : public IXMLDOMDocument
{
    virtual HRESULT STDMETHODCALLTYPE get_namespaces(
        IXMLDOMSchemaCollection **schemaCollection) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_schemas(
        VARIANT *var1) = 0;

    virtual HRESULT STDMETHODCALLTYPE putref_schemas(
        VARIANT var1) = 0;

    virtual HRESULT STDMETHODCALLTYPE validate(
        IXMLDOMParseError **err) = 0;

    virtual HRESULT STDMETHODCALLTYPE setProperty(
        BSTR p,
        VARIANT var) = 0;

    virtual HRESULT STDMETHODCALLTYPE getProperty(
        BSTR p,
        VARIANT *var) = 0;

};
#else
typedef struct IXMLDOMDocument2Vtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXMLDOMDocument2* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXMLDOMDocument2* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXMLDOMDocument2* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXMLDOMDocument2* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXMLDOMDocument2* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXMLDOMDocument2* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXMLDOMDocument2* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IXMLDOMNode methods ***/
    HRESULT (STDMETHODCALLTYPE *get_nodeName)(
        IXMLDOMDocument2* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_nodeValue)(
        IXMLDOMDocument2* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeValue)(
        IXMLDOMDocument2* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_nodeType)(
        IXMLDOMDocument2* This,
        DOMNodeType *domNodeType);

    HRESULT (STDMETHODCALLTYPE *get_parentNode)(
        IXMLDOMDocument2* This,
        IXMLDOMNode **parent);

    HRESULT (STDMETHODCALLTYPE *get_childNodes)(
        IXMLDOMDocument2* This,
        IXMLDOMNodeList **outList);

    HRESULT (STDMETHODCALLTYPE *get_firstChild)(
        IXMLDOMDocument2* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_lastChild)(
        IXMLDOMDocument2* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_previousSibling)(
        IXMLDOMDocument2* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_nextSibling)(
        IXMLDOMDocument2* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_attributes)(
        IXMLDOMDocument2* This,
        IXMLDOMNamedNodeMap **attributeMap);

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXMLDOMDocument2* This,
        IXMLDOMNode *newNode,
        VARIANT var1,
        IXMLDOMNode **outOldNode);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXMLDOMDocument2* This,
        IXMLDOMNode *newNode,
        IXMLDOMNode *oldNode,
        IXMLDOMNode **outOldNode);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXMLDOMDocument2* This,
        IXMLDOMNode *domNode,
        IXMLDOMNode **oldNode);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXMLDOMDocument2* This,
        IXMLDOMNode *newNode,
        IXMLDOMNode **outNewNode);

    HRESULT (STDMETHODCALLTYPE *hasChildNodes)(
        IXMLDOMDocument2* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_ownerDocument)(
        IXMLDOMDocument2* This,
        IXMLDOMDocument **domDocument);

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXMLDOMDocument2* This,
        VARIANT_BOOL pbool,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypeString)(
        IXMLDOMDocument2* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_text)(
        IXMLDOMDocument2* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *put_text)(
        IXMLDOMDocument2* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_specified)(
        IXMLDOMDocument2* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_definition)(
        IXMLDOMDocument2* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypedValue)(
        IXMLDOMDocument2* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeTypedValue)(
        IXMLDOMDocument2* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_dataType)(
        IXMLDOMDocument2* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_dataType)(
        IXMLDOMDocument2* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_xml)(
        IXMLDOMDocument2* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXMLDOMDocument2* This,
        IXMLDOMNode *domNode,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXMLDOMDocument2* This,
        BSTR p,
        IXMLDOMNodeList **outList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXMLDOMDocument2* This,
        BSTR p,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_parsed)(
        IXMLDOMDocument2* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        IXMLDOMDocument2* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_prefix)(
        IXMLDOMDocument2* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_baseName)(
        IXMLDOMDocument2* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXMLDOMDocument2* This,
        IXMLDOMNode *domNode,
        VARIANT var1);

    /*** IXMLDOMDocument methods ***/
    HRESULT (STDMETHODCALLTYPE *get_doctype)(
        IXMLDOMDocument2* This,
        IXMLDOMDocumentType **docType);

    HRESULT (STDMETHODCALLTYPE *get_implementation)(
        IXMLDOMDocument2* This,
        IXMLDOMImplementation **impl);

    HRESULT (STDMETHODCALLTYPE *get_documentElement)(
        IXMLDOMDocument2* This,
        IXMLDOMElement **domElement);

    HRESULT (STDMETHODCALLTYPE *putref_documentElement)(
        IXMLDOMDocument2* This,
        IXMLDOMElement *domElement);

    HRESULT (STDMETHODCALLTYPE *createElement)(
        IXMLDOMDocument2* This,
        BSTR p,
        IXMLDOMElement **domElement);

    HRESULT (STDMETHODCALLTYPE *createDocumentFragment)(
        IXMLDOMDocument2* This,
        IXMLDOMDocumentFragment **docFrag);

    HRESULT (STDMETHODCALLTYPE *createTextNode)(
        IXMLDOMDocument2* This,
        BSTR p,
        IXMLDOMText **text);

    HRESULT (STDMETHODCALLTYPE *createComment)(
        IXMLDOMDocument2* This,
        BSTR p,
        IXMLDOMComment **comment);

    HRESULT (STDMETHODCALLTYPE *createCDATASection)(
        IXMLDOMDocument2* This,
        BSTR p,
        IXMLDOMCDATASection **cdata);

    HRESULT (STDMETHODCALLTYPE *createProcessingInstruction)(
        IXMLDOMDocument2* This,
        BSTR target,
        BSTR data,
        IXMLDOMProcessingInstruction **pi);

    HRESULT (STDMETHODCALLTYPE *createAttribute)(
        IXMLDOMDocument2* This,
        BSTR p,
        IXMLDOMAttribute **attribute);

    HRESULT (STDMETHODCALLTYPE *createEntityReference)(
        IXMLDOMDocument2* This,
        BSTR p,
        IXMLDOMEntityReference **entityRef);

    HRESULT (STDMETHODCALLTYPE *getElementsByTagName)(
        IXMLDOMDocument2* This,
        BSTR p,
        IXMLDOMNodeList **resultList);

    HRESULT (STDMETHODCALLTYPE *createNode)(
        IXMLDOMDocument2* This,
        VARIANT var,
        BSTR name,
        BSTR uri,
        IXMLDOMNode **node);

    HRESULT (STDMETHODCALLTYPE *nodeFromID)(
        IXMLDOMDocument2* This,
        BSTR id,
        IXMLDOMNode **node);

    HRESULT (STDMETHODCALLTYPE *load)(
        IXMLDOMDocument2* This,
        VARIANT var1,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_readyState)(
        IXMLDOMDocument2* This,
        LONG *value);

    HRESULT (STDMETHODCALLTYPE *get_parseError)(
        IXMLDOMDocument2* This,
        IXMLDOMParseError **err);

    HRESULT (STDMETHODCALLTYPE *get_url)(
        IXMLDOMDocument2* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_async)(
        IXMLDOMDocument2* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *put_async)(
        IXMLDOMDocument2* This,
        VARIANT_BOOL pbool);

    HRESULT (STDMETHODCALLTYPE *abort)(
        IXMLDOMDocument2* This);

    HRESULT (STDMETHODCALLTYPE *loadXML)(
        IXMLDOMDocument2* This,
        BSTR p,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *save)(
        IXMLDOMDocument2* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_validateOnParse)(
        IXMLDOMDocument2* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *put_validateOnParse)(
        IXMLDOMDocument2* This,
        VARIANT_BOOL pbool);

    HRESULT (STDMETHODCALLTYPE *get_resolveExternals)(
        IXMLDOMDocument2* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *put_resolveExternals)(
        IXMLDOMDocument2* This,
        VARIANT_BOOL pbool);

    HRESULT (STDMETHODCALLTYPE *get_preserveWhiteSpace)(
        IXMLDOMDocument2* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *put_preserveWhiteSpace)(
        IXMLDOMDocument2* This,
        VARIANT_BOOL pbool);

    HRESULT (STDMETHODCALLTYPE *put_onreadystatechange)(
        IXMLDOMDocument2* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *put_ondataavailable)(
        IXMLDOMDocument2* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *put_ontransformnode)(
        IXMLDOMDocument2* This,
        VARIANT var1);

    /*** IXMLDOMDocument2 methods ***/
    HRESULT (STDMETHODCALLTYPE *get_namespaces)(
        IXMLDOMDocument2* This,
        IXMLDOMSchemaCollection **schemaCollection);

    HRESULT (STDMETHODCALLTYPE *get_schemas)(
        IXMLDOMDocument2* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *putref_schemas)(
        IXMLDOMDocument2* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *validate)(
        IXMLDOMDocument2* This,
        IXMLDOMParseError **err);

    HRESULT (STDMETHODCALLTYPE *setProperty)(
        IXMLDOMDocument2* This,
        BSTR p,
        VARIANT var);

    HRESULT (STDMETHODCALLTYPE *getProperty)(
        IXMLDOMDocument2* This,
        BSTR p,
        VARIANT *var);

    END_INTERFACE
} IXMLDOMDocument2Vtbl;
interface IXMLDOMDocument2 {
    CONST_VTBL IXMLDOMDocument2Vtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMDocument2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXMLDOMDocument2_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXMLDOMDocument2_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXMLDOMDocument2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXMLDOMDocument2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXMLDOMDocument2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXMLDOMDocument2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLDOMNode methods ***/
#define IXMLDOMDocument2_get_nodeName(This,p) (This)->lpVtbl->get_nodeName(This,p)
#define IXMLDOMDocument2_get_nodeValue(This,var1) (This)->lpVtbl->get_nodeValue(This,var1)
#define IXMLDOMDocument2_put_nodeValue(This,var1) (This)->lpVtbl->put_nodeValue(This,var1)
#define IXMLDOMDocument2_get_nodeType(This,domNodeType) (This)->lpVtbl->get_nodeType(This,domNodeType)
#define IXMLDOMDocument2_get_parentNode(This,parent) (This)->lpVtbl->get_parentNode(This,parent)
#define IXMLDOMDocument2_get_childNodes(This,outList) (This)->lpVtbl->get_childNodes(This,outList)
#define IXMLDOMDocument2_get_firstChild(This,domNode) (This)->lpVtbl->get_firstChild(This,domNode)
#define IXMLDOMDocument2_get_lastChild(This,domNode) (This)->lpVtbl->get_lastChild(This,domNode)
#define IXMLDOMDocument2_get_previousSibling(This,domNode) (This)->lpVtbl->get_previousSibling(This,domNode)
#define IXMLDOMDocument2_get_nextSibling(This,domNode) (This)->lpVtbl->get_nextSibling(This,domNode)
#define IXMLDOMDocument2_get_attributes(This,attributeMap) (This)->lpVtbl->get_attributes(This,attributeMap)
#define IXMLDOMDocument2_insertBefore(This,newNode,var1,outOldNode) (This)->lpVtbl->insertBefore(This,newNode,var1,outOldNode)
#define IXMLDOMDocument2_replaceChild(This,newNode,oldNode,outOldNode) (This)->lpVtbl->replaceChild(This,newNode,oldNode,outOldNode)
#define IXMLDOMDocument2_removeChild(This,domNode,oldNode) (This)->lpVtbl->removeChild(This,domNode,oldNode)
#define IXMLDOMDocument2_appendChild(This,newNode,outNewNode) (This)->lpVtbl->appendChild(This,newNode,outNewNode)
#define IXMLDOMDocument2_hasChildNodes(This,pbool) (This)->lpVtbl->hasChildNodes(This,pbool)
#define IXMLDOMDocument2_get_ownerDocument(This,domDocument) (This)->lpVtbl->get_ownerDocument(This,domDocument)
#define IXMLDOMDocument2_cloneNode(This,pbool,outNode) (This)->lpVtbl->cloneNode(This,pbool,outNode)
#define IXMLDOMDocument2_get_nodeTypeString(This,p) (This)->lpVtbl->get_nodeTypeString(This,p)
#define IXMLDOMDocument2_get_text(This,p) (This)->lpVtbl->get_text(This,p)
#define IXMLDOMDocument2_put_text(This,p) (This)->lpVtbl->put_text(This,p)
#define IXMLDOMDocument2_get_specified(This,pbool) (This)->lpVtbl->get_specified(This,pbool)
#define IXMLDOMDocument2_get_definition(This,domNode) (This)->lpVtbl->get_definition(This,domNode)
#define IXMLDOMDocument2_get_nodeTypedValue(This,var1) (This)->lpVtbl->get_nodeTypedValue(This,var1)
#define IXMLDOMDocument2_put_nodeTypedValue(This,var1) (This)->lpVtbl->put_nodeTypedValue(This,var1)
#define IXMLDOMDocument2_get_dataType(This,var1) (This)->lpVtbl->get_dataType(This,var1)
#define IXMLDOMDocument2_put_dataType(This,p) (This)->lpVtbl->put_dataType(This,p)
#define IXMLDOMDocument2_get_xml(This,p) (This)->lpVtbl->get_xml(This,p)
#define IXMLDOMDocument2_transformNode(This,domNode,p) (This)->lpVtbl->transformNode(This,domNode,p)
#define IXMLDOMDocument2_selectNodes(This,p,outList) (This)->lpVtbl->selectNodes(This,p,outList)
#define IXMLDOMDocument2_selectSingleNode(This,p,outNode) (This)->lpVtbl->selectSingleNode(This,p,outNode)
#define IXMLDOMDocument2_get_parsed(This,pbool) (This)->lpVtbl->get_parsed(This,pbool)
#define IXMLDOMDocument2_get_namespaceURI(This,p) (This)->lpVtbl->get_namespaceURI(This,p)
#define IXMLDOMDocument2_get_prefix(This,p) (This)->lpVtbl->get_prefix(This,p)
#define IXMLDOMDocument2_get_baseName(This,p) (This)->lpVtbl->get_baseName(This,p)
#define IXMLDOMDocument2_transformNodeToObject(This,domNode,var1) (This)->lpVtbl->transformNodeToObject(This,domNode,var1)
/*** IXMLDOMDocument methods ***/
#define IXMLDOMDocument2_get_doctype(This,docType) (This)->lpVtbl->get_doctype(This,docType)
#define IXMLDOMDocument2_get_implementation(This,impl) (This)->lpVtbl->get_implementation(This,impl)
#define IXMLDOMDocument2_get_documentElement(This,domElement) (This)->lpVtbl->get_documentElement(This,domElement)
#define IXMLDOMDocument2_putref_documentElement(This,domElement) (This)->lpVtbl->putref_documentElement(This,domElement)
#define IXMLDOMDocument2_createElement(This,p,domElement) (This)->lpVtbl->createElement(This,p,domElement)
#define IXMLDOMDocument2_createDocumentFragment(This,docFrag) (This)->lpVtbl->createDocumentFragment(This,docFrag)
#define IXMLDOMDocument2_createTextNode(This,p,text) (This)->lpVtbl->createTextNode(This,p,text)
#define IXMLDOMDocument2_createComment(This,p,comment) (This)->lpVtbl->createComment(This,p,comment)
#define IXMLDOMDocument2_createCDATASection(This,p,cdata) (This)->lpVtbl->createCDATASection(This,p,cdata)
#define IXMLDOMDocument2_createProcessingInstruction(This,target,data,pi) (This)->lpVtbl->createProcessingInstruction(This,target,data,pi)
#define IXMLDOMDocument2_createAttribute(This,p,attribute) (This)->lpVtbl->createAttribute(This,p,attribute)
#define IXMLDOMDocument2_createEntityReference(This,p,entityRef) (This)->lpVtbl->createEntityReference(This,p,entityRef)
#define IXMLDOMDocument2_getElementsByTagName(This,p,resultList) (This)->lpVtbl->getElementsByTagName(This,p,resultList)
#define IXMLDOMDocument2_createNode(This,var,name,uri,node) (This)->lpVtbl->createNode(This,var,name,uri,node)
#define IXMLDOMDocument2_nodeFromID(This,id,node) (This)->lpVtbl->nodeFromID(This,id,node)
#define IXMLDOMDocument2_load(This,var1,pbool) (This)->lpVtbl->load(This,var1,pbool)
#define IXMLDOMDocument2_get_readyState(This,value) (This)->lpVtbl->get_readyState(This,value)
#define IXMLDOMDocument2_get_parseError(This,err) (This)->lpVtbl->get_parseError(This,err)
#define IXMLDOMDocument2_get_url(This,p) (This)->lpVtbl->get_url(This,p)
#define IXMLDOMDocument2_get_async(This,pbool) (This)->lpVtbl->get_async(This,pbool)
#define IXMLDOMDocument2_put_async(This,pbool) (This)->lpVtbl->put_async(This,pbool)
#define IXMLDOMDocument2_abort(This) (This)->lpVtbl->abort(This)
#define IXMLDOMDocument2_loadXML(This,p,pbool) (This)->lpVtbl->loadXML(This,p,pbool)
#define IXMLDOMDocument2_save(This,var1) (This)->lpVtbl->save(This,var1)
#define IXMLDOMDocument2_get_validateOnParse(This,pbool) (This)->lpVtbl->get_validateOnParse(This,pbool)
#define IXMLDOMDocument2_put_validateOnParse(This,pbool) (This)->lpVtbl->put_validateOnParse(This,pbool)
#define IXMLDOMDocument2_get_resolveExternals(This,pbool) (This)->lpVtbl->get_resolveExternals(This,pbool)
#define IXMLDOMDocument2_put_resolveExternals(This,pbool) (This)->lpVtbl->put_resolveExternals(This,pbool)
#define IXMLDOMDocument2_get_preserveWhiteSpace(This,pbool) (This)->lpVtbl->get_preserveWhiteSpace(This,pbool)
#define IXMLDOMDocument2_put_preserveWhiteSpace(This,pbool) (This)->lpVtbl->put_preserveWhiteSpace(This,pbool)
#define IXMLDOMDocument2_put_onreadystatechange(This,var1) (This)->lpVtbl->put_onreadystatechange(This,var1)
#define IXMLDOMDocument2_put_ondataavailable(This,var1) (This)->lpVtbl->put_ondataavailable(This,var1)
#define IXMLDOMDocument2_put_ontransformnode(This,var1) (This)->lpVtbl->put_ontransformnode(This,var1)
/*** IXMLDOMDocument2 methods ***/
#define IXMLDOMDocument2_get_namespaces(This,schemaCollection) (This)->lpVtbl->get_namespaces(This,schemaCollection)
#define IXMLDOMDocument2_get_schemas(This,var1) (This)->lpVtbl->get_schemas(This,var1)
#define IXMLDOMDocument2_putref_schemas(This,var1) (This)->lpVtbl->putref_schemas(This,var1)
#define IXMLDOMDocument2_validate(This,err) (This)->lpVtbl->validate(This,err)
#define IXMLDOMDocument2_setProperty(This,p,var) (This)->lpVtbl->setProperty(This,p,var)
#define IXMLDOMDocument2_getProperty(This,p,var) (This)->lpVtbl->getProperty(This,p,var)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLDOMDocument2_get_namespaces_Proxy(
    IXMLDOMDocument2* This,
    IXMLDOMSchemaCollection **schemaCollection);
void __RPC_STUB IXMLDOMDocument2_get_namespaces_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument2_get_schemas_Proxy(
    IXMLDOMDocument2* This,
    VARIANT *var1);
void __RPC_STUB IXMLDOMDocument2_get_schemas_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument2_putref_schemas_Proxy(
    IXMLDOMDocument2* This,
    VARIANT var1);
void __RPC_STUB IXMLDOMDocument2_putref_schemas_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument2_validate_Proxy(
    IXMLDOMDocument2* This,
    IXMLDOMParseError **err);
void __RPC_STUB IXMLDOMDocument2_validate_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument2_setProperty_Proxy(
    IXMLDOMDocument2* This,
    BSTR p,
    VARIANT var);
void __RPC_STUB IXMLDOMDocument2_setProperty_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument2_getProperty_Proxy(
    IXMLDOMDocument2* This,
    BSTR p,
    VARIANT *var);
void __RPC_STUB IXMLDOMDocument2_getProperty_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMDocument2_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMDocument3 interface
 */
#ifndef __IXMLDOMDocument3_INTERFACE_DEFINED__
#define __IXMLDOMDocument3_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDOMDocument3, 0x2933bf96, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLDOMDocument3 : public IXMLDOMDocument2
{
    virtual HRESULT STDMETHODCALLTYPE validateNode(
        IXMLDOMNode *node,
        IXMLDOMParseError **error) = 0;

    virtual HRESULT STDMETHODCALLTYPE importNode(
        IXMLDOMNode *node,
        VARIANT_BOOL deep,
        IXMLDOMNode **clone) = 0;

};
#else
typedef struct IXMLDOMDocument3Vtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXMLDOMDocument3* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXMLDOMDocument3* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXMLDOMDocument3* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXMLDOMDocument3* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXMLDOMDocument3* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXMLDOMDocument3* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXMLDOMDocument3* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IXMLDOMNode methods ***/
    HRESULT (STDMETHODCALLTYPE *get_nodeName)(
        IXMLDOMDocument3* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_nodeValue)(
        IXMLDOMDocument3* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeValue)(
        IXMLDOMDocument3* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_nodeType)(
        IXMLDOMDocument3* This,
        DOMNodeType *domNodeType);

    HRESULT (STDMETHODCALLTYPE *get_parentNode)(
        IXMLDOMDocument3* This,
        IXMLDOMNode **parent);

    HRESULT (STDMETHODCALLTYPE *get_childNodes)(
        IXMLDOMDocument3* This,
        IXMLDOMNodeList **outList);

    HRESULT (STDMETHODCALLTYPE *get_firstChild)(
        IXMLDOMDocument3* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_lastChild)(
        IXMLDOMDocument3* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_previousSibling)(
        IXMLDOMDocument3* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_nextSibling)(
        IXMLDOMDocument3* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_attributes)(
        IXMLDOMDocument3* This,
        IXMLDOMNamedNodeMap **attributeMap);

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXMLDOMDocument3* This,
        IXMLDOMNode *newNode,
        VARIANT var1,
        IXMLDOMNode **outOldNode);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXMLDOMDocument3* This,
        IXMLDOMNode *newNode,
        IXMLDOMNode *oldNode,
        IXMLDOMNode **outOldNode);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXMLDOMDocument3* This,
        IXMLDOMNode *domNode,
        IXMLDOMNode **oldNode);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXMLDOMDocument3* This,
        IXMLDOMNode *newNode,
        IXMLDOMNode **outNewNode);

    HRESULT (STDMETHODCALLTYPE *hasChildNodes)(
        IXMLDOMDocument3* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_ownerDocument)(
        IXMLDOMDocument3* This,
        IXMLDOMDocument **domDocument);

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXMLDOMDocument3* This,
        VARIANT_BOOL pbool,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypeString)(
        IXMLDOMDocument3* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_text)(
        IXMLDOMDocument3* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *put_text)(
        IXMLDOMDocument3* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_specified)(
        IXMLDOMDocument3* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_definition)(
        IXMLDOMDocument3* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypedValue)(
        IXMLDOMDocument3* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeTypedValue)(
        IXMLDOMDocument3* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_dataType)(
        IXMLDOMDocument3* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_dataType)(
        IXMLDOMDocument3* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_xml)(
        IXMLDOMDocument3* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXMLDOMDocument3* This,
        IXMLDOMNode *domNode,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXMLDOMDocument3* This,
        BSTR p,
        IXMLDOMNodeList **outList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXMLDOMDocument3* This,
        BSTR p,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_parsed)(
        IXMLDOMDocument3* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        IXMLDOMDocument3* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_prefix)(
        IXMLDOMDocument3* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_baseName)(
        IXMLDOMDocument3* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXMLDOMDocument3* This,
        IXMLDOMNode *domNode,
        VARIANT var1);

    /*** IXMLDOMDocument methods ***/
    HRESULT (STDMETHODCALLTYPE *get_doctype)(
        IXMLDOMDocument3* This,
        IXMLDOMDocumentType **docType);

    HRESULT (STDMETHODCALLTYPE *get_implementation)(
        IXMLDOMDocument3* This,
        IXMLDOMImplementation **impl);

    HRESULT (STDMETHODCALLTYPE *get_documentElement)(
        IXMLDOMDocument3* This,
        IXMLDOMElement **domElement);

    HRESULT (STDMETHODCALLTYPE *putref_documentElement)(
        IXMLDOMDocument3* This,
        IXMLDOMElement *domElement);

    HRESULT (STDMETHODCALLTYPE *createElement)(
        IXMLDOMDocument3* This,
        BSTR p,
        IXMLDOMElement **domElement);

    HRESULT (STDMETHODCALLTYPE *createDocumentFragment)(
        IXMLDOMDocument3* This,
        IXMLDOMDocumentFragment **docFrag);

    HRESULT (STDMETHODCALLTYPE *createTextNode)(
        IXMLDOMDocument3* This,
        BSTR p,
        IXMLDOMText **text);

    HRESULT (STDMETHODCALLTYPE *createComment)(
        IXMLDOMDocument3* This,
        BSTR p,
        IXMLDOMComment **comment);

    HRESULT (STDMETHODCALLTYPE *createCDATASection)(
        IXMLDOMDocument3* This,
        BSTR p,
        IXMLDOMCDATASection **cdata);

    HRESULT (STDMETHODCALLTYPE *createProcessingInstruction)(
        IXMLDOMDocument3* This,
        BSTR target,
        BSTR data,
        IXMLDOMProcessingInstruction **pi);

    HRESULT (STDMETHODCALLTYPE *createAttribute)(
        IXMLDOMDocument3* This,
        BSTR p,
        IXMLDOMAttribute **attribute);

    HRESULT (STDMETHODCALLTYPE *createEntityReference)(
        IXMLDOMDocument3* This,
        BSTR p,
        IXMLDOMEntityReference **entityRef);

    HRESULT (STDMETHODCALLTYPE *getElementsByTagName)(
        IXMLDOMDocument3* This,
        BSTR p,
        IXMLDOMNodeList **resultList);

    HRESULT (STDMETHODCALLTYPE *createNode)(
        IXMLDOMDocument3* This,
        VARIANT var,
        BSTR name,
        BSTR uri,
        IXMLDOMNode **node);

    HRESULT (STDMETHODCALLTYPE *nodeFromID)(
        IXMLDOMDocument3* This,
        BSTR id,
        IXMLDOMNode **node);

    HRESULT (STDMETHODCALLTYPE *load)(
        IXMLDOMDocument3* This,
        VARIANT var1,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_readyState)(
        IXMLDOMDocument3* This,
        LONG *value);

    HRESULT (STDMETHODCALLTYPE *get_parseError)(
        IXMLDOMDocument3* This,
        IXMLDOMParseError **err);

    HRESULT (STDMETHODCALLTYPE *get_url)(
        IXMLDOMDocument3* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_async)(
        IXMLDOMDocument3* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *put_async)(
        IXMLDOMDocument3* This,
        VARIANT_BOOL pbool);

    HRESULT (STDMETHODCALLTYPE *abort)(
        IXMLDOMDocument3* This);

    HRESULT (STDMETHODCALLTYPE *loadXML)(
        IXMLDOMDocument3* This,
        BSTR p,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *save)(
        IXMLDOMDocument3* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_validateOnParse)(
        IXMLDOMDocument3* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *put_validateOnParse)(
        IXMLDOMDocument3* This,
        VARIANT_BOOL pbool);

    HRESULT (STDMETHODCALLTYPE *get_resolveExternals)(
        IXMLDOMDocument3* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *put_resolveExternals)(
        IXMLDOMDocument3* This,
        VARIANT_BOOL pbool);

    HRESULT (STDMETHODCALLTYPE *get_preserveWhiteSpace)(
        IXMLDOMDocument3* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *put_preserveWhiteSpace)(
        IXMLDOMDocument3* This,
        VARIANT_BOOL pbool);

    HRESULT (STDMETHODCALLTYPE *put_onreadystatechange)(
        IXMLDOMDocument3* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *put_ondataavailable)(
        IXMLDOMDocument3* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *put_ontransformnode)(
        IXMLDOMDocument3* This,
        VARIANT var1);

    /*** IXMLDOMDocument2 methods ***/
    HRESULT (STDMETHODCALLTYPE *get_namespaces)(
        IXMLDOMDocument3* This,
        IXMLDOMSchemaCollection **schemaCollection);

    HRESULT (STDMETHODCALLTYPE *get_schemas)(
        IXMLDOMDocument3* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *putref_schemas)(
        IXMLDOMDocument3* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *validate)(
        IXMLDOMDocument3* This,
        IXMLDOMParseError **err);

    HRESULT (STDMETHODCALLTYPE *setProperty)(
        IXMLDOMDocument3* This,
        BSTR p,
        VARIANT var);

    HRESULT (STDMETHODCALLTYPE *getProperty)(
        IXMLDOMDocument3* This,
        BSTR p,
        VARIANT *var);

    /*** IXMLDOMDocument3 methods ***/
    HRESULT (STDMETHODCALLTYPE *validateNode)(
        IXMLDOMDocument3* This,
        IXMLDOMNode *node,
        IXMLDOMParseError **error);

    HRESULT (STDMETHODCALLTYPE *importNode)(
        IXMLDOMDocument3* This,
        IXMLDOMNode *node,
        VARIANT_BOOL deep,
        IXMLDOMNode **clone);

    END_INTERFACE
} IXMLDOMDocument3Vtbl;
interface IXMLDOMDocument3 {
    CONST_VTBL IXMLDOMDocument3Vtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMDocument3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXMLDOMDocument3_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXMLDOMDocument3_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXMLDOMDocument3_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXMLDOMDocument3_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXMLDOMDocument3_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXMLDOMDocument3_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLDOMNode methods ***/
#define IXMLDOMDocument3_get_nodeName(This,p) (This)->lpVtbl->get_nodeName(This,p)
#define IXMLDOMDocument3_get_nodeValue(This,var1) (This)->lpVtbl->get_nodeValue(This,var1)
#define IXMLDOMDocument3_put_nodeValue(This,var1) (This)->lpVtbl->put_nodeValue(This,var1)
#define IXMLDOMDocument3_get_nodeType(This,domNodeType) (This)->lpVtbl->get_nodeType(This,domNodeType)
#define IXMLDOMDocument3_get_parentNode(This,parent) (This)->lpVtbl->get_parentNode(This,parent)
#define IXMLDOMDocument3_get_childNodes(This,outList) (This)->lpVtbl->get_childNodes(This,outList)
#define IXMLDOMDocument3_get_firstChild(This,domNode) (This)->lpVtbl->get_firstChild(This,domNode)
#define IXMLDOMDocument3_get_lastChild(This,domNode) (This)->lpVtbl->get_lastChild(This,domNode)
#define IXMLDOMDocument3_get_previousSibling(This,domNode) (This)->lpVtbl->get_previousSibling(This,domNode)
#define IXMLDOMDocument3_get_nextSibling(This,domNode) (This)->lpVtbl->get_nextSibling(This,domNode)
#define IXMLDOMDocument3_get_attributes(This,attributeMap) (This)->lpVtbl->get_attributes(This,attributeMap)
#define IXMLDOMDocument3_insertBefore(This,newNode,var1,outOldNode) (This)->lpVtbl->insertBefore(This,newNode,var1,outOldNode)
#define IXMLDOMDocument3_replaceChild(This,newNode,oldNode,outOldNode) (This)->lpVtbl->replaceChild(This,newNode,oldNode,outOldNode)
#define IXMLDOMDocument3_removeChild(This,domNode,oldNode) (This)->lpVtbl->removeChild(This,domNode,oldNode)
#define IXMLDOMDocument3_appendChild(This,newNode,outNewNode) (This)->lpVtbl->appendChild(This,newNode,outNewNode)
#define IXMLDOMDocument3_hasChildNodes(This,pbool) (This)->lpVtbl->hasChildNodes(This,pbool)
#define IXMLDOMDocument3_get_ownerDocument(This,domDocument) (This)->lpVtbl->get_ownerDocument(This,domDocument)
#define IXMLDOMDocument3_cloneNode(This,pbool,outNode) (This)->lpVtbl->cloneNode(This,pbool,outNode)
#define IXMLDOMDocument3_get_nodeTypeString(This,p) (This)->lpVtbl->get_nodeTypeString(This,p)
#define IXMLDOMDocument3_get_text(This,p) (This)->lpVtbl->get_text(This,p)
#define IXMLDOMDocument3_put_text(This,p) (This)->lpVtbl->put_text(This,p)
#define IXMLDOMDocument3_get_specified(This,pbool) (This)->lpVtbl->get_specified(This,pbool)
#define IXMLDOMDocument3_get_definition(This,domNode) (This)->lpVtbl->get_definition(This,domNode)
#define IXMLDOMDocument3_get_nodeTypedValue(This,var1) (This)->lpVtbl->get_nodeTypedValue(This,var1)
#define IXMLDOMDocument3_put_nodeTypedValue(This,var1) (This)->lpVtbl->put_nodeTypedValue(This,var1)
#define IXMLDOMDocument3_get_dataType(This,var1) (This)->lpVtbl->get_dataType(This,var1)
#define IXMLDOMDocument3_put_dataType(This,p) (This)->lpVtbl->put_dataType(This,p)
#define IXMLDOMDocument3_get_xml(This,p) (This)->lpVtbl->get_xml(This,p)
#define IXMLDOMDocument3_transformNode(This,domNode,p) (This)->lpVtbl->transformNode(This,domNode,p)
#define IXMLDOMDocument3_selectNodes(This,p,outList) (This)->lpVtbl->selectNodes(This,p,outList)
#define IXMLDOMDocument3_selectSingleNode(This,p,outNode) (This)->lpVtbl->selectSingleNode(This,p,outNode)
#define IXMLDOMDocument3_get_parsed(This,pbool) (This)->lpVtbl->get_parsed(This,pbool)
#define IXMLDOMDocument3_get_namespaceURI(This,p) (This)->lpVtbl->get_namespaceURI(This,p)
#define IXMLDOMDocument3_get_prefix(This,p) (This)->lpVtbl->get_prefix(This,p)
#define IXMLDOMDocument3_get_baseName(This,p) (This)->lpVtbl->get_baseName(This,p)
#define IXMLDOMDocument3_transformNodeToObject(This,domNode,var1) (This)->lpVtbl->transformNodeToObject(This,domNode,var1)
/*** IXMLDOMDocument methods ***/
#define IXMLDOMDocument3_get_doctype(This,docType) (This)->lpVtbl->get_doctype(This,docType)
#define IXMLDOMDocument3_get_implementation(This,impl) (This)->lpVtbl->get_implementation(This,impl)
#define IXMLDOMDocument3_get_documentElement(This,domElement) (This)->lpVtbl->get_documentElement(This,domElement)
#define IXMLDOMDocument3_putref_documentElement(This,domElement) (This)->lpVtbl->putref_documentElement(This,domElement)
#define IXMLDOMDocument3_createElement(This,p,domElement) (This)->lpVtbl->createElement(This,p,domElement)
#define IXMLDOMDocument3_createDocumentFragment(This,docFrag) (This)->lpVtbl->createDocumentFragment(This,docFrag)
#define IXMLDOMDocument3_createTextNode(This,p,text) (This)->lpVtbl->createTextNode(This,p,text)
#define IXMLDOMDocument3_createComment(This,p,comment) (This)->lpVtbl->createComment(This,p,comment)
#define IXMLDOMDocument3_createCDATASection(This,p,cdata) (This)->lpVtbl->createCDATASection(This,p,cdata)
#define IXMLDOMDocument3_createProcessingInstruction(This,target,data,pi) (This)->lpVtbl->createProcessingInstruction(This,target,data,pi)
#define IXMLDOMDocument3_createAttribute(This,p,attribute) (This)->lpVtbl->createAttribute(This,p,attribute)
#define IXMLDOMDocument3_createEntityReference(This,p,entityRef) (This)->lpVtbl->createEntityReference(This,p,entityRef)
#define IXMLDOMDocument3_getElementsByTagName(This,p,resultList) (This)->lpVtbl->getElementsByTagName(This,p,resultList)
#define IXMLDOMDocument3_createNode(This,var,name,uri,node) (This)->lpVtbl->createNode(This,var,name,uri,node)
#define IXMLDOMDocument3_nodeFromID(This,id,node) (This)->lpVtbl->nodeFromID(This,id,node)
#define IXMLDOMDocument3_load(This,var1,pbool) (This)->lpVtbl->load(This,var1,pbool)
#define IXMLDOMDocument3_get_readyState(This,value) (This)->lpVtbl->get_readyState(This,value)
#define IXMLDOMDocument3_get_parseError(This,err) (This)->lpVtbl->get_parseError(This,err)
#define IXMLDOMDocument3_get_url(This,p) (This)->lpVtbl->get_url(This,p)
#define IXMLDOMDocument3_get_async(This,pbool) (This)->lpVtbl->get_async(This,pbool)
#define IXMLDOMDocument3_put_async(This,pbool) (This)->lpVtbl->put_async(This,pbool)
#define IXMLDOMDocument3_abort(This) (This)->lpVtbl->abort(This)
#define IXMLDOMDocument3_loadXML(This,p,pbool) (This)->lpVtbl->loadXML(This,p,pbool)
#define IXMLDOMDocument3_save(This,var1) (This)->lpVtbl->save(This,var1)
#define IXMLDOMDocument3_get_validateOnParse(This,pbool) (This)->lpVtbl->get_validateOnParse(This,pbool)
#define IXMLDOMDocument3_put_validateOnParse(This,pbool) (This)->lpVtbl->put_validateOnParse(This,pbool)
#define IXMLDOMDocument3_get_resolveExternals(This,pbool) (This)->lpVtbl->get_resolveExternals(This,pbool)
#define IXMLDOMDocument3_put_resolveExternals(This,pbool) (This)->lpVtbl->put_resolveExternals(This,pbool)
#define IXMLDOMDocument3_get_preserveWhiteSpace(This,pbool) (This)->lpVtbl->get_preserveWhiteSpace(This,pbool)
#define IXMLDOMDocument3_put_preserveWhiteSpace(This,pbool) (This)->lpVtbl->put_preserveWhiteSpace(This,pbool)
#define IXMLDOMDocument3_put_onreadystatechange(This,var1) (This)->lpVtbl->put_onreadystatechange(This,var1)
#define IXMLDOMDocument3_put_ondataavailable(This,var1) (This)->lpVtbl->put_ondataavailable(This,var1)
#define IXMLDOMDocument3_put_ontransformnode(This,var1) (This)->lpVtbl->put_ontransformnode(This,var1)
/*** IXMLDOMDocument2 methods ***/
#define IXMLDOMDocument3_get_namespaces(This,schemaCollection) (This)->lpVtbl->get_namespaces(This,schemaCollection)
#define IXMLDOMDocument3_get_schemas(This,var1) (This)->lpVtbl->get_schemas(This,var1)
#define IXMLDOMDocument3_putref_schemas(This,var1) (This)->lpVtbl->putref_schemas(This,var1)
#define IXMLDOMDocument3_validate(This,err) (This)->lpVtbl->validate(This,err)
#define IXMLDOMDocument3_setProperty(This,p,var) (This)->lpVtbl->setProperty(This,p,var)
#define IXMLDOMDocument3_getProperty(This,p,var) (This)->lpVtbl->getProperty(This,p,var)
/*** IXMLDOMDocument3 methods ***/
#define IXMLDOMDocument3_validateNode(This,node,error) (This)->lpVtbl->validateNode(This,node,error)
#define IXMLDOMDocument3_importNode(This,node,deep,clone) (This)->lpVtbl->importNode(This,node,deep,clone)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLDOMDocument3_validateNode_Proxy(
    IXMLDOMDocument3* This,
    IXMLDOMNode *node,
    IXMLDOMParseError **error);
void __RPC_STUB IXMLDOMDocument3_validateNode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument3_importNode_Proxy(
    IXMLDOMDocument3* This,
    IXMLDOMNode *node,
    VARIANT_BOOL deep,
    IXMLDOMNode **clone);
void __RPC_STUB IXMLDOMDocument3_importNode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMDocument3_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMNodeList interface
 */
#ifndef __IXMLDOMNodeList_INTERFACE_DEFINED__
#define __IXMLDOMNodeList_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDOMNodeList, 0x2933bf82, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLDOMNodeList : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_item(
        LONG lIndex,
        IXMLDOMNode **outNode) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_length(
        LONG *lLength) = 0;

    virtual HRESULT STDMETHODCALLTYPE nextNode(
        IXMLDOMNode **outNode) = 0;

    virtual HRESULT STDMETHODCALLTYPE reset(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE get__newEnum(
        IUnknown **ppUnk) = 0;

};
#else
typedef struct IXMLDOMNodeListVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXMLDOMNodeList* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXMLDOMNodeList* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXMLDOMNodeList* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXMLDOMNodeList* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXMLDOMNodeList* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXMLDOMNodeList* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXMLDOMNodeList* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IXMLDOMNodeList methods ***/
    HRESULT (STDMETHODCALLTYPE *get_item)(
        IXMLDOMNodeList* This,
        LONG lIndex,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_length)(
        IXMLDOMNodeList* This,
        LONG *lLength);

    HRESULT (STDMETHODCALLTYPE *nextNode)(
        IXMLDOMNodeList* This,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *reset)(
        IXMLDOMNodeList* This);

    HRESULT (STDMETHODCALLTYPE *get__newEnum)(
        IXMLDOMNodeList* This,
        IUnknown **ppUnk);

    END_INTERFACE
} IXMLDOMNodeListVtbl;
interface IXMLDOMNodeList {
    CONST_VTBL IXMLDOMNodeListVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMNodeList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXMLDOMNodeList_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXMLDOMNodeList_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXMLDOMNodeList_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXMLDOMNodeList_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXMLDOMNodeList_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXMLDOMNodeList_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLDOMNodeList methods ***/
#define IXMLDOMNodeList_get_item(This,lIndex,outNode) (This)->lpVtbl->get_item(This,lIndex,outNode)
#define IXMLDOMNodeList_get_length(This,lLength) (This)->lpVtbl->get_length(This,lLength)
#define IXMLDOMNodeList_nextNode(This,outNode) (This)->lpVtbl->nextNode(This,outNode)
#define IXMLDOMNodeList_reset(This) (This)->lpVtbl->reset(This)
#define IXMLDOMNodeList_get__newEnum(This,ppUnk) (This)->lpVtbl->get__newEnum(This,ppUnk)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLDOMNodeList_get_item_Proxy(
    IXMLDOMNodeList* This,
    LONG lIndex,
    IXMLDOMNode **outNode);
void __RPC_STUB IXMLDOMNodeList_get_item_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNodeList_get_length_Proxy(
    IXMLDOMNodeList* This,
    LONG *lLength);
void __RPC_STUB IXMLDOMNodeList_get_length_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNodeList_nextNode_Proxy(
    IXMLDOMNodeList* This,
    IXMLDOMNode **outNode);
void __RPC_STUB IXMLDOMNodeList_nextNode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNodeList_reset_Proxy(
    IXMLDOMNodeList* This);
void __RPC_STUB IXMLDOMNodeList_reset_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNodeList_get__newEnum_Proxy(
    IXMLDOMNodeList* This,
    IUnknown **ppUnk);
void __RPC_STUB IXMLDOMNodeList_get__newEnum_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMNodeList_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMSelection interface
 */
#ifndef __IXMLDOMSelection_INTERFACE_DEFINED__
#define __IXMLDOMSelection_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDOMSelection, 0xaa634fc7, 0x5888, 0x44a7, 0xa2,0x57, 0x3a,0x47,0x15,0x0d,0x3a,0x0e);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLDOMSelection : public IXMLDOMNodeList
{
    virtual HRESULT STDMETHODCALLTYPE get_expr(
        BSTR *p) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_expr(
        BSTR p) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_context(
        IXMLDOMNode **ppNode) = 0;

    virtual HRESULT STDMETHODCALLTYPE putref_context(
        IXMLDOMNode *pNode) = 0;

    virtual HRESULT STDMETHODCALLTYPE peekNode(
        IXMLDOMNode **ppNode) = 0;

    virtual HRESULT STDMETHODCALLTYPE matches(
        IXMLDOMNode *pNode,
        IXMLDOMNode **ppNode) = 0;

    virtual HRESULT STDMETHODCALLTYPE removeNext(
        IXMLDOMNode **ppNode) = 0;

    virtual HRESULT STDMETHODCALLTYPE removeAll(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE clone(
        IXMLDOMSelection **ppNode) = 0;

    virtual HRESULT STDMETHODCALLTYPE getProperty(
        BSTR p,
        VARIANT *var) = 0;

    virtual HRESULT STDMETHODCALLTYPE setProperty(
        BSTR p,
        VARIANT var) = 0;

};
#else
typedef struct IXMLDOMSelectionVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXMLDOMSelection* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXMLDOMSelection* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXMLDOMSelection* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXMLDOMSelection* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXMLDOMSelection* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXMLDOMSelection* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXMLDOMSelection* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IXMLDOMNodeList methods ***/
    HRESULT (STDMETHODCALLTYPE *get_item)(
        IXMLDOMSelection* This,
        LONG lIndex,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_length)(
        IXMLDOMSelection* This,
        LONG *lLength);

    HRESULT (STDMETHODCALLTYPE *nextNode)(
        IXMLDOMSelection* This,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *reset)(
        IXMLDOMSelection* This);

    HRESULT (STDMETHODCALLTYPE *get__newEnum)(
        IXMLDOMSelection* This,
        IUnknown **ppUnk);

    /*** IXMLDOMSelection methods ***/
    HRESULT (STDMETHODCALLTYPE *get_expr)(
        IXMLDOMSelection* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *put_expr)(
        IXMLDOMSelection* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_context)(
        IXMLDOMSelection* This,
        IXMLDOMNode **ppNode);

    HRESULT (STDMETHODCALLTYPE *putref_context)(
        IXMLDOMSelection* This,
        IXMLDOMNode *pNode);

    HRESULT (STDMETHODCALLTYPE *peekNode)(
        IXMLDOMSelection* This,
        IXMLDOMNode **ppNode);

    HRESULT (STDMETHODCALLTYPE *matches)(
        IXMLDOMSelection* This,
        IXMLDOMNode *pNode,
        IXMLDOMNode **ppNode);

    HRESULT (STDMETHODCALLTYPE *removeNext)(
        IXMLDOMSelection* This,
        IXMLDOMNode **ppNode);

    HRESULT (STDMETHODCALLTYPE *removeAll)(
        IXMLDOMSelection* This);

    HRESULT (STDMETHODCALLTYPE *clone)(
        IXMLDOMSelection* This,
        IXMLDOMSelection **ppNode);

    HRESULT (STDMETHODCALLTYPE *getProperty)(
        IXMLDOMSelection* This,
        BSTR p,
        VARIANT *var);

    HRESULT (STDMETHODCALLTYPE *setProperty)(
        IXMLDOMSelection* This,
        BSTR p,
        VARIANT var);

    END_INTERFACE
} IXMLDOMSelectionVtbl;
interface IXMLDOMSelection {
    CONST_VTBL IXMLDOMSelectionVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMSelection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXMLDOMSelection_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXMLDOMSelection_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXMLDOMSelection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXMLDOMSelection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXMLDOMSelection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXMLDOMSelection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLDOMNodeList methods ***/
#define IXMLDOMSelection_get_item(This,lIndex,outNode) (This)->lpVtbl->get_item(This,lIndex,outNode)
#define IXMLDOMSelection_get_length(This,lLength) (This)->lpVtbl->get_length(This,lLength)
#define IXMLDOMSelection_nextNode(This,outNode) (This)->lpVtbl->nextNode(This,outNode)
#define IXMLDOMSelection_reset(This) (This)->lpVtbl->reset(This)
#define IXMLDOMSelection_get__newEnum(This,ppUnk) (This)->lpVtbl->get__newEnum(This,ppUnk)
/*** IXMLDOMSelection methods ***/
#define IXMLDOMSelection_get_expr(This,p) (This)->lpVtbl->get_expr(This,p)
#define IXMLDOMSelection_put_expr(This,p) (This)->lpVtbl->put_expr(This,p)
#define IXMLDOMSelection_get_context(This,ppNode) (This)->lpVtbl->get_context(This,ppNode)
#define IXMLDOMSelection_putref_context(This,pNode) (This)->lpVtbl->putref_context(This,pNode)
#define IXMLDOMSelection_peekNode(This,ppNode) (This)->lpVtbl->peekNode(This,ppNode)
#define IXMLDOMSelection_matches(This,pNode,ppNode) (This)->lpVtbl->matches(This,pNode,ppNode)
#define IXMLDOMSelection_removeNext(This,ppNode) (This)->lpVtbl->removeNext(This,ppNode)
#define IXMLDOMSelection_removeAll(This) (This)->lpVtbl->removeAll(This)
#define IXMLDOMSelection_clone(This,ppNode) (This)->lpVtbl->clone(This,ppNode)
#define IXMLDOMSelection_getProperty(This,p,var) (This)->lpVtbl->getProperty(This,p,var)
#define IXMLDOMSelection_setProperty(This,p,var) (This)->lpVtbl->setProperty(This,p,var)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLDOMSelection_get_expr_Proxy(
    IXMLDOMSelection* This,
    BSTR *p);
void __RPC_STUB IXMLDOMSelection_get_expr_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMSelection_put_expr_Proxy(
    IXMLDOMSelection* This,
    BSTR p);
void __RPC_STUB IXMLDOMSelection_put_expr_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMSelection_get_context_Proxy(
    IXMLDOMSelection* This,
    IXMLDOMNode **ppNode);
void __RPC_STUB IXMLDOMSelection_get_context_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMSelection_putref_context_Proxy(
    IXMLDOMSelection* This,
    IXMLDOMNode *pNode);
void __RPC_STUB IXMLDOMSelection_putref_context_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMSelection_peekNode_Proxy(
    IXMLDOMSelection* This,
    IXMLDOMNode **ppNode);
void __RPC_STUB IXMLDOMSelection_peekNode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMSelection_matches_Proxy(
    IXMLDOMSelection* This,
    IXMLDOMNode *pNode,
    IXMLDOMNode **ppNode);
void __RPC_STUB IXMLDOMSelection_matches_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMSelection_removeNext_Proxy(
    IXMLDOMSelection* This,
    IXMLDOMNode **ppNode);
void __RPC_STUB IXMLDOMSelection_removeNext_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMSelection_removeAll_Proxy(
    IXMLDOMSelection* This);
void __RPC_STUB IXMLDOMSelection_removeAll_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMSelection_clone_Proxy(
    IXMLDOMSelection* This,
    IXMLDOMSelection **ppNode);
void __RPC_STUB IXMLDOMSelection_clone_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMSelection_getProperty_Proxy(
    IXMLDOMSelection* This,
    BSTR p,
    VARIANT *var);
void __RPC_STUB IXMLDOMSelection_getProperty_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMSelection_setProperty_Proxy(
    IXMLDOMSelection* This,
    BSTR p,
    VARIANT var);
void __RPC_STUB IXMLDOMSelection_setProperty_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMSelection_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMNamedNodeMap interface
 */
#ifndef __IXMLDOMNamedNodeMap_INTERFACE_DEFINED__
#define __IXMLDOMNamedNodeMap_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDOMNamedNodeMap, 0x2933bf83, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLDOMNamedNodeMap : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE getNamedItem(
        BSTR p,
        IXMLDOMNode **outNode) = 0;

    virtual HRESULT STDMETHODCALLTYPE setNamedItem(
        IXMLDOMNode *newNode,
        IXMLDOMNode **outNode) = 0;

    virtual HRESULT STDMETHODCALLTYPE removeNamedItem(
        BSTR p,
        IXMLDOMNode **outNode) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_item(
        LONG lIndex,
        IXMLDOMNode **outNode) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_length(
        LONG *lLength) = 0;

    virtual HRESULT STDMETHODCALLTYPE getQualifiedItem(
        BSTR name,
        BSTR uri,
        IXMLDOMNode **outNode) = 0;

    virtual HRESULT STDMETHODCALLTYPE removeQualifiedItem(
        BSTR name,
        BSTR uri,
        IXMLDOMNode **outNode) = 0;

    virtual HRESULT STDMETHODCALLTYPE nextNode(
        IXMLDOMNode **outNode) = 0;

    virtual HRESULT STDMETHODCALLTYPE reset(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE get__newEnum(
        IUnknown **ppUnk) = 0;

};
#else
typedef struct IXMLDOMNamedNodeMapVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXMLDOMNamedNodeMap* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXMLDOMNamedNodeMap* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXMLDOMNamedNodeMap* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXMLDOMNamedNodeMap* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXMLDOMNamedNodeMap* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXMLDOMNamedNodeMap* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXMLDOMNamedNodeMap* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IXMLDOMNamedNodeMap methods ***/
    HRESULT (STDMETHODCALLTYPE *getNamedItem)(
        IXMLDOMNamedNodeMap* This,
        BSTR p,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *setNamedItem)(
        IXMLDOMNamedNodeMap* This,
        IXMLDOMNode *newNode,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *removeNamedItem)(
        IXMLDOMNamedNodeMap* This,
        BSTR p,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_item)(
        IXMLDOMNamedNodeMap* This,
        LONG lIndex,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_length)(
        IXMLDOMNamedNodeMap* This,
        LONG *lLength);

    HRESULT (STDMETHODCALLTYPE *getQualifiedItem)(
        IXMLDOMNamedNodeMap* This,
        BSTR name,
        BSTR uri,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *removeQualifiedItem)(
        IXMLDOMNamedNodeMap* This,
        BSTR name,
        BSTR uri,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *nextNode)(
        IXMLDOMNamedNodeMap* This,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *reset)(
        IXMLDOMNamedNodeMap* This);

    HRESULT (STDMETHODCALLTYPE *get__newEnum)(
        IXMLDOMNamedNodeMap* This,
        IUnknown **ppUnk);

    END_INTERFACE
} IXMLDOMNamedNodeMapVtbl;
interface IXMLDOMNamedNodeMap {
    CONST_VTBL IXMLDOMNamedNodeMapVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMNamedNodeMap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXMLDOMNamedNodeMap_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXMLDOMNamedNodeMap_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXMLDOMNamedNodeMap_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXMLDOMNamedNodeMap_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXMLDOMNamedNodeMap_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXMLDOMNamedNodeMap_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLDOMNamedNodeMap methods ***/
#define IXMLDOMNamedNodeMap_getNamedItem(This,p,outNode) (This)->lpVtbl->getNamedItem(This,p,outNode)
#define IXMLDOMNamedNodeMap_setNamedItem(This,newNode,outNode) (This)->lpVtbl->setNamedItem(This,newNode,outNode)
#define IXMLDOMNamedNodeMap_removeNamedItem(This,p,outNode) (This)->lpVtbl->removeNamedItem(This,p,outNode)
#define IXMLDOMNamedNodeMap_get_item(This,lIndex,outNode) (This)->lpVtbl->get_item(This,lIndex,outNode)
#define IXMLDOMNamedNodeMap_get_length(This,lLength) (This)->lpVtbl->get_length(This,lLength)
#define IXMLDOMNamedNodeMap_getQualifiedItem(This,name,uri,outNode) (This)->lpVtbl->getQualifiedItem(This,name,uri,outNode)
#define IXMLDOMNamedNodeMap_removeQualifiedItem(This,name,uri,outNode) (This)->lpVtbl->removeQualifiedItem(This,name,uri,outNode)
#define IXMLDOMNamedNodeMap_nextNode(This,outNode) (This)->lpVtbl->nextNode(This,outNode)
#define IXMLDOMNamedNodeMap_reset(This) (This)->lpVtbl->reset(This)
#define IXMLDOMNamedNodeMap_get__newEnum(This,ppUnk) (This)->lpVtbl->get__newEnum(This,ppUnk)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLDOMNamedNodeMap_getNamedItem_Proxy(
    IXMLDOMNamedNodeMap* This,
    BSTR p,
    IXMLDOMNode **outNode);
void __RPC_STUB IXMLDOMNamedNodeMap_getNamedItem_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNamedNodeMap_setNamedItem_Proxy(
    IXMLDOMNamedNodeMap* This,
    IXMLDOMNode *newNode,
    IXMLDOMNode **outNode);
void __RPC_STUB IXMLDOMNamedNodeMap_setNamedItem_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNamedNodeMap_removeNamedItem_Proxy(
    IXMLDOMNamedNodeMap* This,
    BSTR p,
    IXMLDOMNode **outNode);
void __RPC_STUB IXMLDOMNamedNodeMap_removeNamedItem_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNamedNodeMap_get_item_Proxy(
    IXMLDOMNamedNodeMap* This,
    LONG lIndex,
    IXMLDOMNode **outNode);
void __RPC_STUB IXMLDOMNamedNodeMap_get_item_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNamedNodeMap_get_length_Proxy(
    IXMLDOMNamedNodeMap* This,
    LONG *lLength);
void __RPC_STUB IXMLDOMNamedNodeMap_get_length_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNamedNodeMap_getQualifiedItem_Proxy(
    IXMLDOMNamedNodeMap* This,
    BSTR name,
    BSTR uri,
    IXMLDOMNode **outNode);
void __RPC_STUB IXMLDOMNamedNodeMap_getQualifiedItem_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNamedNodeMap_removeQualifiedItem_Proxy(
    IXMLDOMNamedNodeMap* This,
    BSTR name,
    BSTR uri,
    IXMLDOMNode **outNode);
void __RPC_STUB IXMLDOMNamedNodeMap_removeQualifiedItem_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNamedNodeMap_nextNode_Proxy(
    IXMLDOMNamedNodeMap* This,
    IXMLDOMNode **outNode);
void __RPC_STUB IXMLDOMNamedNodeMap_nextNode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNamedNodeMap_reset_Proxy(
    IXMLDOMNamedNodeMap* This);
void __RPC_STUB IXMLDOMNamedNodeMap_reset_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNamedNodeMap_get__newEnum_Proxy(
    IXMLDOMNamedNodeMap* This,
    IUnknown **ppUnk);
void __RPC_STUB IXMLDOMNamedNodeMap_get__newEnum_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMNamedNodeMap_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMDocumentFragment interface
 */
#ifndef __IXMLDOMDocumentFragment_INTERFACE_DEFINED__
#define __IXMLDOMDocumentFragment_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDOMDocumentFragment, 0x3efaa413, 0x272f, 0x11d2, 0x83,0x6f, 0x00,0x00,0xf8,0x7a,0x77,0x82);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLDOMDocumentFragment : public IXMLDOMNode
{
};
#else
typedef struct IXMLDOMDocumentFragmentVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXMLDOMDocumentFragment* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXMLDOMDocumentFragment* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXMLDOMDocumentFragment* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXMLDOMDocumentFragment* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXMLDOMDocumentFragment* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXMLDOMDocumentFragment* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXMLDOMDocumentFragment* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IXMLDOMNode methods ***/
    HRESULT (STDMETHODCALLTYPE *get_nodeName)(
        IXMLDOMDocumentFragment* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_nodeValue)(
        IXMLDOMDocumentFragment* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeValue)(
        IXMLDOMDocumentFragment* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_nodeType)(
        IXMLDOMDocumentFragment* This,
        DOMNodeType *domNodeType);

    HRESULT (STDMETHODCALLTYPE *get_parentNode)(
        IXMLDOMDocumentFragment* This,
        IXMLDOMNode **parent);

    HRESULT (STDMETHODCALLTYPE *get_childNodes)(
        IXMLDOMDocumentFragment* This,
        IXMLDOMNodeList **outList);

    HRESULT (STDMETHODCALLTYPE *get_firstChild)(
        IXMLDOMDocumentFragment* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_lastChild)(
        IXMLDOMDocumentFragment* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_previousSibling)(
        IXMLDOMDocumentFragment* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_nextSibling)(
        IXMLDOMDocumentFragment* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_attributes)(
        IXMLDOMDocumentFragment* This,
        IXMLDOMNamedNodeMap **attributeMap);

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXMLDOMDocumentFragment* This,
        IXMLDOMNode *newNode,
        VARIANT var1,
        IXMLDOMNode **outOldNode);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXMLDOMDocumentFragment* This,
        IXMLDOMNode *newNode,
        IXMLDOMNode *oldNode,
        IXMLDOMNode **outOldNode);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXMLDOMDocumentFragment* This,
        IXMLDOMNode *domNode,
        IXMLDOMNode **oldNode);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXMLDOMDocumentFragment* This,
        IXMLDOMNode *newNode,
        IXMLDOMNode **outNewNode);

    HRESULT (STDMETHODCALLTYPE *hasChildNodes)(
        IXMLDOMDocumentFragment* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_ownerDocument)(
        IXMLDOMDocumentFragment* This,
        IXMLDOMDocument **domDocument);

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXMLDOMDocumentFragment* This,
        VARIANT_BOOL pbool,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypeString)(
        IXMLDOMDocumentFragment* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_text)(
        IXMLDOMDocumentFragment* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *put_text)(
        IXMLDOMDocumentFragment* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_specified)(
        IXMLDOMDocumentFragment* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_definition)(
        IXMLDOMDocumentFragment* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypedValue)(
        IXMLDOMDocumentFragment* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeTypedValue)(
        IXMLDOMDocumentFragment* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_dataType)(
        IXMLDOMDocumentFragment* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_dataType)(
        IXMLDOMDocumentFragment* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_xml)(
        IXMLDOMDocumentFragment* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXMLDOMDocumentFragment* This,
        IXMLDOMNode *domNode,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXMLDOMDocumentFragment* This,
        BSTR p,
        IXMLDOMNodeList **outList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXMLDOMDocumentFragment* This,
        BSTR p,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_parsed)(
        IXMLDOMDocumentFragment* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        IXMLDOMDocumentFragment* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_prefix)(
        IXMLDOMDocumentFragment* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_baseName)(
        IXMLDOMDocumentFragment* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXMLDOMDocumentFragment* This,
        IXMLDOMNode *domNode,
        VARIANT var1);

    END_INTERFACE
} IXMLDOMDocumentFragmentVtbl;
interface IXMLDOMDocumentFragment {
    CONST_VTBL IXMLDOMDocumentFragmentVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMDocumentFragment_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXMLDOMDocumentFragment_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXMLDOMDocumentFragment_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXMLDOMDocumentFragment_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXMLDOMDocumentFragment_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXMLDOMDocumentFragment_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXMLDOMDocumentFragment_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLDOMNode methods ***/
#define IXMLDOMDocumentFragment_get_nodeName(This,p) (This)->lpVtbl->get_nodeName(This,p)
#define IXMLDOMDocumentFragment_get_nodeValue(This,var1) (This)->lpVtbl->get_nodeValue(This,var1)
#define IXMLDOMDocumentFragment_put_nodeValue(This,var1) (This)->lpVtbl->put_nodeValue(This,var1)
#define IXMLDOMDocumentFragment_get_nodeType(This,domNodeType) (This)->lpVtbl->get_nodeType(This,domNodeType)
#define IXMLDOMDocumentFragment_get_parentNode(This,parent) (This)->lpVtbl->get_parentNode(This,parent)
#define IXMLDOMDocumentFragment_get_childNodes(This,outList) (This)->lpVtbl->get_childNodes(This,outList)
#define IXMLDOMDocumentFragment_get_firstChild(This,domNode) (This)->lpVtbl->get_firstChild(This,domNode)
#define IXMLDOMDocumentFragment_get_lastChild(This,domNode) (This)->lpVtbl->get_lastChild(This,domNode)
#define IXMLDOMDocumentFragment_get_previousSibling(This,domNode) (This)->lpVtbl->get_previousSibling(This,domNode)
#define IXMLDOMDocumentFragment_get_nextSibling(This,domNode) (This)->lpVtbl->get_nextSibling(This,domNode)
#define IXMLDOMDocumentFragment_get_attributes(This,attributeMap) (This)->lpVtbl->get_attributes(This,attributeMap)
#define IXMLDOMDocumentFragment_insertBefore(This,newNode,var1,outOldNode) (This)->lpVtbl->insertBefore(This,newNode,var1,outOldNode)
#define IXMLDOMDocumentFragment_replaceChild(This,newNode,oldNode,outOldNode) (This)->lpVtbl->replaceChild(This,newNode,oldNode,outOldNode)
#define IXMLDOMDocumentFragment_removeChild(This,domNode,oldNode) (This)->lpVtbl->removeChild(This,domNode,oldNode)
#define IXMLDOMDocumentFragment_appendChild(This,newNode,outNewNode) (This)->lpVtbl->appendChild(This,newNode,outNewNode)
#define IXMLDOMDocumentFragment_hasChildNodes(This,pbool) (This)->lpVtbl->hasChildNodes(This,pbool)
#define IXMLDOMDocumentFragment_get_ownerDocument(This,domDocument) (This)->lpVtbl->get_ownerDocument(This,domDocument)
#define IXMLDOMDocumentFragment_cloneNode(This,pbool,outNode) (This)->lpVtbl->cloneNode(This,pbool,outNode)
#define IXMLDOMDocumentFragment_get_nodeTypeString(This,p) (This)->lpVtbl->get_nodeTypeString(This,p)
#define IXMLDOMDocumentFragment_get_text(This,p) (This)->lpVtbl->get_text(This,p)
#define IXMLDOMDocumentFragment_put_text(This,p) (This)->lpVtbl->put_text(This,p)
#define IXMLDOMDocumentFragment_get_specified(This,pbool) (This)->lpVtbl->get_specified(This,pbool)
#define IXMLDOMDocumentFragment_get_definition(This,domNode) (This)->lpVtbl->get_definition(This,domNode)
#define IXMLDOMDocumentFragment_get_nodeTypedValue(This,var1) (This)->lpVtbl->get_nodeTypedValue(This,var1)
#define IXMLDOMDocumentFragment_put_nodeTypedValue(This,var1) (This)->lpVtbl->put_nodeTypedValue(This,var1)
#define IXMLDOMDocumentFragment_get_dataType(This,var1) (This)->lpVtbl->get_dataType(This,var1)
#define IXMLDOMDocumentFragment_put_dataType(This,p) (This)->lpVtbl->put_dataType(This,p)
#define IXMLDOMDocumentFragment_get_xml(This,p) (This)->lpVtbl->get_xml(This,p)
#define IXMLDOMDocumentFragment_transformNode(This,domNode,p) (This)->lpVtbl->transformNode(This,domNode,p)
#define IXMLDOMDocumentFragment_selectNodes(This,p,outList) (This)->lpVtbl->selectNodes(This,p,outList)
#define IXMLDOMDocumentFragment_selectSingleNode(This,p,outNode) (This)->lpVtbl->selectSingleNode(This,p,outNode)
#define IXMLDOMDocumentFragment_get_parsed(This,pbool) (This)->lpVtbl->get_parsed(This,pbool)
#define IXMLDOMDocumentFragment_get_namespaceURI(This,p) (This)->lpVtbl->get_namespaceURI(This,p)
#define IXMLDOMDocumentFragment_get_prefix(This,p) (This)->lpVtbl->get_prefix(This,p)
#define IXMLDOMDocumentFragment_get_baseName(This,p) (This)->lpVtbl->get_baseName(This,p)
#define IXMLDOMDocumentFragment_transformNodeToObject(This,domNode,var1) (This)->lpVtbl->transformNodeToObject(This,domNode,var1)
#endif

#endif


#endif  /* __IXMLDOMDocumentFragment_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMCharacterData interface
 */
#ifndef __IXMLDOMCharacterData_INTERFACE_DEFINED__
#define __IXMLDOMCharacterData_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDOMCharacterData, 0x2933bf84, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLDOMCharacterData : public IXMLDOMNode
{
    virtual HRESULT STDMETHODCALLTYPE get_data(
        BSTR *p) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_data(
        BSTR data) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_length(
        LONG *len) = 0;

    virtual HRESULT STDMETHODCALLTYPE substringData(
        LONG offset,
        LONG count,
        BSTR *p) = 0;

    virtual HRESULT STDMETHODCALLTYPE appendData(
        BSTR p) = 0;

    virtual HRESULT STDMETHODCALLTYPE insertData(
        LONG offset,
        BSTR p) = 0;

    virtual HRESULT STDMETHODCALLTYPE deleteData(
        LONG offset,
        LONG count) = 0;

    virtual HRESULT STDMETHODCALLTYPE replaceData(
        LONG offset,
        LONG count,
        BSTR p) = 0;

};
#else
typedef struct IXMLDOMCharacterDataVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXMLDOMCharacterData* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXMLDOMCharacterData* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXMLDOMCharacterData* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXMLDOMCharacterData* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXMLDOMCharacterData* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXMLDOMCharacterData* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXMLDOMCharacterData* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IXMLDOMNode methods ***/
    HRESULT (STDMETHODCALLTYPE *get_nodeName)(
        IXMLDOMCharacterData* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_nodeValue)(
        IXMLDOMCharacterData* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeValue)(
        IXMLDOMCharacterData* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_nodeType)(
        IXMLDOMCharacterData* This,
        DOMNodeType *domNodeType);

    HRESULT (STDMETHODCALLTYPE *get_parentNode)(
        IXMLDOMCharacterData* This,
        IXMLDOMNode **parent);

    HRESULT (STDMETHODCALLTYPE *get_childNodes)(
        IXMLDOMCharacterData* This,
        IXMLDOMNodeList **outList);

    HRESULT (STDMETHODCALLTYPE *get_firstChild)(
        IXMLDOMCharacterData* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_lastChild)(
        IXMLDOMCharacterData* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_previousSibling)(
        IXMLDOMCharacterData* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_nextSibling)(
        IXMLDOMCharacterData* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_attributes)(
        IXMLDOMCharacterData* This,
        IXMLDOMNamedNodeMap **attributeMap);

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXMLDOMCharacterData* This,
        IXMLDOMNode *newNode,
        VARIANT var1,
        IXMLDOMNode **outOldNode);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXMLDOMCharacterData* This,
        IXMLDOMNode *newNode,
        IXMLDOMNode *oldNode,
        IXMLDOMNode **outOldNode);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXMLDOMCharacterData* This,
        IXMLDOMNode *domNode,
        IXMLDOMNode **oldNode);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXMLDOMCharacterData* This,
        IXMLDOMNode *newNode,
        IXMLDOMNode **outNewNode);

    HRESULT (STDMETHODCALLTYPE *hasChildNodes)(
        IXMLDOMCharacterData* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_ownerDocument)(
        IXMLDOMCharacterData* This,
        IXMLDOMDocument **domDocument);

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXMLDOMCharacterData* This,
        VARIANT_BOOL pbool,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypeString)(
        IXMLDOMCharacterData* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_text)(
        IXMLDOMCharacterData* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *put_text)(
        IXMLDOMCharacterData* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_specified)(
        IXMLDOMCharacterData* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_definition)(
        IXMLDOMCharacterData* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypedValue)(
        IXMLDOMCharacterData* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeTypedValue)(
        IXMLDOMCharacterData* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_dataType)(
        IXMLDOMCharacterData* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_dataType)(
        IXMLDOMCharacterData* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_xml)(
        IXMLDOMCharacterData* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXMLDOMCharacterData* This,
        IXMLDOMNode *domNode,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXMLDOMCharacterData* This,
        BSTR p,
        IXMLDOMNodeList **outList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXMLDOMCharacterData* This,
        BSTR p,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_parsed)(
        IXMLDOMCharacterData* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        IXMLDOMCharacterData* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_prefix)(
        IXMLDOMCharacterData* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_baseName)(
        IXMLDOMCharacterData* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXMLDOMCharacterData* This,
        IXMLDOMNode *domNode,
        VARIANT var1);

    /*** IXMLDOMCharacterData methods ***/
    HRESULT (STDMETHODCALLTYPE *get_data)(
        IXMLDOMCharacterData* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *put_data)(
        IXMLDOMCharacterData* This,
        BSTR data);

    HRESULT (STDMETHODCALLTYPE *get_length)(
        IXMLDOMCharacterData* This,
        LONG *len);

    HRESULT (STDMETHODCALLTYPE *substringData)(
        IXMLDOMCharacterData* This,
        LONG offset,
        LONG count,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *appendData)(
        IXMLDOMCharacterData* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *insertData)(
        IXMLDOMCharacterData* This,
        LONG offset,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *deleteData)(
        IXMLDOMCharacterData* This,
        LONG offset,
        LONG count);

    HRESULT (STDMETHODCALLTYPE *replaceData)(
        IXMLDOMCharacterData* This,
        LONG offset,
        LONG count,
        BSTR p);

    END_INTERFACE
} IXMLDOMCharacterDataVtbl;
interface IXMLDOMCharacterData {
    CONST_VTBL IXMLDOMCharacterDataVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMCharacterData_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXMLDOMCharacterData_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXMLDOMCharacterData_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXMLDOMCharacterData_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXMLDOMCharacterData_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXMLDOMCharacterData_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXMLDOMCharacterData_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLDOMNode methods ***/
#define IXMLDOMCharacterData_get_nodeName(This,p) (This)->lpVtbl->get_nodeName(This,p)
#define IXMLDOMCharacterData_get_nodeValue(This,var1) (This)->lpVtbl->get_nodeValue(This,var1)
#define IXMLDOMCharacterData_put_nodeValue(This,var1) (This)->lpVtbl->put_nodeValue(This,var1)
#define IXMLDOMCharacterData_get_nodeType(This,domNodeType) (This)->lpVtbl->get_nodeType(This,domNodeType)
#define IXMLDOMCharacterData_get_parentNode(This,parent) (This)->lpVtbl->get_parentNode(This,parent)
#define IXMLDOMCharacterData_get_childNodes(This,outList) (This)->lpVtbl->get_childNodes(This,outList)
#define IXMLDOMCharacterData_get_firstChild(This,domNode) (This)->lpVtbl->get_firstChild(This,domNode)
#define IXMLDOMCharacterData_get_lastChild(This,domNode) (This)->lpVtbl->get_lastChild(This,domNode)
#define IXMLDOMCharacterData_get_previousSibling(This,domNode) (This)->lpVtbl->get_previousSibling(This,domNode)
#define IXMLDOMCharacterData_get_nextSibling(This,domNode) (This)->lpVtbl->get_nextSibling(This,domNode)
#define IXMLDOMCharacterData_get_attributes(This,attributeMap) (This)->lpVtbl->get_attributes(This,attributeMap)
#define IXMLDOMCharacterData_insertBefore(This,newNode,var1,outOldNode) (This)->lpVtbl->insertBefore(This,newNode,var1,outOldNode)
#define IXMLDOMCharacterData_replaceChild(This,newNode,oldNode,outOldNode) (This)->lpVtbl->replaceChild(This,newNode,oldNode,outOldNode)
#define IXMLDOMCharacterData_removeChild(This,domNode,oldNode) (This)->lpVtbl->removeChild(This,domNode,oldNode)
#define IXMLDOMCharacterData_appendChild(This,newNode,outNewNode) (This)->lpVtbl->appendChild(This,newNode,outNewNode)
#define IXMLDOMCharacterData_hasChildNodes(This,pbool) (This)->lpVtbl->hasChildNodes(This,pbool)
#define IXMLDOMCharacterData_get_ownerDocument(This,domDocument) (This)->lpVtbl->get_ownerDocument(This,domDocument)
#define IXMLDOMCharacterData_cloneNode(This,pbool,outNode) (This)->lpVtbl->cloneNode(This,pbool,outNode)
#define IXMLDOMCharacterData_get_nodeTypeString(This,p) (This)->lpVtbl->get_nodeTypeString(This,p)
#define IXMLDOMCharacterData_get_text(This,p) (This)->lpVtbl->get_text(This,p)
#define IXMLDOMCharacterData_put_text(This,p) (This)->lpVtbl->put_text(This,p)
#define IXMLDOMCharacterData_get_specified(This,pbool) (This)->lpVtbl->get_specified(This,pbool)
#define IXMLDOMCharacterData_get_definition(This,domNode) (This)->lpVtbl->get_definition(This,domNode)
#define IXMLDOMCharacterData_get_nodeTypedValue(This,var1) (This)->lpVtbl->get_nodeTypedValue(This,var1)
#define IXMLDOMCharacterData_put_nodeTypedValue(This,var1) (This)->lpVtbl->put_nodeTypedValue(This,var1)
#define IXMLDOMCharacterData_get_dataType(This,var1) (This)->lpVtbl->get_dataType(This,var1)
#define IXMLDOMCharacterData_put_dataType(This,p) (This)->lpVtbl->put_dataType(This,p)
#define IXMLDOMCharacterData_get_xml(This,p) (This)->lpVtbl->get_xml(This,p)
#define IXMLDOMCharacterData_transformNode(This,domNode,p) (This)->lpVtbl->transformNode(This,domNode,p)
#define IXMLDOMCharacterData_selectNodes(This,p,outList) (This)->lpVtbl->selectNodes(This,p,outList)
#define IXMLDOMCharacterData_selectSingleNode(This,p,outNode) (This)->lpVtbl->selectSingleNode(This,p,outNode)
#define IXMLDOMCharacterData_get_parsed(This,pbool) (This)->lpVtbl->get_parsed(This,pbool)
#define IXMLDOMCharacterData_get_namespaceURI(This,p) (This)->lpVtbl->get_namespaceURI(This,p)
#define IXMLDOMCharacterData_get_prefix(This,p) (This)->lpVtbl->get_prefix(This,p)
#define IXMLDOMCharacterData_get_baseName(This,p) (This)->lpVtbl->get_baseName(This,p)
#define IXMLDOMCharacterData_transformNodeToObject(This,domNode,var1) (This)->lpVtbl->transformNodeToObject(This,domNode,var1)
/*** IXMLDOMCharacterData methods ***/
#define IXMLDOMCharacterData_get_data(This,p) (This)->lpVtbl->get_data(This,p)
#define IXMLDOMCharacterData_put_data(This,data) (This)->lpVtbl->put_data(This,data)
#define IXMLDOMCharacterData_get_length(This,len) (This)->lpVtbl->get_length(This,len)
#define IXMLDOMCharacterData_substringData(This,offset,count,p) (This)->lpVtbl->substringData(This,offset,count,p)
#define IXMLDOMCharacterData_appendData(This,p) (This)->lpVtbl->appendData(This,p)
#define IXMLDOMCharacterData_insertData(This,offset,p) (This)->lpVtbl->insertData(This,offset,p)
#define IXMLDOMCharacterData_deleteData(This,offset,count) (This)->lpVtbl->deleteData(This,offset,count)
#define IXMLDOMCharacterData_replaceData(This,offset,count,p) (This)->lpVtbl->replaceData(This,offset,count,p)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLDOMCharacterData_get_data_Proxy(
    IXMLDOMCharacterData* This,
    BSTR *p);
void __RPC_STUB IXMLDOMCharacterData_get_data_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMCharacterData_put_data_Proxy(
    IXMLDOMCharacterData* This,
    BSTR data);
void __RPC_STUB IXMLDOMCharacterData_put_data_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMCharacterData_get_length_Proxy(
    IXMLDOMCharacterData* This,
    LONG *len);
void __RPC_STUB IXMLDOMCharacterData_get_length_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMCharacterData_substringData_Proxy(
    IXMLDOMCharacterData* This,
    LONG offset,
    LONG count,
    BSTR *p);
void __RPC_STUB IXMLDOMCharacterData_substringData_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMCharacterData_appendData_Proxy(
    IXMLDOMCharacterData* This,
    BSTR p);
void __RPC_STUB IXMLDOMCharacterData_appendData_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMCharacterData_insertData_Proxy(
    IXMLDOMCharacterData* This,
    LONG offset,
    BSTR p);
void __RPC_STUB IXMLDOMCharacterData_insertData_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMCharacterData_deleteData_Proxy(
    IXMLDOMCharacterData* This,
    LONG offset,
    LONG count);
void __RPC_STUB IXMLDOMCharacterData_deleteData_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMCharacterData_replaceData_Proxy(
    IXMLDOMCharacterData* This,
    LONG offset,
    LONG count,
    BSTR p);
void __RPC_STUB IXMLDOMCharacterData_replaceData_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMCharacterData_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMAttribute interface
 */
#ifndef __IXMLDOMAttribute_INTERFACE_DEFINED__
#define __IXMLDOMAttribute_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDOMAttribute, 0x2933bf85, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLDOMAttribute : public IXMLDOMNode
{
    virtual HRESULT STDMETHODCALLTYPE get_name(
        BSTR *p) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_value(
        VARIANT *var1) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_value(
        VARIANT var1) = 0;

};
#else
typedef struct IXMLDOMAttributeVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXMLDOMAttribute* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXMLDOMAttribute* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXMLDOMAttribute* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXMLDOMAttribute* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXMLDOMAttribute* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXMLDOMAttribute* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXMLDOMAttribute* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IXMLDOMNode methods ***/
    HRESULT (STDMETHODCALLTYPE *get_nodeName)(
        IXMLDOMAttribute* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_nodeValue)(
        IXMLDOMAttribute* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeValue)(
        IXMLDOMAttribute* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_nodeType)(
        IXMLDOMAttribute* This,
        DOMNodeType *domNodeType);

    HRESULT (STDMETHODCALLTYPE *get_parentNode)(
        IXMLDOMAttribute* This,
        IXMLDOMNode **parent);

    HRESULT (STDMETHODCALLTYPE *get_childNodes)(
        IXMLDOMAttribute* This,
        IXMLDOMNodeList **outList);

    HRESULT (STDMETHODCALLTYPE *get_firstChild)(
        IXMLDOMAttribute* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_lastChild)(
        IXMLDOMAttribute* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_previousSibling)(
        IXMLDOMAttribute* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_nextSibling)(
        IXMLDOMAttribute* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_attributes)(
        IXMLDOMAttribute* This,
        IXMLDOMNamedNodeMap **attributeMap);

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXMLDOMAttribute* This,
        IXMLDOMNode *newNode,
        VARIANT var1,
        IXMLDOMNode **outOldNode);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXMLDOMAttribute* This,
        IXMLDOMNode *newNode,
        IXMLDOMNode *oldNode,
        IXMLDOMNode **outOldNode);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXMLDOMAttribute* This,
        IXMLDOMNode *domNode,
        IXMLDOMNode **oldNode);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXMLDOMAttribute* This,
        IXMLDOMNode *newNode,
        IXMLDOMNode **outNewNode);

    HRESULT (STDMETHODCALLTYPE *hasChildNodes)(
        IXMLDOMAttribute* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_ownerDocument)(
        IXMLDOMAttribute* This,
        IXMLDOMDocument **domDocument);

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXMLDOMAttribute* This,
        VARIANT_BOOL pbool,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypeString)(
        IXMLDOMAttribute* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_text)(
        IXMLDOMAttribute* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *put_text)(
        IXMLDOMAttribute* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_specified)(
        IXMLDOMAttribute* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_definition)(
        IXMLDOMAttribute* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypedValue)(
        IXMLDOMAttribute* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeTypedValue)(
        IXMLDOMAttribute* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_dataType)(
        IXMLDOMAttribute* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_dataType)(
        IXMLDOMAttribute* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_xml)(
        IXMLDOMAttribute* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXMLDOMAttribute* This,
        IXMLDOMNode *domNode,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXMLDOMAttribute* This,
        BSTR p,
        IXMLDOMNodeList **outList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXMLDOMAttribute* This,
        BSTR p,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_parsed)(
        IXMLDOMAttribute* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        IXMLDOMAttribute* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_prefix)(
        IXMLDOMAttribute* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_baseName)(
        IXMLDOMAttribute* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXMLDOMAttribute* This,
        IXMLDOMNode *domNode,
        VARIANT var1);

    /*** IXMLDOMAttribute methods ***/
    HRESULT (STDMETHODCALLTYPE *get_name)(
        IXMLDOMAttribute* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_value)(
        IXMLDOMAttribute* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_value)(
        IXMLDOMAttribute* This,
        VARIANT var1);

    END_INTERFACE
} IXMLDOMAttributeVtbl;
interface IXMLDOMAttribute {
    CONST_VTBL IXMLDOMAttributeVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMAttribute_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXMLDOMAttribute_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXMLDOMAttribute_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXMLDOMAttribute_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXMLDOMAttribute_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXMLDOMAttribute_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXMLDOMAttribute_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLDOMNode methods ***/
#define IXMLDOMAttribute_get_nodeName(This,p) (This)->lpVtbl->get_nodeName(This,p)
#define IXMLDOMAttribute_get_nodeValue(This,var1) (This)->lpVtbl->get_nodeValue(This,var1)
#define IXMLDOMAttribute_put_nodeValue(This,var1) (This)->lpVtbl->put_nodeValue(This,var1)
#define IXMLDOMAttribute_get_nodeType(This,domNodeType) (This)->lpVtbl->get_nodeType(This,domNodeType)
#define IXMLDOMAttribute_get_parentNode(This,parent) (This)->lpVtbl->get_parentNode(This,parent)
#define IXMLDOMAttribute_get_childNodes(This,outList) (This)->lpVtbl->get_childNodes(This,outList)
#define IXMLDOMAttribute_get_firstChild(This,domNode) (This)->lpVtbl->get_firstChild(This,domNode)
#define IXMLDOMAttribute_get_lastChild(This,domNode) (This)->lpVtbl->get_lastChild(This,domNode)
#define IXMLDOMAttribute_get_previousSibling(This,domNode) (This)->lpVtbl->get_previousSibling(This,domNode)
#define IXMLDOMAttribute_get_nextSibling(This,domNode) (This)->lpVtbl->get_nextSibling(This,domNode)
#define IXMLDOMAttribute_get_attributes(This,attributeMap) (This)->lpVtbl->get_attributes(This,attributeMap)
#define IXMLDOMAttribute_insertBefore(This,newNode,var1,outOldNode) (This)->lpVtbl->insertBefore(This,newNode,var1,outOldNode)
#define IXMLDOMAttribute_replaceChild(This,newNode,oldNode,outOldNode) (This)->lpVtbl->replaceChild(This,newNode,oldNode,outOldNode)
#define IXMLDOMAttribute_removeChild(This,domNode,oldNode) (This)->lpVtbl->removeChild(This,domNode,oldNode)
#define IXMLDOMAttribute_appendChild(This,newNode,outNewNode) (This)->lpVtbl->appendChild(This,newNode,outNewNode)
#define IXMLDOMAttribute_hasChildNodes(This,pbool) (This)->lpVtbl->hasChildNodes(This,pbool)
#define IXMLDOMAttribute_get_ownerDocument(This,domDocument) (This)->lpVtbl->get_ownerDocument(This,domDocument)
#define IXMLDOMAttribute_cloneNode(This,pbool,outNode) (This)->lpVtbl->cloneNode(This,pbool,outNode)
#define IXMLDOMAttribute_get_nodeTypeString(This,p) (This)->lpVtbl->get_nodeTypeString(This,p)
#define IXMLDOMAttribute_get_text(This,p) (This)->lpVtbl->get_text(This,p)
#define IXMLDOMAttribute_put_text(This,p) (This)->lpVtbl->put_text(This,p)
#define IXMLDOMAttribute_get_specified(This,pbool) (This)->lpVtbl->get_specified(This,pbool)
#define IXMLDOMAttribute_get_definition(This,domNode) (This)->lpVtbl->get_definition(This,domNode)
#define IXMLDOMAttribute_get_nodeTypedValue(This,var1) (This)->lpVtbl->get_nodeTypedValue(This,var1)
#define IXMLDOMAttribute_put_nodeTypedValue(This,var1) (This)->lpVtbl->put_nodeTypedValue(This,var1)
#define IXMLDOMAttribute_get_dataType(This,var1) (This)->lpVtbl->get_dataType(This,var1)
#define IXMLDOMAttribute_put_dataType(This,p) (This)->lpVtbl->put_dataType(This,p)
#define IXMLDOMAttribute_get_xml(This,p) (This)->lpVtbl->get_xml(This,p)
#define IXMLDOMAttribute_transformNode(This,domNode,p) (This)->lpVtbl->transformNode(This,domNode,p)
#define IXMLDOMAttribute_selectNodes(This,p,outList) (This)->lpVtbl->selectNodes(This,p,outList)
#define IXMLDOMAttribute_selectSingleNode(This,p,outNode) (This)->lpVtbl->selectSingleNode(This,p,outNode)
#define IXMLDOMAttribute_get_parsed(This,pbool) (This)->lpVtbl->get_parsed(This,pbool)
#define IXMLDOMAttribute_get_namespaceURI(This,p) (This)->lpVtbl->get_namespaceURI(This,p)
#define IXMLDOMAttribute_get_prefix(This,p) (This)->lpVtbl->get_prefix(This,p)
#define IXMLDOMAttribute_get_baseName(This,p) (This)->lpVtbl->get_baseName(This,p)
#define IXMLDOMAttribute_transformNodeToObject(This,domNode,var1) (This)->lpVtbl->transformNodeToObject(This,domNode,var1)
/*** IXMLDOMAttribute methods ***/
#define IXMLDOMAttribute_get_name(This,p) (This)->lpVtbl->get_name(This,p)
#define IXMLDOMAttribute_get_value(This,var1) (This)->lpVtbl->get_value(This,var1)
#define IXMLDOMAttribute_put_value(This,var1) (This)->lpVtbl->put_value(This,var1)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLDOMAttribute_get_name_Proxy(
    IXMLDOMAttribute* This,
    BSTR *p);
void __RPC_STUB IXMLDOMAttribute_get_name_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMAttribute_get_value_Proxy(
    IXMLDOMAttribute* This,
    VARIANT *var1);
void __RPC_STUB IXMLDOMAttribute_get_value_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMAttribute_put_value_Proxy(
    IXMLDOMAttribute* This,
    VARIANT var1);
void __RPC_STUB IXMLDOMAttribute_put_value_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMAttribute_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMElement interface
 */
#ifndef __IXMLDOMElement_INTERFACE_DEFINED__
#define __IXMLDOMElement_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDOMElement, 0x2933bf86, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLDOMElement : public IXMLDOMNode
{
    virtual HRESULT STDMETHODCALLTYPE get_tagName(
        BSTR *p) = 0;

    virtual HRESULT STDMETHODCALLTYPE getAttribute(
        BSTR p,
        VARIANT *var) = 0;

    virtual HRESULT STDMETHODCALLTYPE setAttribute(
        BSTR p,
        VARIANT var) = 0;

    virtual HRESULT STDMETHODCALLTYPE removeAttribute(
        BSTR p) = 0;

    virtual HRESULT STDMETHODCALLTYPE getAttributeNode(
        BSTR p,
        IXMLDOMAttribute **attributeNode) = 0;

    virtual HRESULT STDMETHODCALLTYPE setAttributeNode(
        IXMLDOMAttribute *domAttribute,
        IXMLDOMAttribute **attributeNode) = 0;

    virtual HRESULT STDMETHODCALLTYPE removeAttributeNode(
        IXMLDOMAttribute *domAttribute,
        IXMLDOMAttribute **attributeNode) = 0;

    virtual HRESULT STDMETHODCALLTYPE getElementsByTagName(
        BSTR p,
        IXMLDOMNodeList **resultList) = 0;

    virtual HRESULT STDMETHODCALLTYPE normalize(
        ) = 0;

};
#else
typedef struct IXMLDOMElementVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXMLDOMElement* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXMLDOMElement* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXMLDOMElement* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXMLDOMElement* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXMLDOMElement* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXMLDOMElement* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXMLDOMElement* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IXMLDOMNode methods ***/
    HRESULT (STDMETHODCALLTYPE *get_nodeName)(
        IXMLDOMElement* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_nodeValue)(
        IXMLDOMElement* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeValue)(
        IXMLDOMElement* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_nodeType)(
        IXMLDOMElement* This,
        DOMNodeType *domNodeType);

    HRESULT (STDMETHODCALLTYPE *get_parentNode)(
        IXMLDOMElement* This,
        IXMLDOMNode **parent);

    HRESULT (STDMETHODCALLTYPE *get_childNodes)(
        IXMLDOMElement* This,
        IXMLDOMNodeList **outList);

    HRESULT (STDMETHODCALLTYPE *get_firstChild)(
        IXMLDOMElement* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_lastChild)(
        IXMLDOMElement* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_previousSibling)(
        IXMLDOMElement* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_nextSibling)(
        IXMLDOMElement* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_attributes)(
        IXMLDOMElement* This,
        IXMLDOMNamedNodeMap **attributeMap);

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXMLDOMElement* This,
        IXMLDOMNode *newNode,
        VARIANT var1,
        IXMLDOMNode **outOldNode);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXMLDOMElement* This,
        IXMLDOMNode *newNode,
        IXMLDOMNode *oldNode,
        IXMLDOMNode **outOldNode);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXMLDOMElement* This,
        IXMLDOMNode *domNode,
        IXMLDOMNode **oldNode);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXMLDOMElement* This,
        IXMLDOMNode *newNode,
        IXMLDOMNode **outNewNode);

    HRESULT (STDMETHODCALLTYPE *hasChildNodes)(
        IXMLDOMElement* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_ownerDocument)(
        IXMLDOMElement* This,
        IXMLDOMDocument **domDocument);

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXMLDOMElement* This,
        VARIANT_BOOL pbool,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypeString)(
        IXMLDOMElement* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_text)(
        IXMLDOMElement* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *put_text)(
        IXMLDOMElement* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_specified)(
        IXMLDOMElement* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_definition)(
        IXMLDOMElement* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypedValue)(
        IXMLDOMElement* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeTypedValue)(
        IXMLDOMElement* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_dataType)(
        IXMLDOMElement* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_dataType)(
        IXMLDOMElement* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_xml)(
        IXMLDOMElement* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXMLDOMElement* This,
        IXMLDOMNode *domNode,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXMLDOMElement* This,
        BSTR p,
        IXMLDOMNodeList **outList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXMLDOMElement* This,
        BSTR p,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_parsed)(
        IXMLDOMElement* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        IXMLDOMElement* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_prefix)(
        IXMLDOMElement* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_baseName)(
        IXMLDOMElement* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXMLDOMElement* This,
        IXMLDOMNode *domNode,
        VARIANT var1);

    /*** IXMLDOMElement methods ***/
    HRESULT (STDMETHODCALLTYPE *get_tagName)(
        IXMLDOMElement* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *getAttribute)(
        IXMLDOMElement* This,
        BSTR p,
        VARIANT *var);

    HRESULT (STDMETHODCALLTYPE *setAttribute)(
        IXMLDOMElement* This,
        BSTR p,
        VARIANT var);

    HRESULT (STDMETHODCALLTYPE *removeAttribute)(
        IXMLDOMElement* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *getAttributeNode)(
        IXMLDOMElement* This,
        BSTR p,
        IXMLDOMAttribute **attributeNode);

    HRESULT (STDMETHODCALLTYPE *setAttributeNode)(
        IXMLDOMElement* This,
        IXMLDOMAttribute *domAttribute,
        IXMLDOMAttribute **attributeNode);

    HRESULT (STDMETHODCALLTYPE *removeAttributeNode)(
        IXMLDOMElement* This,
        IXMLDOMAttribute *domAttribute,
        IXMLDOMAttribute **attributeNode);

    HRESULT (STDMETHODCALLTYPE *getElementsByTagName)(
        IXMLDOMElement* This,
        BSTR p,
        IXMLDOMNodeList **resultList);

    HRESULT (STDMETHODCALLTYPE *normalize)(
        IXMLDOMElement* This);

    END_INTERFACE
} IXMLDOMElementVtbl;
interface IXMLDOMElement {
    CONST_VTBL IXMLDOMElementVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMElement_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXMLDOMElement_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXMLDOMElement_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXMLDOMElement_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXMLDOMElement_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXMLDOMElement_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXMLDOMElement_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLDOMNode methods ***/
#define IXMLDOMElement_get_nodeName(This,p) (This)->lpVtbl->get_nodeName(This,p)
#define IXMLDOMElement_get_nodeValue(This,var1) (This)->lpVtbl->get_nodeValue(This,var1)
#define IXMLDOMElement_put_nodeValue(This,var1) (This)->lpVtbl->put_nodeValue(This,var1)
#define IXMLDOMElement_get_nodeType(This,domNodeType) (This)->lpVtbl->get_nodeType(This,domNodeType)
#define IXMLDOMElement_get_parentNode(This,parent) (This)->lpVtbl->get_parentNode(This,parent)
#define IXMLDOMElement_get_childNodes(This,outList) (This)->lpVtbl->get_childNodes(This,outList)
#define IXMLDOMElement_get_firstChild(This,domNode) (This)->lpVtbl->get_firstChild(This,domNode)
#define IXMLDOMElement_get_lastChild(This,domNode) (This)->lpVtbl->get_lastChild(This,domNode)
#define IXMLDOMElement_get_previousSibling(This,domNode) (This)->lpVtbl->get_previousSibling(This,domNode)
#define IXMLDOMElement_get_nextSibling(This,domNode) (This)->lpVtbl->get_nextSibling(This,domNode)
#define IXMLDOMElement_get_attributes(This,attributeMap) (This)->lpVtbl->get_attributes(This,attributeMap)
#define IXMLDOMElement_insertBefore(This,newNode,var1,outOldNode) (This)->lpVtbl->insertBefore(This,newNode,var1,outOldNode)
#define IXMLDOMElement_replaceChild(This,newNode,oldNode,outOldNode) (This)->lpVtbl->replaceChild(This,newNode,oldNode,outOldNode)
#define IXMLDOMElement_removeChild(This,domNode,oldNode) (This)->lpVtbl->removeChild(This,domNode,oldNode)
#define IXMLDOMElement_appendChild(This,newNode,outNewNode) (This)->lpVtbl->appendChild(This,newNode,outNewNode)
#define IXMLDOMElement_hasChildNodes(This,pbool) (This)->lpVtbl->hasChildNodes(This,pbool)
#define IXMLDOMElement_get_ownerDocument(This,domDocument) (This)->lpVtbl->get_ownerDocument(This,domDocument)
#define IXMLDOMElement_cloneNode(This,pbool,outNode) (This)->lpVtbl->cloneNode(This,pbool,outNode)
#define IXMLDOMElement_get_nodeTypeString(This,p) (This)->lpVtbl->get_nodeTypeString(This,p)
#define IXMLDOMElement_get_text(This,p) (This)->lpVtbl->get_text(This,p)
#define IXMLDOMElement_put_text(This,p) (This)->lpVtbl->put_text(This,p)
#define IXMLDOMElement_get_specified(This,pbool) (This)->lpVtbl->get_specified(This,pbool)
#define IXMLDOMElement_get_definition(This,domNode) (This)->lpVtbl->get_definition(This,domNode)
#define IXMLDOMElement_get_nodeTypedValue(This,var1) (This)->lpVtbl->get_nodeTypedValue(This,var1)
#define IXMLDOMElement_put_nodeTypedValue(This,var1) (This)->lpVtbl->put_nodeTypedValue(This,var1)
#define IXMLDOMElement_get_dataType(This,var1) (This)->lpVtbl->get_dataType(This,var1)
#define IXMLDOMElement_put_dataType(This,p) (This)->lpVtbl->put_dataType(This,p)
#define IXMLDOMElement_get_xml(This,p) (This)->lpVtbl->get_xml(This,p)
#define IXMLDOMElement_transformNode(This,domNode,p) (This)->lpVtbl->transformNode(This,domNode,p)
#define IXMLDOMElement_selectNodes(This,p,outList) (This)->lpVtbl->selectNodes(This,p,outList)
#define IXMLDOMElement_selectSingleNode(This,p,outNode) (This)->lpVtbl->selectSingleNode(This,p,outNode)
#define IXMLDOMElement_get_parsed(This,pbool) (This)->lpVtbl->get_parsed(This,pbool)
#define IXMLDOMElement_get_namespaceURI(This,p) (This)->lpVtbl->get_namespaceURI(This,p)
#define IXMLDOMElement_get_prefix(This,p) (This)->lpVtbl->get_prefix(This,p)
#define IXMLDOMElement_get_baseName(This,p) (This)->lpVtbl->get_baseName(This,p)
#define IXMLDOMElement_transformNodeToObject(This,domNode,var1) (This)->lpVtbl->transformNodeToObject(This,domNode,var1)
/*** IXMLDOMElement methods ***/
#define IXMLDOMElement_get_tagName(This,p) (This)->lpVtbl->get_tagName(This,p)
#define IXMLDOMElement_getAttribute(This,p,var) (This)->lpVtbl->getAttribute(This,p,var)
#define IXMLDOMElement_setAttribute(This,p,var) (This)->lpVtbl->setAttribute(This,p,var)
#define IXMLDOMElement_removeAttribute(This,p) (This)->lpVtbl->removeAttribute(This,p)
#define IXMLDOMElement_getAttributeNode(This,p,attributeNode) (This)->lpVtbl->getAttributeNode(This,p,attributeNode)
#define IXMLDOMElement_setAttributeNode(This,domAttribute,attributeNode) (This)->lpVtbl->setAttributeNode(This,domAttribute,attributeNode)
#define IXMLDOMElement_removeAttributeNode(This,domAttribute,attributeNode) (This)->lpVtbl->removeAttributeNode(This,domAttribute,attributeNode)
#define IXMLDOMElement_getElementsByTagName(This,p,resultList) (This)->lpVtbl->getElementsByTagName(This,p,resultList)
#define IXMLDOMElement_normalize(This) (This)->lpVtbl->normalize(This)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLDOMElement_get_tagName_Proxy(
    IXMLDOMElement* This,
    BSTR *p);
void __RPC_STUB IXMLDOMElement_get_tagName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMElement_getAttribute_Proxy(
    IXMLDOMElement* This,
    BSTR p,
    VARIANT *var);
void __RPC_STUB IXMLDOMElement_getAttribute_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMElement_setAttribute_Proxy(
    IXMLDOMElement* This,
    BSTR p,
    VARIANT var);
void __RPC_STUB IXMLDOMElement_setAttribute_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMElement_removeAttribute_Proxy(
    IXMLDOMElement* This,
    BSTR p);
void __RPC_STUB IXMLDOMElement_removeAttribute_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMElement_getAttributeNode_Proxy(
    IXMLDOMElement* This,
    BSTR p,
    IXMLDOMAttribute **attributeNode);
void __RPC_STUB IXMLDOMElement_getAttributeNode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMElement_setAttributeNode_Proxy(
    IXMLDOMElement* This,
    IXMLDOMAttribute *domAttribute,
    IXMLDOMAttribute **attributeNode);
void __RPC_STUB IXMLDOMElement_setAttributeNode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMElement_removeAttributeNode_Proxy(
    IXMLDOMElement* This,
    IXMLDOMAttribute *domAttribute,
    IXMLDOMAttribute **attributeNode);
void __RPC_STUB IXMLDOMElement_removeAttributeNode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMElement_getElementsByTagName_Proxy(
    IXMLDOMElement* This,
    BSTR p,
    IXMLDOMNodeList **resultList);
void __RPC_STUB IXMLDOMElement_getElementsByTagName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMElement_normalize_Proxy(
    IXMLDOMElement* This);
void __RPC_STUB IXMLDOMElement_normalize_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMElement_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMText interface
 */
#ifndef __IXMLDOMText_INTERFACE_DEFINED__
#define __IXMLDOMText_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDOMText, 0x2933bf87, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLDOMText : public IXMLDOMCharacterData
{
    virtual HRESULT STDMETHODCALLTYPE splitText(
        LONG offset,
        IXMLDOMText **txtNode) = 0;

};
#else
typedef struct IXMLDOMTextVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXMLDOMText* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXMLDOMText* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXMLDOMText* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXMLDOMText* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXMLDOMText* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXMLDOMText* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXMLDOMText* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IXMLDOMNode methods ***/
    HRESULT (STDMETHODCALLTYPE *get_nodeName)(
        IXMLDOMText* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_nodeValue)(
        IXMLDOMText* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeValue)(
        IXMLDOMText* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_nodeType)(
        IXMLDOMText* This,
        DOMNodeType *domNodeType);

    HRESULT (STDMETHODCALLTYPE *get_parentNode)(
        IXMLDOMText* This,
        IXMLDOMNode **parent);

    HRESULT (STDMETHODCALLTYPE *get_childNodes)(
        IXMLDOMText* This,
        IXMLDOMNodeList **outList);

    HRESULT (STDMETHODCALLTYPE *get_firstChild)(
        IXMLDOMText* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_lastChild)(
        IXMLDOMText* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_previousSibling)(
        IXMLDOMText* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_nextSibling)(
        IXMLDOMText* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_attributes)(
        IXMLDOMText* This,
        IXMLDOMNamedNodeMap **attributeMap);

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXMLDOMText* This,
        IXMLDOMNode *newNode,
        VARIANT var1,
        IXMLDOMNode **outOldNode);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXMLDOMText* This,
        IXMLDOMNode *newNode,
        IXMLDOMNode *oldNode,
        IXMLDOMNode **outOldNode);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXMLDOMText* This,
        IXMLDOMNode *domNode,
        IXMLDOMNode **oldNode);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXMLDOMText* This,
        IXMLDOMNode *newNode,
        IXMLDOMNode **outNewNode);

    HRESULT (STDMETHODCALLTYPE *hasChildNodes)(
        IXMLDOMText* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_ownerDocument)(
        IXMLDOMText* This,
        IXMLDOMDocument **domDocument);

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXMLDOMText* This,
        VARIANT_BOOL pbool,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypeString)(
        IXMLDOMText* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_text)(
        IXMLDOMText* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *put_text)(
        IXMLDOMText* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_specified)(
        IXMLDOMText* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_definition)(
        IXMLDOMText* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypedValue)(
        IXMLDOMText* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeTypedValue)(
        IXMLDOMText* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_dataType)(
        IXMLDOMText* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_dataType)(
        IXMLDOMText* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_xml)(
        IXMLDOMText* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXMLDOMText* This,
        IXMLDOMNode *domNode,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXMLDOMText* This,
        BSTR p,
        IXMLDOMNodeList **outList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXMLDOMText* This,
        BSTR p,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_parsed)(
        IXMLDOMText* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        IXMLDOMText* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_prefix)(
        IXMLDOMText* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_baseName)(
        IXMLDOMText* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXMLDOMText* This,
        IXMLDOMNode *domNode,
        VARIANT var1);

    /*** IXMLDOMCharacterData methods ***/
    HRESULT (STDMETHODCALLTYPE *get_data)(
        IXMLDOMText* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *put_data)(
        IXMLDOMText* This,
        BSTR data);

    HRESULT (STDMETHODCALLTYPE *get_length)(
        IXMLDOMText* This,
        LONG *len);

    HRESULT (STDMETHODCALLTYPE *substringData)(
        IXMLDOMText* This,
        LONG offset,
        LONG count,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *appendData)(
        IXMLDOMText* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *insertData)(
        IXMLDOMText* This,
        LONG offset,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *deleteData)(
        IXMLDOMText* This,
        LONG offset,
        LONG count);

    HRESULT (STDMETHODCALLTYPE *replaceData)(
        IXMLDOMText* This,
        LONG offset,
        LONG count,
        BSTR p);

    /*** IXMLDOMText methods ***/
    HRESULT (STDMETHODCALLTYPE *splitText)(
        IXMLDOMText* This,
        LONG offset,
        IXMLDOMText **txtNode);

    END_INTERFACE
} IXMLDOMTextVtbl;
interface IXMLDOMText {
    CONST_VTBL IXMLDOMTextVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMText_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXMLDOMText_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXMLDOMText_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXMLDOMText_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXMLDOMText_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXMLDOMText_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXMLDOMText_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLDOMNode methods ***/
#define IXMLDOMText_get_nodeName(This,p) (This)->lpVtbl->get_nodeName(This,p)
#define IXMLDOMText_get_nodeValue(This,var1) (This)->lpVtbl->get_nodeValue(This,var1)
#define IXMLDOMText_put_nodeValue(This,var1) (This)->lpVtbl->put_nodeValue(This,var1)
#define IXMLDOMText_get_nodeType(This,domNodeType) (This)->lpVtbl->get_nodeType(This,domNodeType)
#define IXMLDOMText_get_parentNode(This,parent) (This)->lpVtbl->get_parentNode(This,parent)
#define IXMLDOMText_get_childNodes(This,outList) (This)->lpVtbl->get_childNodes(This,outList)
#define IXMLDOMText_get_firstChild(This,domNode) (This)->lpVtbl->get_firstChild(This,domNode)
#define IXMLDOMText_get_lastChild(This,domNode) (This)->lpVtbl->get_lastChild(This,domNode)
#define IXMLDOMText_get_previousSibling(This,domNode) (This)->lpVtbl->get_previousSibling(This,domNode)
#define IXMLDOMText_get_nextSibling(This,domNode) (This)->lpVtbl->get_nextSibling(This,domNode)
#define IXMLDOMText_get_attributes(This,attributeMap) (This)->lpVtbl->get_attributes(This,attributeMap)
#define IXMLDOMText_insertBefore(This,newNode,var1,outOldNode) (This)->lpVtbl->insertBefore(This,newNode,var1,outOldNode)
#define IXMLDOMText_replaceChild(This,newNode,oldNode,outOldNode) (This)->lpVtbl->replaceChild(This,newNode,oldNode,outOldNode)
#define IXMLDOMText_removeChild(This,domNode,oldNode) (This)->lpVtbl->removeChild(This,domNode,oldNode)
#define IXMLDOMText_appendChild(This,newNode,outNewNode) (This)->lpVtbl->appendChild(This,newNode,outNewNode)
#define IXMLDOMText_hasChildNodes(This,pbool) (This)->lpVtbl->hasChildNodes(This,pbool)
#define IXMLDOMText_get_ownerDocument(This,domDocument) (This)->lpVtbl->get_ownerDocument(This,domDocument)
#define IXMLDOMText_cloneNode(This,pbool,outNode) (This)->lpVtbl->cloneNode(This,pbool,outNode)
#define IXMLDOMText_get_nodeTypeString(This,p) (This)->lpVtbl->get_nodeTypeString(This,p)
#define IXMLDOMText_get_text(This,p) (This)->lpVtbl->get_text(This,p)
#define IXMLDOMText_put_text(This,p) (This)->lpVtbl->put_text(This,p)
#define IXMLDOMText_get_specified(This,pbool) (This)->lpVtbl->get_specified(This,pbool)
#define IXMLDOMText_get_definition(This,domNode) (This)->lpVtbl->get_definition(This,domNode)
#define IXMLDOMText_get_nodeTypedValue(This,var1) (This)->lpVtbl->get_nodeTypedValue(This,var1)
#define IXMLDOMText_put_nodeTypedValue(This,var1) (This)->lpVtbl->put_nodeTypedValue(This,var1)
#define IXMLDOMText_get_dataType(This,var1) (This)->lpVtbl->get_dataType(This,var1)
#define IXMLDOMText_put_dataType(This,p) (This)->lpVtbl->put_dataType(This,p)
#define IXMLDOMText_get_xml(This,p) (This)->lpVtbl->get_xml(This,p)
#define IXMLDOMText_transformNode(This,domNode,p) (This)->lpVtbl->transformNode(This,domNode,p)
#define IXMLDOMText_selectNodes(This,p,outList) (This)->lpVtbl->selectNodes(This,p,outList)
#define IXMLDOMText_selectSingleNode(This,p,outNode) (This)->lpVtbl->selectSingleNode(This,p,outNode)
#define IXMLDOMText_get_parsed(This,pbool) (This)->lpVtbl->get_parsed(This,pbool)
#define IXMLDOMText_get_namespaceURI(This,p) (This)->lpVtbl->get_namespaceURI(This,p)
#define IXMLDOMText_get_prefix(This,p) (This)->lpVtbl->get_prefix(This,p)
#define IXMLDOMText_get_baseName(This,p) (This)->lpVtbl->get_baseName(This,p)
#define IXMLDOMText_transformNodeToObject(This,domNode,var1) (This)->lpVtbl->transformNodeToObject(This,domNode,var1)
/*** IXMLDOMCharacterData methods ***/
#define IXMLDOMText_get_data(This,p) (This)->lpVtbl->get_data(This,p)
#define IXMLDOMText_put_data(This,data) (This)->lpVtbl->put_data(This,data)
#define IXMLDOMText_get_length(This,len) (This)->lpVtbl->get_length(This,len)
#define IXMLDOMText_substringData(This,offset,count,p) (This)->lpVtbl->substringData(This,offset,count,p)
#define IXMLDOMText_appendData(This,p) (This)->lpVtbl->appendData(This,p)
#define IXMLDOMText_insertData(This,offset,p) (This)->lpVtbl->insertData(This,offset,p)
#define IXMLDOMText_deleteData(This,offset,count) (This)->lpVtbl->deleteData(This,offset,count)
#define IXMLDOMText_replaceData(This,offset,count,p) (This)->lpVtbl->replaceData(This,offset,count,p)
/*** IXMLDOMText methods ***/
#define IXMLDOMText_splitText(This,offset,txtNode) (This)->lpVtbl->splitText(This,offset,txtNode)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLDOMText_splitText_Proxy(
    IXMLDOMText* This,
    LONG offset,
    IXMLDOMText **txtNode);
void __RPC_STUB IXMLDOMText_splitText_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMText_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMComment interface
 */
#ifndef __IXMLDOMComment_INTERFACE_DEFINED__
#define __IXMLDOMComment_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDOMComment, 0x2933bf88, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLDOMComment : public IXMLDOMCharacterData
{
};
#else
typedef struct IXMLDOMCommentVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXMLDOMComment* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXMLDOMComment* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXMLDOMComment* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXMLDOMComment* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXMLDOMComment* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXMLDOMComment* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXMLDOMComment* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IXMLDOMNode methods ***/
    HRESULT (STDMETHODCALLTYPE *get_nodeName)(
        IXMLDOMComment* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_nodeValue)(
        IXMLDOMComment* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeValue)(
        IXMLDOMComment* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_nodeType)(
        IXMLDOMComment* This,
        DOMNodeType *domNodeType);

    HRESULT (STDMETHODCALLTYPE *get_parentNode)(
        IXMLDOMComment* This,
        IXMLDOMNode **parent);

    HRESULT (STDMETHODCALLTYPE *get_childNodes)(
        IXMLDOMComment* This,
        IXMLDOMNodeList **outList);

    HRESULT (STDMETHODCALLTYPE *get_firstChild)(
        IXMLDOMComment* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_lastChild)(
        IXMLDOMComment* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_previousSibling)(
        IXMLDOMComment* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_nextSibling)(
        IXMLDOMComment* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_attributes)(
        IXMLDOMComment* This,
        IXMLDOMNamedNodeMap **attributeMap);

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXMLDOMComment* This,
        IXMLDOMNode *newNode,
        VARIANT var1,
        IXMLDOMNode **outOldNode);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXMLDOMComment* This,
        IXMLDOMNode *newNode,
        IXMLDOMNode *oldNode,
        IXMLDOMNode **outOldNode);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXMLDOMComment* This,
        IXMLDOMNode *domNode,
        IXMLDOMNode **oldNode);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXMLDOMComment* This,
        IXMLDOMNode *newNode,
        IXMLDOMNode **outNewNode);

    HRESULT (STDMETHODCALLTYPE *hasChildNodes)(
        IXMLDOMComment* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_ownerDocument)(
        IXMLDOMComment* This,
        IXMLDOMDocument **domDocument);

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXMLDOMComment* This,
        VARIANT_BOOL pbool,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypeString)(
        IXMLDOMComment* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_text)(
        IXMLDOMComment* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *put_text)(
        IXMLDOMComment* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_specified)(
        IXMLDOMComment* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_definition)(
        IXMLDOMComment* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypedValue)(
        IXMLDOMComment* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeTypedValue)(
        IXMLDOMComment* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_dataType)(
        IXMLDOMComment* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_dataType)(
        IXMLDOMComment* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_xml)(
        IXMLDOMComment* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXMLDOMComment* This,
        IXMLDOMNode *domNode,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXMLDOMComment* This,
        BSTR p,
        IXMLDOMNodeList **outList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXMLDOMComment* This,
        BSTR p,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_parsed)(
        IXMLDOMComment* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        IXMLDOMComment* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_prefix)(
        IXMLDOMComment* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_baseName)(
        IXMLDOMComment* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXMLDOMComment* This,
        IXMLDOMNode *domNode,
        VARIANT var1);

    /*** IXMLDOMCharacterData methods ***/
    HRESULT (STDMETHODCALLTYPE *get_data)(
        IXMLDOMComment* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *put_data)(
        IXMLDOMComment* This,
        BSTR data);

    HRESULT (STDMETHODCALLTYPE *get_length)(
        IXMLDOMComment* This,
        LONG *len);

    HRESULT (STDMETHODCALLTYPE *substringData)(
        IXMLDOMComment* This,
        LONG offset,
        LONG count,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *appendData)(
        IXMLDOMComment* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *insertData)(
        IXMLDOMComment* This,
        LONG offset,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *deleteData)(
        IXMLDOMComment* This,
        LONG offset,
        LONG count);

    HRESULT (STDMETHODCALLTYPE *replaceData)(
        IXMLDOMComment* This,
        LONG offset,
        LONG count,
        BSTR p);

    END_INTERFACE
} IXMLDOMCommentVtbl;
interface IXMLDOMComment {
    CONST_VTBL IXMLDOMCommentVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMComment_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXMLDOMComment_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXMLDOMComment_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXMLDOMComment_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXMLDOMComment_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXMLDOMComment_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXMLDOMComment_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLDOMNode methods ***/
#define IXMLDOMComment_get_nodeName(This,p) (This)->lpVtbl->get_nodeName(This,p)
#define IXMLDOMComment_get_nodeValue(This,var1) (This)->lpVtbl->get_nodeValue(This,var1)
#define IXMLDOMComment_put_nodeValue(This,var1) (This)->lpVtbl->put_nodeValue(This,var1)
#define IXMLDOMComment_get_nodeType(This,domNodeType) (This)->lpVtbl->get_nodeType(This,domNodeType)
#define IXMLDOMComment_get_parentNode(This,parent) (This)->lpVtbl->get_parentNode(This,parent)
#define IXMLDOMComment_get_childNodes(This,outList) (This)->lpVtbl->get_childNodes(This,outList)
#define IXMLDOMComment_get_firstChild(This,domNode) (This)->lpVtbl->get_firstChild(This,domNode)
#define IXMLDOMComment_get_lastChild(This,domNode) (This)->lpVtbl->get_lastChild(This,domNode)
#define IXMLDOMComment_get_previousSibling(This,domNode) (This)->lpVtbl->get_previousSibling(This,domNode)
#define IXMLDOMComment_get_nextSibling(This,domNode) (This)->lpVtbl->get_nextSibling(This,domNode)
#define IXMLDOMComment_get_attributes(This,attributeMap) (This)->lpVtbl->get_attributes(This,attributeMap)
#define IXMLDOMComment_insertBefore(This,newNode,var1,outOldNode) (This)->lpVtbl->insertBefore(This,newNode,var1,outOldNode)
#define IXMLDOMComment_replaceChild(This,newNode,oldNode,outOldNode) (This)->lpVtbl->replaceChild(This,newNode,oldNode,outOldNode)
#define IXMLDOMComment_removeChild(This,domNode,oldNode) (This)->lpVtbl->removeChild(This,domNode,oldNode)
#define IXMLDOMComment_appendChild(This,newNode,outNewNode) (This)->lpVtbl->appendChild(This,newNode,outNewNode)
#define IXMLDOMComment_hasChildNodes(This,pbool) (This)->lpVtbl->hasChildNodes(This,pbool)
#define IXMLDOMComment_get_ownerDocument(This,domDocument) (This)->lpVtbl->get_ownerDocument(This,domDocument)
#define IXMLDOMComment_cloneNode(This,pbool,outNode) (This)->lpVtbl->cloneNode(This,pbool,outNode)
#define IXMLDOMComment_get_nodeTypeString(This,p) (This)->lpVtbl->get_nodeTypeString(This,p)
#define IXMLDOMComment_get_text(This,p) (This)->lpVtbl->get_text(This,p)
#define IXMLDOMComment_put_text(This,p) (This)->lpVtbl->put_text(This,p)
#define IXMLDOMComment_get_specified(This,pbool) (This)->lpVtbl->get_specified(This,pbool)
#define IXMLDOMComment_get_definition(This,domNode) (This)->lpVtbl->get_definition(This,domNode)
#define IXMLDOMComment_get_nodeTypedValue(This,var1) (This)->lpVtbl->get_nodeTypedValue(This,var1)
#define IXMLDOMComment_put_nodeTypedValue(This,var1) (This)->lpVtbl->put_nodeTypedValue(This,var1)
#define IXMLDOMComment_get_dataType(This,var1) (This)->lpVtbl->get_dataType(This,var1)
#define IXMLDOMComment_put_dataType(This,p) (This)->lpVtbl->put_dataType(This,p)
#define IXMLDOMComment_get_xml(This,p) (This)->lpVtbl->get_xml(This,p)
#define IXMLDOMComment_transformNode(This,domNode,p) (This)->lpVtbl->transformNode(This,domNode,p)
#define IXMLDOMComment_selectNodes(This,p,outList) (This)->lpVtbl->selectNodes(This,p,outList)
#define IXMLDOMComment_selectSingleNode(This,p,outNode) (This)->lpVtbl->selectSingleNode(This,p,outNode)
#define IXMLDOMComment_get_parsed(This,pbool) (This)->lpVtbl->get_parsed(This,pbool)
#define IXMLDOMComment_get_namespaceURI(This,p) (This)->lpVtbl->get_namespaceURI(This,p)
#define IXMLDOMComment_get_prefix(This,p) (This)->lpVtbl->get_prefix(This,p)
#define IXMLDOMComment_get_baseName(This,p) (This)->lpVtbl->get_baseName(This,p)
#define IXMLDOMComment_transformNodeToObject(This,domNode,var1) (This)->lpVtbl->transformNodeToObject(This,domNode,var1)
/*** IXMLDOMCharacterData methods ***/
#define IXMLDOMComment_get_data(This,p) (This)->lpVtbl->get_data(This,p)
#define IXMLDOMComment_put_data(This,data) (This)->lpVtbl->put_data(This,data)
#define IXMLDOMComment_get_length(This,len) (This)->lpVtbl->get_length(This,len)
#define IXMLDOMComment_substringData(This,offset,count,p) (This)->lpVtbl->substringData(This,offset,count,p)
#define IXMLDOMComment_appendData(This,p) (This)->lpVtbl->appendData(This,p)
#define IXMLDOMComment_insertData(This,offset,p) (This)->lpVtbl->insertData(This,offset,p)
#define IXMLDOMComment_deleteData(This,offset,count) (This)->lpVtbl->deleteData(This,offset,count)
#define IXMLDOMComment_replaceData(This,offset,count,p) (This)->lpVtbl->replaceData(This,offset,count,p)
#endif

#endif


#endif  /* __IXMLDOMComment_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMProcessingInstruction interface
 */
#ifndef __IXMLDOMProcessingInstruction_INTERFACE_DEFINED__
#define __IXMLDOMProcessingInstruction_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDOMProcessingInstruction, 0x2933bf89, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLDOMProcessingInstruction : public IXMLDOMNode
{
    virtual HRESULT STDMETHODCALLTYPE get_target(
        BSTR *p) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_data(
        BSTR *p) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_data(
        BSTR p) = 0;

};
#else
typedef struct IXMLDOMProcessingInstructionVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXMLDOMProcessingInstruction* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXMLDOMProcessingInstruction* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXMLDOMProcessingInstruction* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXMLDOMProcessingInstruction* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXMLDOMProcessingInstruction* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXMLDOMProcessingInstruction* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXMLDOMProcessingInstruction* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IXMLDOMNode methods ***/
    HRESULT (STDMETHODCALLTYPE *get_nodeName)(
        IXMLDOMProcessingInstruction* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_nodeValue)(
        IXMLDOMProcessingInstruction* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeValue)(
        IXMLDOMProcessingInstruction* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_nodeType)(
        IXMLDOMProcessingInstruction* This,
        DOMNodeType *domNodeType);

    HRESULT (STDMETHODCALLTYPE *get_parentNode)(
        IXMLDOMProcessingInstruction* This,
        IXMLDOMNode **parent);

    HRESULT (STDMETHODCALLTYPE *get_childNodes)(
        IXMLDOMProcessingInstruction* This,
        IXMLDOMNodeList **outList);

    HRESULT (STDMETHODCALLTYPE *get_firstChild)(
        IXMLDOMProcessingInstruction* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_lastChild)(
        IXMLDOMProcessingInstruction* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_previousSibling)(
        IXMLDOMProcessingInstruction* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_nextSibling)(
        IXMLDOMProcessingInstruction* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_attributes)(
        IXMLDOMProcessingInstruction* This,
        IXMLDOMNamedNodeMap **attributeMap);

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXMLDOMProcessingInstruction* This,
        IXMLDOMNode *newNode,
        VARIANT var1,
        IXMLDOMNode **outOldNode);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXMLDOMProcessingInstruction* This,
        IXMLDOMNode *newNode,
        IXMLDOMNode *oldNode,
        IXMLDOMNode **outOldNode);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXMLDOMProcessingInstruction* This,
        IXMLDOMNode *domNode,
        IXMLDOMNode **oldNode);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXMLDOMProcessingInstruction* This,
        IXMLDOMNode *newNode,
        IXMLDOMNode **outNewNode);

    HRESULT (STDMETHODCALLTYPE *hasChildNodes)(
        IXMLDOMProcessingInstruction* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_ownerDocument)(
        IXMLDOMProcessingInstruction* This,
        IXMLDOMDocument **domDocument);

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXMLDOMProcessingInstruction* This,
        VARIANT_BOOL pbool,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypeString)(
        IXMLDOMProcessingInstruction* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_text)(
        IXMLDOMProcessingInstruction* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *put_text)(
        IXMLDOMProcessingInstruction* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_specified)(
        IXMLDOMProcessingInstruction* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_definition)(
        IXMLDOMProcessingInstruction* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypedValue)(
        IXMLDOMProcessingInstruction* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeTypedValue)(
        IXMLDOMProcessingInstruction* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_dataType)(
        IXMLDOMProcessingInstruction* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_dataType)(
        IXMLDOMProcessingInstruction* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_xml)(
        IXMLDOMProcessingInstruction* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXMLDOMProcessingInstruction* This,
        IXMLDOMNode *domNode,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXMLDOMProcessingInstruction* This,
        BSTR p,
        IXMLDOMNodeList **outList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXMLDOMProcessingInstruction* This,
        BSTR p,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_parsed)(
        IXMLDOMProcessingInstruction* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        IXMLDOMProcessingInstruction* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_prefix)(
        IXMLDOMProcessingInstruction* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_baseName)(
        IXMLDOMProcessingInstruction* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXMLDOMProcessingInstruction* This,
        IXMLDOMNode *domNode,
        VARIANT var1);

    /*** IXMLDOMProcessingInstruction methods ***/
    HRESULT (STDMETHODCALLTYPE *get_target)(
        IXMLDOMProcessingInstruction* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_data)(
        IXMLDOMProcessingInstruction* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *put_data)(
        IXMLDOMProcessingInstruction* This,
        BSTR p);

    END_INTERFACE
} IXMLDOMProcessingInstructionVtbl;
interface IXMLDOMProcessingInstruction {
    CONST_VTBL IXMLDOMProcessingInstructionVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMProcessingInstruction_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXMLDOMProcessingInstruction_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXMLDOMProcessingInstruction_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXMLDOMProcessingInstruction_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXMLDOMProcessingInstruction_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXMLDOMProcessingInstruction_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXMLDOMProcessingInstruction_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLDOMNode methods ***/
#define IXMLDOMProcessingInstruction_get_nodeName(This,p) (This)->lpVtbl->get_nodeName(This,p)
#define IXMLDOMProcessingInstruction_get_nodeValue(This,var1) (This)->lpVtbl->get_nodeValue(This,var1)
#define IXMLDOMProcessingInstruction_put_nodeValue(This,var1) (This)->lpVtbl->put_nodeValue(This,var1)
#define IXMLDOMProcessingInstruction_get_nodeType(This,domNodeType) (This)->lpVtbl->get_nodeType(This,domNodeType)
#define IXMLDOMProcessingInstruction_get_parentNode(This,parent) (This)->lpVtbl->get_parentNode(This,parent)
#define IXMLDOMProcessingInstruction_get_childNodes(This,outList) (This)->lpVtbl->get_childNodes(This,outList)
#define IXMLDOMProcessingInstruction_get_firstChild(This,domNode) (This)->lpVtbl->get_firstChild(This,domNode)
#define IXMLDOMProcessingInstruction_get_lastChild(This,domNode) (This)->lpVtbl->get_lastChild(This,domNode)
#define IXMLDOMProcessingInstruction_get_previousSibling(This,domNode) (This)->lpVtbl->get_previousSibling(This,domNode)
#define IXMLDOMProcessingInstruction_get_nextSibling(This,domNode) (This)->lpVtbl->get_nextSibling(This,domNode)
#define IXMLDOMProcessingInstruction_get_attributes(This,attributeMap) (This)->lpVtbl->get_attributes(This,attributeMap)
#define IXMLDOMProcessingInstruction_insertBefore(This,newNode,var1,outOldNode) (This)->lpVtbl->insertBefore(This,newNode,var1,outOldNode)
#define IXMLDOMProcessingInstruction_replaceChild(This,newNode,oldNode,outOldNode) (This)->lpVtbl->replaceChild(This,newNode,oldNode,outOldNode)
#define IXMLDOMProcessingInstruction_removeChild(This,domNode,oldNode) (This)->lpVtbl->removeChild(This,domNode,oldNode)
#define IXMLDOMProcessingInstruction_appendChild(This,newNode,outNewNode) (This)->lpVtbl->appendChild(This,newNode,outNewNode)
#define IXMLDOMProcessingInstruction_hasChildNodes(This,pbool) (This)->lpVtbl->hasChildNodes(This,pbool)
#define IXMLDOMProcessingInstruction_get_ownerDocument(This,domDocument) (This)->lpVtbl->get_ownerDocument(This,domDocument)
#define IXMLDOMProcessingInstruction_cloneNode(This,pbool,outNode) (This)->lpVtbl->cloneNode(This,pbool,outNode)
#define IXMLDOMProcessingInstruction_get_nodeTypeString(This,p) (This)->lpVtbl->get_nodeTypeString(This,p)
#define IXMLDOMProcessingInstruction_get_text(This,p) (This)->lpVtbl->get_text(This,p)
#define IXMLDOMProcessingInstruction_put_text(This,p) (This)->lpVtbl->put_text(This,p)
#define IXMLDOMProcessingInstruction_get_specified(This,pbool) (This)->lpVtbl->get_specified(This,pbool)
#define IXMLDOMProcessingInstruction_get_definition(This,domNode) (This)->lpVtbl->get_definition(This,domNode)
#define IXMLDOMProcessingInstruction_get_nodeTypedValue(This,var1) (This)->lpVtbl->get_nodeTypedValue(This,var1)
#define IXMLDOMProcessingInstruction_put_nodeTypedValue(This,var1) (This)->lpVtbl->put_nodeTypedValue(This,var1)
#define IXMLDOMProcessingInstruction_get_dataType(This,var1) (This)->lpVtbl->get_dataType(This,var1)
#define IXMLDOMProcessingInstruction_put_dataType(This,p) (This)->lpVtbl->put_dataType(This,p)
#define IXMLDOMProcessingInstruction_get_xml(This,p) (This)->lpVtbl->get_xml(This,p)
#define IXMLDOMProcessingInstruction_transformNode(This,domNode,p) (This)->lpVtbl->transformNode(This,domNode,p)
#define IXMLDOMProcessingInstruction_selectNodes(This,p,outList) (This)->lpVtbl->selectNodes(This,p,outList)
#define IXMLDOMProcessingInstruction_selectSingleNode(This,p,outNode) (This)->lpVtbl->selectSingleNode(This,p,outNode)
#define IXMLDOMProcessingInstruction_get_parsed(This,pbool) (This)->lpVtbl->get_parsed(This,pbool)
#define IXMLDOMProcessingInstruction_get_namespaceURI(This,p) (This)->lpVtbl->get_namespaceURI(This,p)
#define IXMLDOMProcessingInstruction_get_prefix(This,p) (This)->lpVtbl->get_prefix(This,p)
#define IXMLDOMProcessingInstruction_get_baseName(This,p) (This)->lpVtbl->get_baseName(This,p)
#define IXMLDOMProcessingInstruction_transformNodeToObject(This,domNode,var1) (This)->lpVtbl->transformNodeToObject(This,domNode,var1)
/*** IXMLDOMProcessingInstruction methods ***/
#define IXMLDOMProcessingInstruction_get_target(This,p) (This)->lpVtbl->get_target(This,p)
#define IXMLDOMProcessingInstruction_get_data(This,p) (This)->lpVtbl->get_data(This,p)
#define IXMLDOMProcessingInstruction_put_data(This,p) (This)->lpVtbl->put_data(This,p)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLDOMProcessingInstruction_get_target_Proxy(
    IXMLDOMProcessingInstruction* This,
    BSTR *p);
void __RPC_STUB IXMLDOMProcessingInstruction_get_target_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMProcessingInstruction_get_data_Proxy(
    IXMLDOMProcessingInstruction* This,
    BSTR *p);
void __RPC_STUB IXMLDOMProcessingInstruction_get_data_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMProcessingInstruction_put_data_Proxy(
    IXMLDOMProcessingInstruction* This,
    BSTR p);
void __RPC_STUB IXMLDOMProcessingInstruction_put_data_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMProcessingInstruction_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMCDATASection interface
 */
#ifndef __IXMLDOMCDATASection_INTERFACE_DEFINED__
#define __IXMLDOMCDATASection_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDOMCDATASection, 0x2933bf8a, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLDOMCDATASection : public IXMLDOMText
{
};
#else
typedef struct IXMLDOMCDATASectionVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXMLDOMCDATASection* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXMLDOMCDATASection* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXMLDOMCDATASection* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXMLDOMCDATASection* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXMLDOMCDATASection* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXMLDOMCDATASection* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXMLDOMCDATASection* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IXMLDOMNode methods ***/
    HRESULT (STDMETHODCALLTYPE *get_nodeName)(
        IXMLDOMCDATASection* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_nodeValue)(
        IXMLDOMCDATASection* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeValue)(
        IXMLDOMCDATASection* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_nodeType)(
        IXMLDOMCDATASection* This,
        DOMNodeType *domNodeType);

    HRESULT (STDMETHODCALLTYPE *get_parentNode)(
        IXMLDOMCDATASection* This,
        IXMLDOMNode **parent);

    HRESULT (STDMETHODCALLTYPE *get_childNodes)(
        IXMLDOMCDATASection* This,
        IXMLDOMNodeList **outList);

    HRESULT (STDMETHODCALLTYPE *get_firstChild)(
        IXMLDOMCDATASection* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_lastChild)(
        IXMLDOMCDATASection* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_previousSibling)(
        IXMLDOMCDATASection* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_nextSibling)(
        IXMLDOMCDATASection* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_attributes)(
        IXMLDOMCDATASection* This,
        IXMLDOMNamedNodeMap **attributeMap);

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXMLDOMCDATASection* This,
        IXMLDOMNode *newNode,
        VARIANT var1,
        IXMLDOMNode **outOldNode);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXMLDOMCDATASection* This,
        IXMLDOMNode *newNode,
        IXMLDOMNode *oldNode,
        IXMLDOMNode **outOldNode);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXMLDOMCDATASection* This,
        IXMLDOMNode *domNode,
        IXMLDOMNode **oldNode);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXMLDOMCDATASection* This,
        IXMLDOMNode *newNode,
        IXMLDOMNode **outNewNode);

    HRESULT (STDMETHODCALLTYPE *hasChildNodes)(
        IXMLDOMCDATASection* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_ownerDocument)(
        IXMLDOMCDATASection* This,
        IXMLDOMDocument **domDocument);

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXMLDOMCDATASection* This,
        VARIANT_BOOL pbool,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypeString)(
        IXMLDOMCDATASection* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_text)(
        IXMLDOMCDATASection* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *put_text)(
        IXMLDOMCDATASection* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_specified)(
        IXMLDOMCDATASection* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_definition)(
        IXMLDOMCDATASection* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypedValue)(
        IXMLDOMCDATASection* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeTypedValue)(
        IXMLDOMCDATASection* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_dataType)(
        IXMLDOMCDATASection* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_dataType)(
        IXMLDOMCDATASection* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_xml)(
        IXMLDOMCDATASection* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXMLDOMCDATASection* This,
        IXMLDOMNode *domNode,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXMLDOMCDATASection* This,
        BSTR p,
        IXMLDOMNodeList **outList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXMLDOMCDATASection* This,
        BSTR p,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_parsed)(
        IXMLDOMCDATASection* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        IXMLDOMCDATASection* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_prefix)(
        IXMLDOMCDATASection* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_baseName)(
        IXMLDOMCDATASection* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXMLDOMCDATASection* This,
        IXMLDOMNode *domNode,
        VARIANT var1);

    /*** IXMLDOMCharacterData methods ***/
    HRESULT (STDMETHODCALLTYPE *get_data)(
        IXMLDOMCDATASection* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *put_data)(
        IXMLDOMCDATASection* This,
        BSTR data);

    HRESULT (STDMETHODCALLTYPE *get_length)(
        IXMLDOMCDATASection* This,
        LONG *len);

    HRESULT (STDMETHODCALLTYPE *substringData)(
        IXMLDOMCDATASection* This,
        LONG offset,
        LONG count,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *appendData)(
        IXMLDOMCDATASection* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *insertData)(
        IXMLDOMCDATASection* This,
        LONG offset,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *deleteData)(
        IXMLDOMCDATASection* This,
        LONG offset,
        LONG count);

    HRESULT (STDMETHODCALLTYPE *replaceData)(
        IXMLDOMCDATASection* This,
        LONG offset,
        LONG count,
        BSTR p);

    /*** IXMLDOMText methods ***/
    HRESULT (STDMETHODCALLTYPE *splitText)(
        IXMLDOMCDATASection* This,
        LONG offset,
        IXMLDOMText **txtNode);

    END_INTERFACE
} IXMLDOMCDATASectionVtbl;
interface IXMLDOMCDATASection {
    CONST_VTBL IXMLDOMCDATASectionVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMCDATASection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXMLDOMCDATASection_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXMLDOMCDATASection_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXMLDOMCDATASection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXMLDOMCDATASection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXMLDOMCDATASection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXMLDOMCDATASection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLDOMNode methods ***/
#define IXMLDOMCDATASection_get_nodeName(This,p) (This)->lpVtbl->get_nodeName(This,p)
#define IXMLDOMCDATASection_get_nodeValue(This,var1) (This)->lpVtbl->get_nodeValue(This,var1)
#define IXMLDOMCDATASection_put_nodeValue(This,var1) (This)->lpVtbl->put_nodeValue(This,var1)
#define IXMLDOMCDATASection_get_nodeType(This,domNodeType) (This)->lpVtbl->get_nodeType(This,domNodeType)
#define IXMLDOMCDATASection_get_parentNode(This,parent) (This)->lpVtbl->get_parentNode(This,parent)
#define IXMLDOMCDATASection_get_childNodes(This,outList) (This)->lpVtbl->get_childNodes(This,outList)
#define IXMLDOMCDATASection_get_firstChild(This,domNode) (This)->lpVtbl->get_firstChild(This,domNode)
#define IXMLDOMCDATASection_get_lastChild(This,domNode) (This)->lpVtbl->get_lastChild(This,domNode)
#define IXMLDOMCDATASection_get_previousSibling(This,domNode) (This)->lpVtbl->get_previousSibling(This,domNode)
#define IXMLDOMCDATASection_get_nextSibling(This,domNode) (This)->lpVtbl->get_nextSibling(This,domNode)
#define IXMLDOMCDATASection_get_attributes(This,attributeMap) (This)->lpVtbl->get_attributes(This,attributeMap)
#define IXMLDOMCDATASection_insertBefore(This,newNode,var1,outOldNode) (This)->lpVtbl->insertBefore(This,newNode,var1,outOldNode)
#define IXMLDOMCDATASection_replaceChild(This,newNode,oldNode,outOldNode) (This)->lpVtbl->replaceChild(This,newNode,oldNode,outOldNode)
#define IXMLDOMCDATASection_removeChild(This,domNode,oldNode) (This)->lpVtbl->removeChild(This,domNode,oldNode)
#define IXMLDOMCDATASection_appendChild(This,newNode,outNewNode) (This)->lpVtbl->appendChild(This,newNode,outNewNode)
#define IXMLDOMCDATASection_hasChildNodes(This,pbool) (This)->lpVtbl->hasChildNodes(This,pbool)
#define IXMLDOMCDATASection_get_ownerDocument(This,domDocument) (This)->lpVtbl->get_ownerDocument(This,domDocument)
#define IXMLDOMCDATASection_cloneNode(This,pbool,outNode) (This)->lpVtbl->cloneNode(This,pbool,outNode)
#define IXMLDOMCDATASection_get_nodeTypeString(This,p) (This)->lpVtbl->get_nodeTypeString(This,p)
#define IXMLDOMCDATASection_get_text(This,p) (This)->lpVtbl->get_text(This,p)
#define IXMLDOMCDATASection_put_text(This,p) (This)->lpVtbl->put_text(This,p)
#define IXMLDOMCDATASection_get_specified(This,pbool) (This)->lpVtbl->get_specified(This,pbool)
#define IXMLDOMCDATASection_get_definition(This,domNode) (This)->lpVtbl->get_definition(This,domNode)
#define IXMLDOMCDATASection_get_nodeTypedValue(This,var1) (This)->lpVtbl->get_nodeTypedValue(This,var1)
#define IXMLDOMCDATASection_put_nodeTypedValue(This,var1) (This)->lpVtbl->put_nodeTypedValue(This,var1)
#define IXMLDOMCDATASection_get_dataType(This,var1) (This)->lpVtbl->get_dataType(This,var1)
#define IXMLDOMCDATASection_put_dataType(This,p) (This)->lpVtbl->put_dataType(This,p)
#define IXMLDOMCDATASection_get_xml(This,p) (This)->lpVtbl->get_xml(This,p)
#define IXMLDOMCDATASection_transformNode(This,domNode,p) (This)->lpVtbl->transformNode(This,domNode,p)
#define IXMLDOMCDATASection_selectNodes(This,p,outList) (This)->lpVtbl->selectNodes(This,p,outList)
#define IXMLDOMCDATASection_selectSingleNode(This,p,outNode) (This)->lpVtbl->selectSingleNode(This,p,outNode)
#define IXMLDOMCDATASection_get_parsed(This,pbool) (This)->lpVtbl->get_parsed(This,pbool)
#define IXMLDOMCDATASection_get_namespaceURI(This,p) (This)->lpVtbl->get_namespaceURI(This,p)
#define IXMLDOMCDATASection_get_prefix(This,p) (This)->lpVtbl->get_prefix(This,p)
#define IXMLDOMCDATASection_get_baseName(This,p) (This)->lpVtbl->get_baseName(This,p)
#define IXMLDOMCDATASection_transformNodeToObject(This,domNode,var1) (This)->lpVtbl->transformNodeToObject(This,domNode,var1)
/*** IXMLDOMCharacterData methods ***/
#define IXMLDOMCDATASection_get_data(This,p) (This)->lpVtbl->get_data(This,p)
#define IXMLDOMCDATASection_put_data(This,data) (This)->lpVtbl->put_data(This,data)
#define IXMLDOMCDATASection_get_length(This,len) (This)->lpVtbl->get_length(This,len)
#define IXMLDOMCDATASection_substringData(This,offset,count,p) (This)->lpVtbl->substringData(This,offset,count,p)
#define IXMLDOMCDATASection_appendData(This,p) (This)->lpVtbl->appendData(This,p)
#define IXMLDOMCDATASection_insertData(This,offset,p) (This)->lpVtbl->insertData(This,offset,p)
#define IXMLDOMCDATASection_deleteData(This,offset,count) (This)->lpVtbl->deleteData(This,offset,count)
#define IXMLDOMCDATASection_replaceData(This,offset,count,p) (This)->lpVtbl->replaceData(This,offset,count,p)
/*** IXMLDOMText methods ***/
#define IXMLDOMCDATASection_splitText(This,offset,txtNode) (This)->lpVtbl->splitText(This,offset,txtNode)
#endif

#endif


#endif  /* __IXMLDOMCDATASection_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMDocumentType interface
 */
#ifndef __IXMLDOMDocumentType_INTERFACE_DEFINED__
#define __IXMLDOMDocumentType_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDOMDocumentType, 0x2933bf8b, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLDOMDocumentType : public IXMLDOMNode
{
    virtual HRESULT STDMETHODCALLTYPE get_name(
        BSTR *p) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_entities(
        IXMLDOMNamedNodeMap **entityMap) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_notations(
        IXMLDOMNamedNodeMap **notationMap) = 0;

};
#else
typedef struct IXMLDOMDocumentTypeVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXMLDOMDocumentType* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXMLDOMDocumentType* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXMLDOMDocumentType* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXMLDOMDocumentType* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXMLDOMDocumentType* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXMLDOMDocumentType* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXMLDOMDocumentType* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IXMLDOMNode methods ***/
    HRESULT (STDMETHODCALLTYPE *get_nodeName)(
        IXMLDOMDocumentType* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_nodeValue)(
        IXMLDOMDocumentType* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeValue)(
        IXMLDOMDocumentType* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_nodeType)(
        IXMLDOMDocumentType* This,
        DOMNodeType *domNodeType);

    HRESULT (STDMETHODCALLTYPE *get_parentNode)(
        IXMLDOMDocumentType* This,
        IXMLDOMNode **parent);

    HRESULT (STDMETHODCALLTYPE *get_childNodes)(
        IXMLDOMDocumentType* This,
        IXMLDOMNodeList **outList);

    HRESULT (STDMETHODCALLTYPE *get_firstChild)(
        IXMLDOMDocumentType* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_lastChild)(
        IXMLDOMDocumentType* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_previousSibling)(
        IXMLDOMDocumentType* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_nextSibling)(
        IXMLDOMDocumentType* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_attributes)(
        IXMLDOMDocumentType* This,
        IXMLDOMNamedNodeMap **attributeMap);

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXMLDOMDocumentType* This,
        IXMLDOMNode *newNode,
        VARIANT var1,
        IXMLDOMNode **outOldNode);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXMLDOMDocumentType* This,
        IXMLDOMNode *newNode,
        IXMLDOMNode *oldNode,
        IXMLDOMNode **outOldNode);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXMLDOMDocumentType* This,
        IXMLDOMNode *domNode,
        IXMLDOMNode **oldNode);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXMLDOMDocumentType* This,
        IXMLDOMNode *newNode,
        IXMLDOMNode **outNewNode);

    HRESULT (STDMETHODCALLTYPE *hasChildNodes)(
        IXMLDOMDocumentType* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_ownerDocument)(
        IXMLDOMDocumentType* This,
        IXMLDOMDocument **domDocument);

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXMLDOMDocumentType* This,
        VARIANT_BOOL pbool,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypeString)(
        IXMLDOMDocumentType* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_text)(
        IXMLDOMDocumentType* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *put_text)(
        IXMLDOMDocumentType* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_specified)(
        IXMLDOMDocumentType* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_definition)(
        IXMLDOMDocumentType* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypedValue)(
        IXMLDOMDocumentType* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeTypedValue)(
        IXMLDOMDocumentType* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_dataType)(
        IXMLDOMDocumentType* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_dataType)(
        IXMLDOMDocumentType* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_xml)(
        IXMLDOMDocumentType* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXMLDOMDocumentType* This,
        IXMLDOMNode *domNode,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXMLDOMDocumentType* This,
        BSTR p,
        IXMLDOMNodeList **outList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXMLDOMDocumentType* This,
        BSTR p,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_parsed)(
        IXMLDOMDocumentType* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        IXMLDOMDocumentType* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_prefix)(
        IXMLDOMDocumentType* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_baseName)(
        IXMLDOMDocumentType* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXMLDOMDocumentType* This,
        IXMLDOMNode *domNode,
        VARIANT var1);

    /*** IXMLDOMDocumentType methods ***/
    HRESULT (STDMETHODCALLTYPE *get_name)(
        IXMLDOMDocumentType* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_entities)(
        IXMLDOMDocumentType* This,
        IXMLDOMNamedNodeMap **entityMap);

    HRESULT (STDMETHODCALLTYPE *get_notations)(
        IXMLDOMDocumentType* This,
        IXMLDOMNamedNodeMap **notationMap);

    END_INTERFACE
} IXMLDOMDocumentTypeVtbl;
interface IXMLDOMDocumentType {
    CONST_VTBL IXMLDOMDocumentTypeVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMDocumentType_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXMLDOMDocumentType_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXMLDOMDocumentType_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXMLDOMDocumentType_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXMLDOMDocumentType_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXMLDOMDocumentType_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXMLDOMDocumentType_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLDOMNode methods ***/
#define IXMLDOMDocumentType_get_nodeName(This,p) (This)->lpVtbl->get_nodeName(This,p)
#define IXMLDOMDocumentType_get_nodeValue(This,var1) (This)->lpVtbl->get_nodeValue(This,var1)
#define IXMLDOMDocumentType_put_nodeValue(This,var1) (This)->lpVtbl->put_nodeValue(This,var1)
#define IXMLDOMDocumentType_get_nodeType(This,domNodeType) (This)->lpVtbl->get_nodeType(This,domNodeType)
#define IXMLDOMDocumentType_get_parentNode(This,parent) (This)->lpVtbl->get_parentNode(This,parent)
#define IXMLDOMDocumentType_get_childNodes(This,outList) (This)->lpVtbl->get_childNodes(This,outList)
#define IXMLDOMDocumentType_get_firstChild(This,domNode) (This)->lpVtbl->get_firstChild(This,domNode)
#define IXMLDOMDocumentType_get_lastChild(This,domNode) (This)->lpVtbl->get_lastChild(This,domNode)
#define IXMLDOMDocumentType_get_previousSibling(This,domNode) (This)->lpVtbl->get_previousSibling(This,domNode)
#define IXMLDOMDocumentType_get_nextSibling(This,domNode) (This)->lpVtbl->get_nextSibling(This,domNode)
#define IXMLDOMDocumentType_get_attributes(This,attributeMap) (This)->lpVtbl->get_attributes(This,attributeMap)
#define IXMLDOMDocumentType_insertBefore(This,newNode,var1,outOldNode) (This)->lpVtbl->insertBefore(This,newNode,var1,outOldNode)
#define IXMLDOMDocumentType_replaceChild(This,newNode,oldNode,outOldNode) (This)->lpVtbl->replaceChild(This,newNode,oldNode,outOldNode)
#define IXMLDOMDocumentType_removeChild(This,domNode,oldNode) (This)->lpVtbl->removeChild(This,domNode,oldNode)
#define IXMLDOMDocumentType_appendChild(This,newNode,outNewNode) (This)->lpVtbl->appendChild(This,newNode,outNewNode)
#define IXMLDOMDocumentType_hasChildNodes(This,pbool) (This)->lpVtbl->hasChildNodes(This,pbool)
#define IXMLDOMDocumentType_get_ownerDocument(This,domDocument) (This)->lpVtbl->get_ownerDocument(This,domDocument)
#define IXMLDOMDocumentType_cloneNode(This,pbool,outNode) (This)->lpVtbl->cloneNode(This,pbool,outNode)
#define IXMLDOMDocumentType_get_nodeTypeString(This,p) (This)->lpVtbl->get_nodeTypeString(This,p)
#define IXMLDOMDocumentType_get_text(This,p) (This)->lpVtbl->get_text(This,p)
#define IXMLDOMDocumentType_put_text(This,p) (This)->lpVtbl->put_text(This,p)
#define IXMLDOMDocumentType_get_specified(This,pbool) (This)->lpVtbl->get_specified(This,pbool)
#define IXMLDOMDocumentType_get_definition(This,domNode) (This)->lpVtbl->get_definition(This,domNode)
#define IXMLDOMDocumentType_get_nodeTypedValue(This,var1) (This)->lpVtbl->get_nodeTypedValue(This,var1)
#define IXMLDOMDocumentType_put_nodeTypedValue(This,var1) (This)->lpVtbl->put_nodeTypedValue(This,var1)
#define IXMLDOMDocumentType_get_dataType(This,var1) (This)->lpVtbl->get_dataType(This,var1)
#define IXMLDOMDocumentType_put_dataType(This,p) (This)->lpVtbl->put_dataType(This,p)
#define IXMLDOMDocumentType_get_xml(This,p) (This)->lpVtbl->get_xml(This,p)
#define IXMLDOMDocumentType_transformNode(This,domNode,p) (This)->lpVtbl->transformNode(This,domNode,p)
#define IXMLDOMDocumentType_selectNodes(This,p,outList) (This)->lpVtbl->selectNodes(This,p,outList)
#define IXMLDOMDocumentType_selectSingleNode(This,p,outNode) (This)->lpVtbl->selectSingleNode(This,p,outNode)
#define IXMLDOMDocumentType_get_parsed(This,pbool) (This)->lpVtbl->get_parsed(This,pbool)
#define IXMLDOMDocumentType_get_namespaceURI(This,p) (This)->lpVtbl->get_namespaceURI(This,p)
#define IXMLDOMDocumentType_get_prefix(This,p) (This)->lpVtbl->get_prefix(This,p)
#define IXMLDOMDocumentType_get_baseName(This,p) (This)->lpVtbl->get_baseName(This,p)
#define IXMLDOMDocumentType_transformNodeToObject(This,domNode,var1) (This)->lpVtbl->transformNodeToObject(This,domNode,var1)
/*** IXMLDOMDocumentType methods ***/
#define IXMLDOMDocumentType_get_name(This,p) (This)->lpVtbl->get_name(This,p)
#define IXMLDOMDocumentType_get_entities(This,entityMap) (This)->lpVtbl->get_entities(This,entityMap)
#define IXMLDOMDocumentType_get_notations(This,notationMap) (This)->lpVtbl->get_notations(This,notationMap)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLDOMDocumentType_get_name_Proxy(
    IXMLDOMDocumentType* This,
    BSTR *p);
void __RPC_STUB IXMLDOMDocumentType_get_name_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocumentType_get_entities_Proxy(
    IXMLDOMDocumentType* This,
    IXMLDOMNamedNodeMap **entityMap);
void __RPC_STUB IXMLDOMDocumentType_get_entities_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocumentType_get_notations_Proxy(
    IXMLDOMDocumentType* This,
    IXMLDOMNamedNodeMap **notationMap);
void __RPC_STUB IXMLDOMDocumentType_get_notations_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMDocumentType_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMNotation interface
 */
#ifndef __IXMLDOMNotation_INTERFACE_DEFINED__
#define __IXMLDOMNotation_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDOMNotation, 0x2933bf8c, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLDOMNotation : public IXMLDOMNode
{
    virtual HRESULT STDMETHODCALLTYPE get_publicId(
        VARIANT *id) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_systemId(
        VARIANT *id) = 0;

};
#else
typedef struct IXMLDOMNotationVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXMLDOMNotation* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXMLDOMNotation* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXMLDOMNotation* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXMLDOMNotation* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXMLDOMNotation* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXMLDOMNotation* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXMLDOMNotation* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IXMLDOMNode methods ***/
    HRESULT (STDMETHODCALLTYPE *get_nodeName)(
        IXMLDOMNotation* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_nodeValue)(
        IXMLDOMNotation* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeValue)(
        IXMLDOMNotation* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_nodeType)(
        IXMLDOMNotation* This,
        DOMNodeType *domNodeType);

    HRESULT (STDMETHODCALLTYPE *get_parentNode)(
        IXMLDOMNotation* This,
        IXMLDOMNode **parent);

    HRESULT (STDMETHODCALLTYPE *get_childNodes)(
        IXMLDOMNotation* This,
        IXMLDOMNodeList **outList);

    HRESULT (STDMETHODCALLTYPE *get_firstChild)(
        IXMLDOMNotation* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_lastChild)(
        IXMLDOMNotation* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_previousSibling)(
        IXMLDOMNotation* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_nextSibling)(
        IXMLDOMNotation* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_attributes)(
        IXMLDOMNotation* This,
        IXMLDOMNamedNodeMap **attributeMap);

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXMLDOMNotation* This,
        IXMLDOMNode *newNode,
        VARIANT var1,
        IXMLDOMNode **outOldNode);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXMLDOMNotation* This,
        IXMLDOMNode *newNode,
        IXMLDOMNode *oldNode,
        IXMLDOMNode **outOldNode);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXMLDOMNotation* This,
        IXMLDOMNode *domNode,
        IXMLDOMNode **oldNode);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXMLDOMNotation* This,
        IXMLDOMNode *newNode,
        IXMLDOMNode **outNewNode);

    HRESULT (STDMETHODCALLTYPE *hasChildNodes)(
        IXMLDOMNotation* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_ownerDocument)(
        IXMLDOMNotation* This,
        IXMLDOMDocument **domDocument);

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXMLDOMNotation* This,
        VARIANT_BOOL pbool,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypeString)(
        IXMLDOMNotation* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_text)(
        IXMLDOMNotation* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *put_text)(
        IXMLDOMNotation* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_specified)(
        IXMLDOMNotation* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_definition)(
        IXMLDOMNotation* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypedValue)(
        IXMLDOMNotation* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeTypedValue)(
        IXMLDOMNotation* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_dataType)(
        IXMLDOMNotation* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_dataType)(
        IXMLDOMNotation* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_xml)(
        IXMLDOMNotation* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXMLDOMNotation* This,
        IXMLDOMNode *domNode,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXMLDOMNotation* This,
        BSTR p,
        IXMLDOMNodeList **outList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXMLDOMNotation* This,
        BSTR p,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_parsed)(
        IXMLDOMNotation* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        IXMLDOMNotation* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_prefix)(
        IXMLDOMNotation* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_baseName)(
        IXMLDOMNotation* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXMLDOMNotation* This,
        IXMLDOMNode *domNode,
        VARIANT var1);

    /*** IXMLDOMNotation methods ***/
    HRESULT (STDMETHODCALLTYPE *get_publicId)(
        IXMLDOMNotation* This,
        VARIANT *id);

    HRESULT (STDMETHODCALLTYPE *get_systemId)(
        IXMLDOMNotation* This,
        VARIANT *id);

    END_INTERFACE
} IXMLDOMNotationVtbl;
interface IXMLDOMNotation {
    CONST_VTBL IXMLDOMNotationVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMNotation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXMLDOMNotation_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXMLDOMNotation_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXMLDOMNotation_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXMLDOMNotation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXMLDOMNotation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXMLDOMNotation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLDOMNode methods ***/
#define IXMLDOMNotation_get_nodeName(This,p) (This)->lpVtbl->get_nodeName(This,p)
#define IXMLDOMNotation_get_nodeValue(This,var1) (This)->lpVtbl->get_nodeValue(This,var1)
#define IXMLDOMNotation_put_nodeValue(This,var1) (This)->lpVtbl->put_nodeValue(This,var1)
#define IXMLDOMNotation_get_nodeType(This,domNodeType) (This)->lpVtbl->get_nodeType(This,domNodeType)
#define IXMLDOMNotation_get_parentNode(This,parent) (This)->lpVtbl->get_parentNode(This,parent)
#define IXMLDOMNotation_get_childNodes(This,outList) (This)->lpVtbl->get_childNodes(This,outList)
#define IXMLDOMNotation_get_firstChild(This,domNode) (This)->lpVtbl->get_firstChild(This,domNode)
#define IXMLDOMNotation_get_lastChild(This,domNode) (This)->lpVtbl->get_lastChild(This,domNode)
#define IXMLDOMNotation_get_previousSibling(This,domNode) (This)->lpVtbl->get_previousSibling(This,domNode)
#define IXMLDOMNotation_get_nextSibling(This,domNode) (This)->lpVtbl->get_nextSibling(This,domNode)
#define IXMLDOMNotation_get_attributes(This,attributeMap) (This)->lpVtbl->get_attributes(This,attributeMap)
#define IXMLDOMNotation_insertBefore(This,newNode,var1,outOldNode) (This)->lpVtbl->insertBefore(This,newNode,var1,outOldNode)
#define IXMLDOMNotation_replaceChild(This,newNode,oldNode,outOldNode) (This)->lpVtbl->replaceChild(This,newNode,oldNode,outOldNode)
#define IXMLDOMNotation_removeChild(This,domNode,oldNode) (This)->lpVtbl->removeChild(This,domNode,oldNode)
#define IXMLDOMNotation_appendChild(This,newNode,outNewNode) (This)->lpVtbl->appendChild(This,newNode,outNewNode)
#define IXMLDOMNotation_hasChildNodes(This,pbool) (This)->lpVtbl->hasChildNodes(This,pbool)
#define IXMLDOMNotation_get_ownerDocument(This,domDocument) (This)->lpVtbl->get_ownerDocument(This,domDocument)
#define IXMLDOMNotation_cloneNode(This,pbool,outNode) (This)->lpVtbl->cloneNode(This,pbool,outNode)
#define IXMLDOMNotation_get_nodeTypeString(This,p) (This)->lpVtbl->get_nodeTypeString(This,p)
#define IXMLDOMNotation_get_text(This,p) (This)->lpVtbl->get_text(This,p)
#define IXMLDOMNotation_put_text(This,p) (This)->lpVtbl->put_text(This,p)
#define IXMLDOMNotation_get_specified(This,pbool) (This)->lpVtbl->get_specified(This,pbool)
#define IXMLDOMNotation_get_definition(This,domNode) (This)->lpVtbl->get_definition(This,domNode)
#define IXMLDOMNotation_get_nodeTypedValue(This,var1) (This)->lpVtbl->get_nodeTypedValue(This,var1)
#define IXMLDOMNotation_put_nodeTypedValue(This,var1) (This)->lpVtbl->put_nodeTypedValue(This,var1)
#define IXMLDOMNotation_get_dataType(This,var1) (This)->lpVtbl->get_dataType(This,var1)
#define IXMLDOMNotation_put_dataType(This,p) (This)->lpVtbl->put_dataType(This,p)
#define IXMLDOMNotation_get_xml(This,p) (This)->lpVtbl->get_xml(This,p)
#define IXMLDOMNotation_transformNode(This,domNode,p) (This)->lpVtbl->transformNode(This,domNode,p)
#define IXMLDOMNotation_selectNodes(This,p,outList) (This)->lpVtbl->selectNodes(This,p,outList)
#define IXMLDOMNotation_selectSingleNode(This,p,outNode) (This)->lpVtbl->selectSingleNode(This,p,outNode)
#define IXMLDOMNotation_get_parsed(This,pbool) (This)->lpVtbl->get_parsed(This,pbool)
#define IXMLDOMNotation_get_namespaceURI(This,p) (This)->lpVtbl->get_namespaceURI(This,p)
#define IXMLDOMNotation_get_prefix(This,p) (This)->lpVtbl->get_prefix(This,p)
#define IXMLDOMNotation_get_baseName(This,p) (This)->lpVtbl->get_baseName(This,p)
#define IXMLDOMNotation_transformNodeToObject(This,domNode,var1) (This)->lpVtbl->transformNodeToObject(This,domNode,var1)
/*** IXMLDOMNotation methods ***/
#define IXMLDOMNotation_get_publicId(This,id) (This)->lpVtbl->get_publicId(This,id)
#define IXMLDOMNotation_get_systemId(This,id) (This)->lpVtbl->get_systemId(This,id)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLDOMNotation_get_publicId_Proxy(
    IXMLDOMNotation* This,
    VARIANT *id);
void __RPC_STUB IXMLDOMNotation_get_publicId_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNotation_get_systemId_Proxy(
    IXMLDOMNotation* This,
    VARIANT *id);
void __RPC_STUB IXMLDOMNotation_get_systemId_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMNotation_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMEntity interface
 */
#ifndef __IXMLDOMEntity_INTERFACE_DEFINED__
#define __IXMLDOMEntity_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDOMEntity, 0x2933bf8d, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLDOMEntity : public IXMLDOMNode
{
    virtual HRESULT STDMETHODCALLTYPE get_publicId(
        VARIANT *id1) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_systemId(
        VARIANT *id1) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_notationName(
        BSTR *p) = 0;

};
#else
typedef struct IXMLDOMEntityVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXMLDOMEntity* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXMLDOMEntity* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXMLDOMEntity* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXMLDOMEntity* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXMLDOMEntity* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXMLDOMEntity* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXMLDOMEntity* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IXMLDOMNode methods ***/
    HRESULT (STDMETHODCALLTYPE *get_nodeName)(
        IXMLDOMEntity* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_nodeValue)(
        IXMLDOMEntity* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeValue)(
        IXMLDOMEntity* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_nodeType)(
        IXMLDOMEntity* This,
        DOMNodeType *domNodeType);

    HRESULT (STDMETHODCALLTYPE *get_parentNode)(
        IXMLDOMEntity* This,
        IXMLDOMNode **parent);

    HRESULT (STDMETHODCALLTYPE *get_childNodes)(
        IXMLDOMEntity* This,
        IXMLDOMNodeList **outList);

    HRESULT (STDMETHODCALLTYPE *get_firstChild)(
        IXMLDOMEntity* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_lastChild)(
        IXMLDOMEntity* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_previousSibling)(
        IXMLDOMEntity* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_nextSibling)(
        IXMLDOMEntity* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_attributes)(
        IXMLDOMEntity* This,
        IXMLDOMNamedNodeMap **attributeMap);

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXMLDOMEntity* This,
        IXMLDOMNode *newNode,
        VARIANT var1,
        IXMLDOMNode **outOldNode);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXMLDOMEntity* This,
        IXMLDOMNode *newNode,
        IXMLDOMNode *oldNode,
        IXMLDOMNode **outOldNode);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXMLDOMEntity* This,
        IXMLDOMNode *domNode,
        IXMLDOMNode **oldNode);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXMLDOMEntity* This,
        IXMLDOMNode *newNode,
        IXMLDOMNode **outNewNode);

    HRESULT (STDMETHODCALLTYPE *hasChildNodes)(
        IXMLDOMEntity* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_ownerDocument)(
        IXMLDOMEntity* This,
        IXMLDOMDocument **domDocument);

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXMLDOMEntity* This,
        VARIANT_BOOL pbool,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypeString)(
        IXMLDOMEntity* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_text)(
        IXMLDOMEntity* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *put_text)(
        IXMLDOMEntity* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_specified)(
        IXMLDOMEntity* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_definition)(
        IXMLDOMEntity* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypedValue)(
        IXMLDOMEntity* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeTypedValue)(
        IXMLDOMEntity* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_dataType)(
        IXMLDOMEntity* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_dataType)(
        IXMLDOMEntity* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_xml)(
        IXMLDOMEntity* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXMLDOMEntity* This,
        IXMLDOMNode *domNode,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXMLDOMEntity* This,
        BSTR p,
        IXMLDOMNodeList **outList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXMLDOMEntity* This,
        BSTR p,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_parsed)(
        IXMLDOMEntity* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        IXMLDOMEntity* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_prefix)(
        IXMLDOMEntity* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_baseName)(
        IXMLDOMEntity* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXMLDOMEntity* This,
        IXMLDOMNode *domNode,
        VARIANT var1);

    /*** IXMLDOMEntity methods ***/
    HRESULT (STDMETHODCALLTYPE *get_publicId)(
        IXMLDOMEntity* This,
        VARIANT *id1);

    HRESULT (STDMETHODCALLTYPE *get_systemId)(
        IXMLDOMEntity* This,
        VARIANT *id1);

    HRESULT (STDMETHODCALLTYPE *get_notationName)(
        IXMLDOMEntity* This,
        BSTR *p);

    END_INTERFACE
} IXMLDOMEntityVtbl;
interface IXMLDOMEntity {
    CONST_VTBL IXMLDOMEntityVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMEntity_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXMLDOMEntity_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXMLDOMEntity_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXMLDOMEntity_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXMLDOMEntity_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXMLDOMEntity_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXMLDOMEntity_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLDOMNode methods ***/
#define IXMLDOMEntity_get_nodeName(This,p) (This)->lpVtbl->get_nodeName(This,p)
#define IXMLDOMEntity_get_nodeValue(This,var1) (This)->lpVtbl->get_nodeValue(This,var1)
#define IXMLDOMEntity_put_nodeValue(This,var1) (This)->lpVtbl->put_nodeValue(This,var1)
#define IXMLDOMEntity_get_nodeType(This,domNodeType) (This)->lpVtbl->get_nodeType(This,domNodeType)
#define IXMLDOMEntity_get_parentNode(This,parent) (This)->lpVtbl->get_parentNode(This,parent)
#define IXMLDOMEntity_get_childNodes(This,outList) (This)->lpVtbl->get_childNodes(This,outList)
#define IXMLDOMEntity_get_firstChild(This,domNode) (This)->lpVtbl->get_firstChild(This,domNode)
#define IXMLDOMEntity_get_lastChild(This,domNode) (This)->lpVtbl->get_lastChild(This,domNode)
#define IXMLDOMEntity_get_previousSibling(This,domNode) (This)->lpVtbl->get_previousSibling(This,domNode)
#define IXMLDOMEntity_get_nextSibling(This,domNode) (This)->lpVtbl->get_nextSibling(This,domNode)
#define IXMLDOMEntity_get_attributes(This,attributeMap) (This)->lpVtbl->get_attributes(This,attributeMap)
#define IXMLDOMEntity_insertBefore(This,newNode,var1,outOldNode) (This)->lpVtbl->insertBefore(This,newNode,var1,outOldNode)
#define IXMLDOMEntity_replaceChild(This,newNode,oldNode,outOldNode) (This)->lpVtbl->replaceChild(This,newNode,oldNode,outOldNode)
#define IXMLDOMEntity_removeChild(This,domNode,oldNode) (This)->lpVtbl->removeChild(This,domNode,oldNode)
#define IXMLDOMEntity_appendChild(This,newNode,outNewNode) (This)->lpVtbl->appendChild(This,newNode,outNewNode)
#define IXMLDOMEntity_hasChildNodes(This,pbool) (This)->lpVtbl->hasChildNodes(This,pbool)
#define IXMLDOMEntity_get_ownerDocument(This,domDocument) (This)->lpVtbl->get_ownerDocument(This,domDocument)
#define IXMLDOMEntity_cloneNode(This,pbool,outNode) (This)->lpVtbl->cloneNode(This,pbool,outNode)
#define IXMLDOMEntity_get_nodeTypeString(This,p) (This)->lpVtbl->get_nodeTypeString(This,p)
#define IXMLDOMEntity_get_text(This,p) (This)->lpVtbl->get_text(This,p)
#define IXMLDOMEntity_put_text(This,p) (This)->lpVtbl->put_text(This,p)
#define IXMLDOMEntity_get_specified(This,pbool) (This)->lpVtbl->get_specified(This,pbool)
#define IXMLDOMEntity_get_definition(This,domNode) (This)->lpVtbl->get_definition(This,domNode)
#define IXMLDOMEntity_get_nodeTypedValue(This,var1) (This)->lpVtbl->get_nodeTypedValue(This,var1)
#define IXMLDOMEntity_put_nodeTypedValue(This,var1) (This)->lpVtbl->put_nodeTypedValue(This,var1)
#define IXMLDOMEntity_get_dataType(This,var1) (This)->lpVtbl->get_dataType(This,var1)
#define IXMLDOMEntity_put_dataType(This,p) (This)->lpVtbl->put_dataType(This,p)
#define IXMLDOMEntity_get_xml(This,p) (This)->lpVtbl->get_xml(This,p)
#define IXMLDOMEntity_transformNode(This,domNode,p) (This)->lpVtbl->transformNode(This,domNode,p)
#define IXMLDOMEntity_selectNodes(This,p,outList) (This)->lpVtbl->selectNodes(This,p,outList)
#define IXMLDOMEntity_selectSingleNode(This,p,outNode) (This)->lpVtbl->selectSingleNode(This,p,outNode)
#define IXMLDOMEntity_get_parsed(This,pbool) (This)->lpVtbl->get_parsed(This,pbool)
#define IXMLDOMEntity_get_namespaceURI(This,p) (This)->lpVtbl->get_namespaceURI(This,p)
#define IXMLDOMEntity_get_prefix(This,p) (This)->lpVtbl->get_prefix(This,p)
#define IXMLDOMEntity_get_baseName(This,p) (This)->lpVtbl->get_baseName(This,p)
#define IXMLDOMEntity_transformNodeToObject(This,domNode,var1) (This)->lpVtbl->transformNodeToObject(This,domNode,var1)
/*** IXMLDOMEntity methods ***/
#define IXMLDOMEntity_get_publicId(This,id1) (This)->lpVtbl->get_publicId(This,id1)
#define IXMLDOMEntity_get_systemId(This,id1) (This)->lpVtbl->get_systemId(This,id1)
#define IXMLDOMEntity_get_notationName(This,p) (This)->lpVtbl->get_notationName(This,p)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLDOMEntity_get_publicId_Proxy(
    IXMLDOMEntity* This,
    VARIANT *id1);
void __RPC_STUB IXMLDOMEntity_get_publicId_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMEntity_get_systemId_Proxy(
    IXMLDOMEntity* This,
    VARIANT *id1);
void __RPC_STUB IXMLDOMEntity_get_systemId_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMEntity_get_notationName_Proxy(
    IXMLDOMEntity* This,
    BSTR *p);
void __RPC_STUB IXMLDOMEntity_get_notationName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMEntity_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMEntityReference interface
 */
#ifndef __IXMLDOMEntityReference_INTERFACE_DEFINED__
#define __IXMLDOMEntityReference_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDOMEntityReference, 0x2933bf8e, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLDOMEntityReference : public IXMLDOMNode
{
};
#else
typedef struct IXMLDOMEntityReferenceVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXMLDOMEntityReference* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXMLDOMEntityReference* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXMLDOMEntityReference* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXMLDOMEntityReference* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXMLDOMEntityReference* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXMLDOMEntityReference* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXMLDOMEntityReference* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IXMLDOMNode methods ***/
    HRESULT (STDMETHODCALLTYPE *get_nodeName)(
        IXMLDOMEntityReference* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_nodeValue)(
        IXMLDOMEntityReference* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeValue)(
        IXMLDOMEntityReference* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_nodeType)(
        IXMLDOMEntityReference* This,
        DOMNodeType *domNodeType);

    HRESULT (STDMETHODCALLTYPE *get_parentNode)(
        IXMLDOMEntityReference* This,
        IXMLDOMNode **parent);

    HRESULT (STDMETHODCALLTYPE *get_childNodes)(
        IXMLDOMEntityReference* This,
        IXMLDOMNodeList **outList);

    HRESULT (STDMETHODCALLTYPE *get_firstChild)(
        IXMLDOMEntityReference* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_lastChild)(
        IXMLDOMEntityReference* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_previousSibling)(
        IXMLDOMEntityReference* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_nextSibling)(
        IXMLDOMEntityReference* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_attributes)(
        IXMLDOMEntityReference* This,
        IXMLDOMNamedNodeMap **attributeMap);

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXMLDOMEntityReference* This,
        IXMLDOMNode *newNode,
        VARIANT var1,
        IXMLDOMNode **outOldNode);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXMLDOMEntityReference* This,
        IXMLDOMNode *newNode,
        IXMLDOMNode *oldNode,
        IXMLDOMNode **outOldNode);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXMLDOMEntityReference* This,
        IXMLDOMNode *domNode,
        IXMLDOMNode **oldNode);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXMLDOMEntityReference* This,
        IXMLDOMNode *newNode,
        IXMLDOMNode **outNewNode);

    HRESULT (STDMETHODCALLTYPE *hasChildNodes)(
        IXMLDOMEntityReference* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_ownerDocument)(
        IXMLDOMEntityReference* This,
        IXMLDOMDocument **domDocument);

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXMLDOMEntityReference* This,
        VARIANT_BOOL pbool,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypeString)(
        IXMLDOMEntityReference* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_text)(
        IXMLDOMEntityReference* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *put_text)(
        IXMLDOMEntityReference* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_specified)(
        IXMLDOMEntityReference* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_definition)(
        IXMLDOMEntityReference* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypedValue)(
        IXMLDOMEntityReference* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeTypedValue)(
        IXMLDOMEntityReference* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_dataType)(
        IXMLDOMEntityReference* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_dataType)(
        IXMLDOMEntityReference* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_xml)(
        IXMLDOMEntityReference* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXMLDOMEntityReference* This,
        IXMLDOMNode *domNode,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXMLDOMEntityReference* This,
        BSTR p,
        IXMLDOMNodeList **outList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXMLDOMEntityReference* This,
        BSTR p,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_parsed)(
        IXMLDOMEntityReference* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        IXMLDOMEntityReference* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_prefix)(
        IXMLDOMEntityReference* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_baseName)(
        IXMLDOMEntityReference* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXMLDOMEntityReference* This,
        IXMLDOMNode *domNode,
        VARIANT var1);

    END_INTERFACE
} IXMLDOMEntityReferenceVtbl;
interface IXMLDOMEntityReference {
    CONST_VTBL IXMLDOMEntityReferenceVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMEntityReference_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXMLDOMEntityReference_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXMLDOMEntityReference_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXMLDOMEntityReference_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXMLDOMEntityReference_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXMLDOMEntityReference_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXMLDOMEntityReference_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLDOMNode methods ***/
#define IXMLDOMEntityReference_get_nodeName(This,p) (This)->lpVtbl->get_nodeName(This,p)
#define IXMLDOMEntityReference_get_nodeValue(This,var1) (This)->lpVtbl->get_nodeValue(This,var1)
#define IXMLDOMEntityReference_put_nodeValue(This,var1) (This)->lpVtbl->put_nodeValue(This,var1)
#define IXMLDOMEntityReference_get_nodeType(This,domNodeType) (This)->lpVtbl->get_nodeType(This,domNodeType)
#define IXMLDOMEntityReference_get_parentNode(This,parent) (This)->lpVtbl->get_parentNode(This,parent)
#define IXMLDOMEntityReference_get_childNodes(This,outList) (This)->lpVtbl->get_childNodes(This,outList)
#define IXMLDOMEntityReference_get_firstChild(This,domNode) (This)->lpVtbl->get_firstChild(This,domNode)
#define IXMLDOMEntityReference_get_lastChild(This,domNode) (This)->lpVtbl->get_lastChild(This,domNode)
#define IXMLDOMEntityReference_get_previousSibling(This,domNode) (This)->lpVtbl->get_previousSibling(This,domNode)
#define IXMLDOMEntityReference_get_nextSibling(This,domNode) (This)->lpVtbl->get_nextSibling(This,domNode)
#define IXMLDOMEntityReference_get_attributes(This,attributeMap) (This)->lpVtbl->get_attributes(This,attributeMap)
#define IXMLDOMEntityReference_insertBefore(This,newNode,var1,outOldNode) (This)->lpVtbl->insertBefore(This,newNode,var1,outOldNode)
#define IXMLDOMEntityReference_replaceChild(This,newNode,oldNode,outOldNode) (This)->lpVtbl->replaceChild(This,newNode,oldNode,outOldNode)
#define IXMLDOMEntityReference_removeChild(This,domNode,oldNode) (This)->lpVtbl->removeChild(This,domNode,oldNode)
#define IXMLDOMEntityReference_appendChild(This,newNode,outNewNode) (This)->lpVtbl->appendChild(This,newNode,outNewNode)
#define IXMLDOMEntityReference_hasChildNodes(This,pbool) (This)->lpVtbl->hasChildNodes(This,pbool)
#define IXMLDOMEntityReference_get_ownerDocument(This,domDocument) (This)->lpVtbl->get_ownerDocument(This,domDocument)
#define IXMLDOMEntityReference_cloneNode(This,pbool,outNode) (This)->lpVtbl->cloneNode(This,pbool,outNode)
#define IXMLDOMEntityReference_get_nodeTypeString(This,p) (This)->lpVtbl->get_nodeTypeString(This,p)
#define IXMLDOMEntityReference_get_text(This,p) (This)->lpVtbl->get_text(This,p)
#define IXMLDOMEntityReference_put_text(This,p) (This)->lpVtbl->put_text(This,p)
#define IXMLDOMEntityReference_get_specified(This,pbool) (This)->lpVtbl->get_specified(This,pbool)
#define IXMLDOMEntityReference_get_definition(This,domNode) (This)->lpVtbl->get_definition(This,domNode)
#define IXMLDOMEntityReference_get_nodeTypedValue(This,var1) (This)->lpVtbl->get_nodeTypedValue(This,var1)
#define IXMLDOMEntityReference_put_nodeTypedValue(This,var1) (This)->lpVtbl->put_nodeTypedValue(This,var1)
#define IXMLDOMEntityReference_get_dataType(This,var1) (This)->lpVtbl->get_dataType(This,var1)
#define IXMLDOMEntityReference_put_dataType(This,p) (This)->lpVtbl->put_dataType(This,p)
#define IXMLDOMEntityReference_get_xml(This,p) (This)->lpVtbl->get_xml(This,p)
#define IXMLDOMEntityReference_transformNode(This,domNode,p) (This)->lpVtbl->transformNode(This,domNode,p)
#define IXMLDOMEntityReference_selectNodes(This,p,outList) (This)->lpVtbl->selectNodes(This,p,outList)
#define IXMLDOMEntityReference_selectSingleNode(This,p,outNode) (This)->lpVtbl->selectSingleNode(This,p,outNode)
#define IXMLDOMEntityReference_get_parsed(This,pbool) (This)->lpVtbl->get_parsed(This,pbool)
#define IXMLDOMEntityReference_get_namespaceURI(This,p) (This)->lpVtbl->get_namespaceURI(This,p)
#define IXMLDOMEntityReference_get_prefix(This,p) (This)->lpVtbl->get_prefix(This,p)
#define IXMLDOMEntityReference_get_baseName(This,p) (This)->lpVtbl->get_baseName(This,p)
#define IXMLDOMEntityReference_transformNodeToObject(This,domNode,var1) (This)->lpVtbl->transformNodeToObject(This,domNode,var1)
#endif

#endif


#endif  /* __IXMLDOMEntityReference_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMImplementation interface
 */
#ifndef __IXMLDOMImplementation_INTERFACE_DEFINED__
#define __IXMLDOMImplementation_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDOMImplementation, 0x2933bf8f, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLDOMImplementation : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE hasFeature(
        BSTR feature,
        BSTR version,
        VARIANT_BOOL *pbool) = 0;

};
#else
typedef struct IXMLDOMImplementationVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXMLDOMImplementation* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXMLDOMImplementation* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXMLDOMImplementation* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXMLDOMImplementation* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXMLDOMImplementation* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXMLDOMImplementation* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXMLDOMImplementation* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IXMLDOMImplementation methods ***/
    HRESULT (STDMETHODCALLTYPE *hasFeature)(
        IXMLDOMImplementation* This,
        BSTR feature,
        BSTR version,
        VARIANT_BOOL *pbool);

    END_INTERFACE
} IXMLDOMImplementationVtbl;
interface IXMLDOMImplementation {
    CONST_VTBL IXMLDOMImplementationVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMImplementation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXMLDOMImplementation_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXMLDOMImplementation_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXMLDOMImplementation_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXMLDOMImplementation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXMLDOMImplementation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXMLDOMImplementation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLDOMImplementation methods ***/
#define IXMLDOMImplementation_hasFeature(This,feature,version,pbool) (This)->lpVtbl->hasFeature(This,feature,version,pbool)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLDOMImplementation_hasFeature_Proxy(
    IXMLDOMImplementation* This,
    BSTR feature,
    BSTR version,
    VARIANT_BOOL *pbool);
void __RPC_STUB IXMLDOMImplementation_hasFeature_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMImplementation_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXTLRuntime interface
 */
#ifndef __IXTLRuntime_INTERFACE_DEFINED__
#define __IXTLRuntime_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXTLRuntime, 0x3efaa425, 0x272f, 0x11d2, 0x83,0x6f, 0x00,0x00,0xf8,0x7a,0x77,0x82);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXTLRuntime : public IXMLDOMNode
{
    virtual HRESULT STDMETHODCALLTYPE uniqueID(
        IXMLDOMNode *pNode,
        LONG *pID) = 0;

    virtual HRESULT STDMETHODCALLTYPE depth(
        IXMLDOMNode *pNode,
        LONG *pDepth) = 0;

    virtual HRESULT STDMETHODCALLTYPE childNumber(
        IXMLDOMNode *pNode,
        LONG *pNumber) = 0;

    virtual HRESULT STDMETHODCALLTYPE ancestorChildNumber(
        BSTR bstr,
        IXMLDOMNode *pNode,
        LONG *pNumber) = 0;

    virtual HRESULT STDMETHODCALLTYPE absoluteChildNumber(
        IXMLDOMNode *pNode,
        LONG *pNumber) = 0;

    virtual HRESULT STDMETHODCALLTYPE formatIndex(
        LONG lIndex,
        BSTR bstr,
        BSTR *pbstr) = 0;

    virtual HRESULT STDMETHODCALLTYPE formatNumber(
        double dblNumber,
        BSTR bstr,
        BSTR *pbstr) = 0;

    virtual HRESULT STDMETHODCALLTYPE formatDate(
        VARIANT var1,
        BSTR bstr,
        VARIANT var2,
        BSTR *pbstr) = 0;

    virtual HRESULT STDMETHODCALLTYPE formatTime(
        VARIANT var1,
        BSTR bstr,
        VARIANT var2,
        BSTR *pbstr) = 0;

};
#else
typedef struct IXTLRuntimeVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXTLRuntime* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXTLRuntime* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXTLRuntime* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXTLRuntime* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXTLRuntime* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXTLRuntime* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXTLRuntime* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IXMLDOMNode methods ***/
    HRESULT (STDMETHODCALLTYPE *get_nodeName)(
        IXTLRuntime* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_nodeValue)(
        IXTLRuntime* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeValue)(
        IXTLRuntime* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_nodeType)(
        IXTLRuntime* This,
        DOMNodeType *domNodeType);

    HRESULT (STDMETHODCALLTYPE *get_parentNode)(
        IXTLRuntime* This,
        IXMLDOMNode **parent);

    HRESULT (STDMETHODCALLTYPE *get_childNodes)(
        IXTLRuntime* This,
        IXMLDOMNodeList **outList);

    HRESULT (STDMETHODCALLTYPE *get_firstChild)(
        IXTLRuntime* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_lastChild)(
        IXTLRuntime* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_previousSibling)(
        IXTLRuntime* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_nextSibling)(
        IXTLRuntime* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_attributes)(
        IXTLRuntime* This,
        IXMLDOMNamedNodeMap **attributeMap);

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXTLRuntime* This,
        IXMLDOMNode *newNode,
        VARIANT var1,
        IXMLDOMNode **outOldNode);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXTLRuntime* This,
        IXMLDOMNode *newNode,
        IXMLDOMNode *oldNode,
        IXMLDOMNode **outOldNode);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXTLRuntime* This,
        IXMLDOMNode *domNode,
        IXMLDOMNode **oldNode);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXTLRuntime* This,
        IXMLDOMNode *newNode,
        IXMLDOMNode **outNewNode);

    HRESULT (STDMETHODCALLTYPE *hasChildNodes)(
        IXTLRuntime* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_ownerDocument)(
        IXTLRuntime* This,
        IXMLDOMDocument **domDocument);

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXTLRuntime* This,
        VARIANT_BOOL pbool,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypeString)(
        IXTLRuntime* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_text)(
        IXTLRuntime* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *put_text)(
        IXTLRuntime* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_specified)(
        IXTLRuntime* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_definition)(
        IXTLRuntime* This,
        IXMLDOMNode **domNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypedValue)(
        IXTLRuntime* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeTypedValue)(
        IXTLRuntime* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_dataType)(
        IXTLRuntime* This,
        VARIANT *var1);

    HRESULT (STDMETHODCALLTYPE *put_dataType)(
        IXTLRuntime* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_xml)(
        IXTLRuntime* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXTLRuntime* This,
        IXMLDOMNode *domNode,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXTLRuntime* This,
        BSTR p,
        IXMLDOMNodeList **outList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXTLRuntime* This,
        BSTR p,
        IXMLDOMNode **outNode);

    HRESULT (STDMETHODCALLTYPE *get_parsed)(
        IXTLRuntime* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        IXTLRuntime* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_prefix)(
        IXTLRuntime* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_baseName)(
        IXTLRuntime* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXTLRuntime* This,
        IXMLDOMNode *domNode,
        VARIANT var1);

    /*** IXTLRuntime methods ***/
    HRESULT (STDMETHODCALLTYPE *uniqueID)(
        IXTLRuntime* This,
        IXMLDOMNode *pNode,
        LONG *pID);

    HRESULT (STDMETHODCALLTYPE *depth)(
        IXTLRuntime* This,
        IXMLDOMNode *pNode,
        LONG *pDepth);

    HRESULT (STDMETHODCALLTYPE *childNumber)(
        IXTLRuntime* This,
        IXMLDOMNode *pNode,
        LONG *pNumber);

    HRESULT (STDMETHODCALLTYPE *ancestorChildNumber)(
        IXTLRuntime* This,
        BSTR bstr,
        IXMLDOMNode *pNode,
        LONG *pNumber);

    HRESULT (STDMETHODCALLTYPE *absoluteChildNumber)(
        IXTLRuntime* This,
        IXMLDOMNode *pNode,
        LONG *pNumber);

    HRESULT (STDMETHODCALLTYPE *formatIndex)(
        IXTLRuntime* This,
        LONG lIndex,
        BSTR bstr,
        BSTR *pbstr);

    HRESULT (STDMETHODCALLTYPE *formatNumber)(
        IXTLRuntime* This,
        double dblNumber,
        BSTR bstr,
        BSTR *pbstr);

    HRESULT (STDMETHODCALLTYPE *formatDate)(
        IXTLRuntime* This,
        VARIANT var1,
        BSTR bstr,
        VARIANT var2,
        BSTR *pbstr);

    HRESULT (STDMETHODCALLTYPE *formatTime)(
        IXTLRuntime* This,
        VARIANT var1,
        BSTR bstr,
        VARIANT var2,
        BSTR *pbstr);

    END_INTERFACE
} IXTLRuntimeVtbl;
interface IXTLRuntime {
    CONST_VTBL IXTLRuntimeVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXTLRuntime_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXTLRuntime_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXTLRuntime_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXTLRuntime_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXTLRuntime_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXTLRuntime_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXTLRuntime_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLDOMNode methods ***/
#define IXTLRuntime_get_nodeName(This,p) (This)->lpVtbl->get_nodeName(This,p)
#define IXTLRuntime_get_nodeValue(This,var1) (This)->lpVtbl->get_nodeValue(This,var1)
#define IXTLRuntime_put_nodeValue(This,var1) (This)->lpVtbl->put_nodeValue(This,var1)
#define IXTLRuntime_get_nodeType(This,domNodeType) (This)->lpVtbl->get_nodeType(This,domNodeType)
#define IXTLRuntime_get_parentNode(This,parent) (This)->lpVtbl->get_parentNode(This,parent)
#define IXTLRuntime_get_childNodes(This,outList) (This)->lpVtbl->get_childNodes(This,outList)
#define IXTLRuntime_get_firstChild(This,domNode) (This)->lpVtbl->get_firstChild(This,domNode)
#define IXTLRuntime_get_lastChild(This,domNode) (This)->lpVtbl->get_lastChild(This,domNode)
#define IXTLRuntime_get_previousSibling(This,domNode) (This)->lpVtbl->get_previousSibling(This,domNode)
#define IXTLRuntime_get_nextSibling(This,domNode) (This)->lpVtbl->get_nextSibling(This,domNode)
#define IXTLRuntime_get_attributes(This,attributeMap) (This)->lpVtbl->get_attributes(This,attributeMap)
#define IXTLRuntime_insertBefore(This,newNode,var1,outOldNode) (This)->lpVtbl->insertBefore(This,newNode,var1,outOldNode)
#define IXTLRuntime_replaceChild(This,newNode,oldNode,outOldNode) (This)->lpVtbl->replaceChild(This,newNode,oldNode,outOldNode)
#define IXTLRuntime_removeChild(This,domNode,oldNode) (This)->lpVtbl->removeChild(This,domNode,oldNode)
#define IXTLRuntime_appendChild(This,newNode,outNewNode) (This)->lpVtbl->appendChild(This,newNode,outNewNode)
#define IXTLRuntime_hasChildNodes(This,pbool) (This)->lpVtbl->hasChildNodes(This,pbool)
#define IXTLRuntime_get_ownerDocument(This,domDocument) (This)->lpVtbl->get_ownerDocument(This,domDocument)
#define IXTLRuntime_cloneNode(This,pbool,outNode) (This)->lpVtbl->cloneNode(This,pbool,outNode)
#define IXTLRuntime_get_nodeTypeString(This,p) (This)->lpVtbl->get_nodeTypeString(This,p)
#define IXTLRuntime_get_text(This,p) (This)->lpVtbl->get_text(This,p)
#define IXTLRuntime_put_text(This,p) (This)->lpVtbl->put_text(This,p)
#define IXTLRuntime_get_specified(This,pbool) (This)->lpVtbl->get_specified(This,pbool)
#define IXTLRuntime_get_definition(This,domNode) (This)->lpVtbl->get_definition(This,domNode)
#define IXTLRuntime_get_nodeTypedValue(This,var1) (This)->lpVtbl->get_nodeTypedValue(This,var1)
#define IXTLRuntime_put_nodeTypedValue(This,var1) (This)->lpVtbl->put_nodeTypedValue(This,var1)
#define IXTLRuntime_get_dataType(This,var1) (This)->lpVtbl->get_dataType(This,var1)
#define IXTLRuntime_put_dataType(This,p) (This)->lpVtbl->put_dataType(This,p)
#define IXTLRuntime_get_xml(This,p) (This)->lpVtbl->get_xml(This,p)
#define IXTLRuntime_transformNode(This,domNode,p) (This)->lpVtbl->transformNode(This,domNode,p)
#define IXTLRuntime_selectNodes(This,p,outList) (This)->lpVtbl->selectNodes(This,p,outList)
#define IXTLRuntime_selectSingleNode(This,p,outNode) (This)->lpVtbl->selectSingleNode(This,p,outNode)
#define IXTLRuntime_get_parsed(This,pbool) (This)->lpVtbl->get_parsed(This,pbool)
#define IXTLRuntime_get_namespaceURI(This,p) (This)->lpVtbl->get_namespaceURI(This,p)
#define IXTLRuntime_get_prefix(This,p) (This)->lpVtbl->get_prefix(This,p)
#define IXTLRuntime_get_baseName(This,p) (This)->lpVtbl->get_baseName(This,p)
#define IXTLRuntime_transformNodeToObject(This,domNode,var1) (This)->lpVtbl->transformNodeToObject(This,domNode,var1)
/*** IXTLRuntime methods ***/
#define IXTLRuntime_uniqueID(This,pNode,pID) (This)->lpVtbl->uniqueID(This,pNode,pID)
#define IXTLRuntime_depth(This,pNode,pDepth) (This)->lpVtbl->depth(This,pNode,pDepth)
#define IXTLRuntime_childNumber(This,pNode,pNumber) (This)->lpVtbl->childNumber(This,pNode,pNumber)
#define IXTLRuntime_ancestorChildNumber(This,bstr,pNode,pNumber) (This)->lpVtbl->ancestorChildNumber(This,bstr,pNode,pNumber)
#define IXTLRuntime_absoluteChildNumber(This,pNode,pNumber) (This)->lpVtbl->absoluteChildNumber(This,pNode,pNumber)
#define IXTLRuntime_formatIndex(This,lIndex,bstr,pbstr) (This)->lpVtbl->formatIndex(This,lIndex,bstr,pbstr)
#define IXTLRuntime_formatNumber(This,dblNumber,bstr,pbstr) (This)->lpVtbl->formatNumber(This,dblNumber,bstr,pbstr)
#define IXTLRuntime_formatDate(This,var1,bstr,var2,pbstr) (This)->lpVtbl->formatDate(This,var1,bstr,var2,pbstr)
#define IXTLRuntime_formatTime(This,var1,bstr,var2,pbstr) (This)->lpVtbl->formatTime(This,var1,bstr,var2,pbstr)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXTLRuntime_uniqueID_Proxy(
    IXTLRuntime* This,
    IXMLDOMNode *pNode,
    LONG *pID);
void __RPC_STUB IXTLRuntime_uniqueID_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXTLRuntime_depth_Proxy(
    IXTLRuntime* This,
    IXMLDOMNode *pNode,
    LONG *pDepth);
void __RPC_STUB IXTLRuntime_depth_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXTLRuntime_childNumber_Proxy(
    IXTLRuntime* This,
    IXMLDOMNode *pNode,
    LONG *pNumber);
void __RPC_STUB IXTLRuntime_childNumber_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXTLRuntime_ancestorChildNumber_Proxy(
    IXTLRuntime* This,
    BSTR bstr,
    IXMLDOMNode *pNode,
    LONG *pNumber);
void __RPC_STUB IXTLRuntime_ancestorChildNumber_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXTLRuntime_absoluteChildNumber_Proxy(
    IXTLRuntime* This,
    IXMLDOMNode *pNode,
    LONG *pNumber);
void __RPC_STUB IXTLRuntime_absoluteChildNumber_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXTLRuntime_formatIndex_Proxy(
    IXTLRuntime* This,
    LONG lIndex,
    BSTR bstr,
    BSTR *pbstr);
void __RPC_STUB IXTLRuntime_formatIndex_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXTLRuntime_formatNumber_Proxy(
    IXTLRuntime* This,
    double dblNumber,
    BSTR bstr,
    BSTR *pbstr);
void __RPC_STUB IXTLRuntime_formatNumber_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXTLRuntime_formatDate_Proxy(
    IXTLRuntime* This,
    VARIANT var1,
    BSTR bstr,
    VARIANT var2,
    BSTR *pbstr);
void __RPC_STUB IXTLRuntime_formatDate_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXTLRuntime_formatTime_Proxy(
    IXTLRuntime* This,
    VARIANT var1,
    BSTR bstr,
    VARIANT var2,
    BSTR *pbstr);
void __RPC_STUB IXTLRuntime_formatTime_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXTLRuntime_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IDSOControl interface
 */
#ifndef __IDSOControl_INTERFACE_DEFINED__
#define __IDSOControl_INTERFACE_DEFINED__

DEFINE_GUID(IID_IDSOControl, 0x310afa62, 0x0575, 0x11d2, 0x9c,0xa9, 0x00,0x60,0xb0,0xec,0x3d,0x39);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IDSOControl : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_XMLDocument(
        IXMLDOMDocument **ppDoc) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_XMLDocument(
        IXMLDOMDocument *ppDoc) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_JavaDSOCompatible(
        BOOL *fJavaDSOCompatible) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_JavaDSOCompatible(
        BOOL fJavaDSOCompatible) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_readyState(
        LONG *state) = 0;

};
#else
typedef struct IDSOControlVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IDSOControl* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IDSOControl* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IDSOControl* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IDSOControl* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IDSOControl* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IDSOControl* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IDSOControl* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IDSOControl methods ***/
    HRESULT (STDMETHODCALLTYPE *get_XMLDocument)(
        IDSOControl* This,
        IXMLDOMDocument **ppDoc);

    HRESULT (STDMETHODCALLTYPE *put_XMLDocument)(
        IDSOControl* This,
        IXMLDOMDocument *ppDoc);

    HRESULT (STDMETHODCALLTYPE *get_JavaDSOCompatible)(
        IDSOControl* This,
        BOOL *fJavaDSOCompatible);

    HRESULT (STDMETHODCALLTYPE *put_JavaDSOCompatible)(
        IDSOControl* This,
        BOOL fJavaDSOCompatible);

    HRESULT (STDMETHODCALLTYPE *get_readyState)(
        IDSOControl* This,
        LONG *state);

    END_INTERFACE
} IDSOControlVtbl;
interface IDSOControl {
    CONST_VTBL IDSOControlVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IDSOControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IDSOControl_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IDSOControl_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IDSOControl_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IDSOControl_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IDSOControl_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IDSOControl_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IDSOControl methods ***/
#define IDSOControl_get_XMLDocument(This,ppDoc) (This)->lpVtbl->get_XMLDocument(This,ppDoc)
#define IDSOControl_put_XMLDocument(This,ppDoc) (This)->lpVtbl->put_XMLDocument(This,ppDoc)
#define IDSOControl_get_JavaDSOCompatible(This,fJavaDSOCompatible) (This)->lpVtbl->get_JavaDSOCompatible(This,fJavaDSOCompatible)
#define IDSOControl_put_JavaDSOCompatible(This,fJavaDSOCompatible) (This)->lpVtbl->put_JavaDSOCompatible(This,fJavaDSOCompatible)
#define IDSOControl_get_readyState(This,state) (This)->lpVtbl->get_readyState(This,state)
#endif

#endif

HRESULT STDMETHODCALLTYPE IDSOControl_get_XMLDocument_Proxy(
    IDSOControl* This,
    IXMLDOMDocument **ppDoc);
void __RPC_STUB IDSOControl_get_XMLDocument_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IDSOControl_put_XMLDocument_Proxy(
    IDSOControl* This,
    IXMLDOMDocument *ppDoc);
void __RPC_STUB IDSOControl_put_XMLDocument_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IDSOControl_get_JavaDSOCompatible_Proxy(
    IDSOControl* This,
    BOOL *fJavaDSOCompatible);
void __RPC_STUB IDSOControl_get_JavaDSOCompatible_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IDSOControl_put_JavaDSOCompatible_Proxy(
    IDSOControl* This,
    BOOL fJavaDSOCompatible);
void __RPC_STUB IDSOControl_put_JavaDSOCompatible_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IDSOControl_get_readyState_Proxy(
    IDSOControl* This,
    LONG *state);
void __RPC_STUB IDSOControl_get_readyState_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IDSOControl_INTERFACE_DEFINED__ */

/*****************************************************************************
 * XMLDOMDocumentEvents dispinterface
 */
#ifndef __XMLDOMDocumentEvents_DISPINTERFACE_DEFINED__
#define __XMLDOMDocumentEvents_DISPINTERFACE_DEFINED__

DEFINE_GUID(DIID_XMLDOMDocumentEvents, 0x3efaa427, 0x272f, 0x11d2, 0x83,0x6f, 0x00,0x00,0xf8,0x7a,0x77,0x82);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface XMLDOMDocumentEvents : public IDispatch
{
};
#else
typedef struct XMLDOMDocumentEventsVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        XMLDOMDocumentEvents* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        XMLDOMDocumentEvents* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        XMLDOMDocumentEvents* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        XMLDOMDocumentEvents* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        XMLDOMDocumentEvents* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        XMLDOMDocumentEvents* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        XMLDOMDocumentEvents* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    END_INTERFACE
} XMLDOMDocumentEventsVtbl;
interface XMLDOMDocumentEvents {
    CONST_VTBL XMLDOMDocumentEventsVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define XMLDOMDocumentEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define XMLDOMDocumentEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
#define XMLDOMDocumentEvents_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define XMLDOMDocumentEvents_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define XMLDOMDocumentEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define XMLDOMDocumentEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define XMLDOMDocumentEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
#endif

#endif

#endif  /* __XMLDOMDocumentEvents_DISPINTERFACE_DEFINED__ */

/*****************************************************************************
 * IXSLProcessor interface
 */
#ifndef __IXSLProcessor_INTERFACE_DEFINED__
#define __IXSLProcessor_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXSLProcessor, 0x2933bf92, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXSLProcessor : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE put_input(
        VARIANT var) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_input(
        VARIANT *var) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_ownerTemplate(
        IXSLTemplate **ppTemplate) = 0;

    virtual HRESULT STDMETHODCALLTYPE setStartMode(
        BSTR p,
        BSTR uri) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_startMode(
        BSTR *p) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_startModeURI(
        BSTR *uri) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_output(
        VARIANT var) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_output(
        VARIANT *var) = 0;

    virtual HRESULT STDMETHODCALLTYPE transform(
        VARIANT_BOOL *pbool) = 0;

    virtual HRESULT STDMETHODCALLTYPE reset(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_readyState(
        LONG *pstate) = 0;

    virtual HRESULT STDMETHODCALLTYPE addParameter(
        BSTR p,
        VARIANT var,
        BSTR uri) = 0;

    virtual HRESULT STDMETHODCALLTYPE addObject(
        IDispatch *obj,
        BSTR uri) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_stylesheet(
        IXMLDOMNode **node) = 0;

};
#else
typedef struct IXSLProcessorVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXSLProcessor* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXSLProcessor* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXSLProcessor* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXSLProcessor* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXSLProcessor* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXSLProcessor* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXSLProcessor* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IXSLProcessor methods ***/
    HRESULT (STDMETHODCALLTYPE *put_input)(
        IXSLProcessor* This,
        VARIANT var);

    HRESULT (STDMETHODCALLTYPE *get_input)(
        IXSLProcessor* This,
        VARIANT *var);

    HRESULT (STDMETHODCALLTYPE *get_ownerTemplate)(
        IXSLProcessor* This,
        IXSLTemplate **ppTemplate);

    HRESULT (STDMETHODCALLTYPE *setStartMode)(
        IXSLProcessor* This,
        BSTR p,
        BSTR uri);

    HRESULT (STDMETHODCALLTYPE *get_startMode)(
        IXSLProcessor* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_startModeURI)(
        IXSLProcessor* This,
        BSTR *uri);

    HRESULT (STDMETHODCALLTYPE *put_output)(
        IXSLProcessor* This,
        VARIANT var);

    HRESULT (STDMETHODCALLTYPE *get_output)(
        IXSLProcessor* This,
        VARIANT *var);

    HRESULT (STDMETHODCALLTYPE *transform)(
        IXSLProcessor* This,
        VARIANT_BOOL *pbool);

    HRESULT (STDMETHODCALLTYPE *reset)(
        IXSLProcessor* This);

    HRESULT (STDMETHODCALLTYPE *get_readyState)(
        IXSLProcessor* This,
        LONG *pstate);

    HRESULT (STDMETHODCALLTYPE *addParameter)(
        IXSLProcessor* This,
        BSTR p,
        VARIANT var,
        BSTR uri);

    HRESULT (STDMETHODCALLTYPE *addObject)(
        IXSLProcessor* This,
        IDispatch *obj,
        BSTR uri);

    HRESULT (STDMETHODCALLTYPE *get_stylesheet)(
        IXSLProcessor* This,
        IXMLDOMNode **node);

    END_INTERFACE
} IXSLProcessorVtbl;
interface IXSLProcessor {
    CONST_VTBL IXSLProcessorVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXSLProcessor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXSLProcessor_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXSLProcessor_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXSLProcessor_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXSLProcessor_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXSLProcessor_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXSLProcessor_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXSLProcessor methods ***/
#define IXSLProcessor_put_input(This,var) (This)->lpVtbl->put_input(This,var)
#define IXSLProcessor_get_input(This,var) (This)->lpVtbl->get_input(This,var)
#define IXSLProcessor_get_ownerTemplate(This,ppTemplate) (This)->lpVtbl->get_ownerTemplate(This,ppTemplate)
#define IXSLProcessor_setStartMode(This,p,uri) (This)->lpVtbl->setStartMode(This,p,uri)
#define IXSLProcessor_get_startMode(This,p) (This)->lpVtbl->get_startMode(This,p)
#define IXSLProcessor_get_startModeURI(This,uri) (This)->lpVtbl->get_startModeURI(This,uri)
#define IXSLProcessor_put_output(This,var) (This)->lpVtbl->put_output(This,var)
#define IXSLProcessor_get_output(This,var) (This)->lpVtbl->get_output(This,var)
#define IXSLProcessor_transform(This,pbool) (This)->lpVtbl->transform(This,pbool)
#define IXSLProcessor_reset(This) (This)->lpVtbl->reset(This)
#define IXSLProcessor_get_readyState(This,pstate) (This)->lpVtbl->get_readyState(This,pstate)
#define IXSLProcessor_addParameter(This,p,var,uri) (This)->lpVtbl->addParameter(This,p,var,uri)
#define IXSLProcessor_addObject(This,obj,uri) (This)->lpVtbl->addObject(This,obj,uri)
#define IXSLProcessor_get_stylesheet(This,node) (This)->lpVtbl->get_stylesheet(This,node)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXSLProcessor_put_input_Proxy(
    IXSLProcessor* This,
    VARIANT var);
void __RPC_STUB IXSLProcessor_put_input_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXSLProcessor_get_input_Proxy(
    IXSLProcessor* This,
    VARIANT *var);
void __RPC_STUB IXSLProcessor_get_input_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXSLProcessor_get_ownerTemplate_Proxy(
    IXSLProcessor* This,
    IXSLTemplate **ppTemplate);
void __RPC_STUB IXSLProcessor_get_ownerTemplate_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXSLProcessor_setStartMode_Proxy(
    IXSLProcessor* This,
    BSTR p,
    BSTR uri);
void __RPC_STUB IXSLProcessor_setStartMode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXSLProcessor_get_startMode_Proxy(
    IXSLProcessor* This,
    BSTR *p);
void __RPC_STUB IXSLProcessor_get_startMode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXSLProcessor_get_startModeURI_Proxy(
    IXSLProcessor* This,
    BSTR *uri);
void __RPC_STUB IXSLProcessor_get_startModeURI_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXSLProcessor_put_output_Proxy(
    IXSLProcessor* This,
    VARIANT var);
void __RPC_STUB IXSLProcessor_put_output_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXSLProcessor_get_output_Proxy(
    IXSLProcessor* This,
    VARIANT *var);
void __RPC_STUB IXSLProcessor_get_output_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXSLProcessor_transform_Proxy(
    IXSLProcessor* This,
    VARIANT_BOOL *pbool);
void __RPC_STUB IXSLProcessor_transform_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXSLProcessor_reset_Proxy(
    IXSLProcessor* This);
void __RPC_STUB IXSLProcessor_reset_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXSLProcessor_get_readyState_Proxy(
    IXSLProcessor* This,
    LONG *pstate);
void __RPC_STUB IXSLProcessor_get_readyState_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXSLProcessor_addParameter_Proxy(
    IXSLProcessor* This,
    BSTR p,
    VARIANT var,
    BSTR uri);
void __RPC_STUB IXSLProcessor_addParameter_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXSLProcessor_addObject_Proxy(
    IXSLProcessor* This,
    IDispatch *obj,
    BSTR uri);
void __RPC_STUB IXSLProcessor_addObject_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXSLProcessor_get_stylesheet_Proxy(
    IXSLProcessor* This,
    IXMLDOMNode **node);
void __RPC_STUB IXSLProcessor_get_stylesheet_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXSLProcessor_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXSLTemplate interface
 */
#ifndef __IXSLTemplate_INTERFACE_DEFINED__
#define __IXSLTemplate_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXSLTemplate, 0x2933bf93, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXSLTemplate : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE putref_stylesheet(
        IXMLDOMNode *node) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_stylesheet(
        IXMLDOMNode **node) = 0;

    virtual HRESULT STDMETHODCALLTYPE createProcessor(
        IXSLProcessor **ppProcessor) = 0;

};
#else
typedef struct IXSLTemplateVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXSLTemplate* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXSLTemplate* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXSLTemplate* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXSLTemplate* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXSLTemplate* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXSLTemplate* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXSLTemplate* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IXSLTemplate methods ***/
    HRESULT (STDMETHODCALLTYPE *putref_stylesheet)(
        IXSLTemplate* This,
        IXMLDOMNode *node);

    HRESULT (STDMETHODCALLTYPE *get_stylesheet)(
        IXSLTemplate* This,
        IXMLDOMNode **node);

    HRESULT (STDMETHODCALLTYPE *createProcessor)(
        IXSLTemplate* This,
        IXSLProcessor **ppProcessor);

    END_INTERFACE
} IXSLTemplateVtbl;
interface IXSLTemplate {
    CONST_VTBL IXSLTemplateVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXSLTemplate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXSLTemplate_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXSLTemplate_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXSLTemplate_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXSLTemplate_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXSLTemplate_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXSLTemplate_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXSLTemplate methods ***/
#define IXSLTemplate_putref_stylesheet(This,node) (This)->lpVtbl->putref_stylesheet(This,node)
#define IXSLTemplate_get_stylesheet(This,node) (This)->lpVtbl->get_stylesheet(This,node)
#define IXSLTemplate_createProcessor(This,ppProcessor) (This)->lpVtbl->createProcessor(This,ppProcessor)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXSLTemplate_putref_stylesheet_Proxy(
    IXSLTemplate* This,
    IXMLDOMNode *node);
void __RPC_STUB IXSLTemplate_putref_stylesheet_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXSLTemplate_get_stylesheet_Proxy(
    IXSLTemplate* This,
    IXMLDOMNode **node);
void __RPC_STUB IXSLTemplate_get_stylesheet_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXSLTemplate_createProcessor_Proxy(
    IXSLTemplate* This,
    IXSLProcessor **ppProcessor);
void __RPC_STUB IXSLTemplate_createProcessor_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXSLTemplate_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLHTTPRequest interface
 */
#ifndef __IXMLHTTPRequest_INTERFACE_DEFINED__
#define __IXMLHTTPRequest_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLHTTPRequest, 0xed8c108d, 0x4349, 0x11d2, 0x91,0xa4, 0x00,0xc0,0x4f,0x79,0x69,0xe8);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLHTTPRequest : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE open(
        BSTR bstrMethod,
        BSTR bstrUrl,
        VARIANT varAsync,
        VARIANT username,
        VARIANT password) = 0;

    virtual HRESULT STDMETHODCALLTYPE setRequestHeader(
        BSTR bstrHeader,
        BSTR bstrValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE getResponseHeader(
        BSTR bstrHeader,
        BSTR *value) = 0;

    virtual HRESULT STDMETHODCALLTYPE getAllResponseHeaders(
        BSTR *pbstrHeaders) = 0;

    virtual HRESULT STDMETHODCALLTYPE send(
        VARIANT body) = 0;

    virtual HRESULT STDMETHODCALLTYPE abort(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_status(
        LONG *pStatus) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_statusText(
        BSTR *pStatus) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_responseXML(
        IDispatch **pBody) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_responseText(
        BSTR *pBody) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_responseBody(
        VARIANT *pBody) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_responseStream(
        VARIANT *pBody) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_readyState(
        LONG *pState) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_onreadystatechange(
        IDispatch *pReadyStateSink) = 0;

};
#else
typedef struct IXMLHTTPRequestVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXMLHTTPRequest* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXMLHTTPRequest* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXMLHTTPRequest* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXMLHTTPRequest* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXMLHTTPRequest* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXMLHTTPRequest* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXMLHTTPRequest* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IXMLHTTPRequest methods ***/
    HRESULT (STDMETHODCALLTYPE *open)(
        IXMLHTTPRequest* This,
        BSTR bstrMethod,
        BSTR bstrUrl,
        VARIANT varAsync,
        VARIANT username,
        VARIANT password);

    HRESULT (STDMETHODCALLTYPE *setRequestHeader)(
        IXMLHTTPRequest* This,
        BSTR bstrHeader,
        BSTR bstrValue);

    HRESULT (STDMETHODCALLTYPE *getResponseHeader)(
        IXMLHTTPRequest* This,
        BSTR bstrHeader,
        BSTR *value);

    HRESULT (STDMETHODCALLTYPE *getAllResponseHeaders)(
        IXMLHTTPRequest* This,
        BSTR *pbstrHeaders);

    HRESULT (STDMETHODCALLTYPE *send)(
        IXMLHTTPRequest* This,
        VARIANT body);

    HRESULT (STDMETHODCALLTYPE *abort)(
        IXMLHTTPRequest* This);

    HRESULT (STDMETHODCALLTYPE *get_status)(
        IXMLHTTPRequest* This,
        LONG *pStatus);

    HRESULT (STDMETHODCALLTYPE *get_statusText)(
        IXMLHTTPRequest* This,
        BSTR *pStatus);

    HRESULT (STDMETHODCALLTYPE *get_responseXML)(
        IXMLHTTPRequest* This,
        IDispatch **pBody);

    HRESULT (STDMETHODCALLTYPE *get_responseText)(
        IXMLHTTPRequest* This,
        BSTR *pBody);

    HRESULT (STDMETHODCALLTYPE *get_responseBody)(
        IXMLHTTPRequest* This,
        VARIANT *pBody);

    HRESULT (STDMETHODCALLTYPE *get_responseStream)(
        IXMLHTTPRequest* This,
        VARIANT *pBody);

    HRESULT (STDMETHODCALLTYPE *get_readyState)(
        IXMLHTTPRequest* This,
        LONG *pState);

    HRESULT (STDMETHODCALLTYPE *put_onreadystatechange)(
        IXMLHTTPRequest* This,
        IDispatch *pReadyStateSink);

    END_INTERFACE
} IXMLHTTPRequestVtbl;
interface IXMLHTTPRequest {
    CONST_VTBL IXMLHTTPRequestVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLHTTPRequest_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXMLHTTPRequest_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXMLHTTPRequest_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXMLHTTPRequest_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXMLHTTPRequest_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXMLHTTPRequest_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXMLHTTPRequest_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLHTTPRequest methods ***/
#define IXMLHTTPRequest_open(This,bstrMethod,bstrUrl,varAsync,username,password) (This)->lpVtbl->open(This,bstrMethod,bstrUrl,varAsync,username,password)
#define IXMLHTTPRequest_setRequestHeader(This,bstrHeader,bstrValue) (This)->lpVtbl->setRequestHeader(This,bstrHeader,bstrValue)
#define IXMLHTTPRequest_getResponseHeader(This,bstrHeader,value) (This)->lpVtbl->getResponseHeader(This,bstrHeader,value)
#define IXMLHTTPRequest_getAllResponseHeaders(This,pbstrHeaders) (This)->lpVtbl->getAllResponseHeaders(This,pbstrHeaders)
#define IXMLHTTPRequest_send(This,body) (This)->lpVtbl->send(This,body)
#define IXMLHTTPRequest_abort(This) (This)->lpVtbl->abort(This)
#define IXMLHTTPRequest_get_status(This,pStatus) (This)->lpVtbl->get_status(This,pStatus)
#define IXMLHTTPRequest_get_statusText(This,pStatus) (This)->lpVtbl->get_statusText(This,pStatus)
#define IXMLHTTPRequest_get_responseXML(This,pBody) (This)->lpVtbl->get_responseXML(This,pBody)
#define IXMLHTTPRequest_get_responseText(This,pBody) (This)->lpVtbl->get_responseText(This,pBody)
#define IXMLHTTPRequest_get_responseBody(This,pBody) (This)->lpVtbl->get_responseBody(This,pBody)
#define IXMLHTTPRequest_get_responseStream(This,pBody) (This)->lpVtbl->get_responseStream(This,pBody)
#define IXMLHTTPRequest_get_readyState(This,pState) (This)->lpVtbl->get_readyState(This,pState)
#define IXMLHTTPRequest_put_onreadystatechange(This,pReadyStateSink) (This)->lpVtbl->put_onreadystatechange(This,pReadyStateSink)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLHTTPRequest_open_Proxy(
    IXMLHTTPRequest* This,
    BSTR bstrMethod,
    BSTR bstrUrl,
    VARIANT varAsync,
    VARIANT username,
    VARIANT password);
void __RPC_STUB IXMLHTTPRequest_open_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLHTTPRequest_setRequestHeader_Proxy(
    IXMLHTTPRequest* This,
    BSTR bstrHeader,
    BSTR bstrValue);
void __RPC_STUB IXMLHTTPRequest_setRequestHeader_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLHTTPRequest_getResponseHeader_Proxy(
    IXMLHTTPRequest* This,
    BSTR bstrHeader,
    BSTR *value);
void __RPC_STUB IXMLHTTPRequest_getResponseHeader_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLHTTPRequest_getAllResponseHeaders_Proxy(
    IXMLHTTPRequest* This,
    BSTR *pbstrHeaders);
void __RPC_STUB IXMLHTTPRequest_getAllResponseHeaders_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLHTTPRequest_send_Proxy(
    IXMLHTTPRequest* This,
    VARIANT body);
void __RPC_STUB IXMLHTTPRequest_send_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLHTTPRequest_abort_Proxy(
    IXMLHTTPRequest* This);
void __RPC_STUB IXMLHTTPRequest_abort_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLHTTPRequest_get_status_Proxy(
    IXMLHTTPRequest* This,
    LONG *pStatus);
void __RPC_STUB IXMLHTTPRequest_get_status_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLHTTPRequest_get_statusText_Proxy(
    IXMLHTTPRequest* This,
    BSTR *pStatus);
void __RPC_STUB IXMLHTTPRequest_get_statusText_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLHTTPRequest_get_responseXML_Proxy(
    IXMLHTTPRequest* This,
    IDispatch **pBody);
void __RPC_STUB IXMLHTTPRequest_get_responseXML_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLHTTPRequest_get_responseText_Proxy(
    IXMLHTTPRequest* This,
    BSTR *pBody);
void __RPC_STUB IXMLHTTPRequest_get_responseText_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLHTTPRequest_get_responseBody_Proxy(
    IXMLHTTPRequest* This,
    VARIANT *pBody);
void __RPC_STUB IXMLHTTPRequest_get_responseBody_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLHTTPRequest_get_responseStream_Proxy(
    IXMLHTTPRequest* This,
    VARIANT *pBody);
void __RPC_STUB IXMLHTTPRequest_get_responseStream_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLHTTPRequest_get_readyState_Proxy(
    IXMLHTTPRequest* This,
    LONG *pState);
void __RPC_STUB IXMLHTTPRequest_get_readyState_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLHTTPRequest_put_onreadystatechange_Proxy(
    IXMLHTTPRequest* This,
    IDispatch *pReadyStateSink);
void __RPC_STUB IXMLHTTPRequest_put_onreadystatechange_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLHTTPRequest_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IServerXMLHTTPRequest interface
 */
#ifndef __IServerXMLHTTPRequest_INTERFACE_DEFINED__
#define __IServerXMLHTTPRequest_INTERFACE_DEFINED__

typedef enum _SERVERXMLHTTP_OPTION {
    SXH_OPTION_URL = -1,
    SXH_OPTION_URL_CODEPAGE = 0,
    SXH_OPTION_ESCAPE_PERCENT_IN_URL = 1,
    SXH_OPTION_IGNORE_SERVER_SSL_CERT_ERROR_FLAGS = 2,
    SXH_OPTION_SELECT_CLIENT_SSL_CERT = 3
} SERVERXMLHTTP_OPTION;
DEFINE_GUID(IID_IServerXMLHTTPRequest, 0x2e9196bf, 0x13ba, 0x4dd4, 0x91,0xca, 0x6c,0x57,0x1f,0x28,0x14,0x95);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IServerXMLHTTPRequest : public IXMLHTTPRequest
{
    virtual HRESULT STDMETHODCALLTYPE setTimeouts(
        LONG resolveTimeout,
        LONG connectTimeout,
        LONG sendTimeout,
        LONG receiveTimeout) = 0;

    virtual HRESULT STDMETHODCALLTYPE waitForResponse(
        VARIANT timeoutInSeconds,
        VARIANT_BOOL *isSuccessful) = 0;

    virtual HRESULT STDMETHODCALLTYPE getOption(
        SERVERXMLHTTP_OPTION option,
        VARIANT *value) = 0;

    virtual HRESULT STDMETHODCALLTYPE setOption(
        SERVERXMLHTTP_OPTION option,
        VARIANT value) = 0;

};
#else
typedef struct IServerXMLHTTPRequestVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IServerXMLHTTPRequest* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IServerXMLHTTPRequest* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IServerXMLHTTPRequest* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IServerXMLHTTPRequest* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IServerXMLHTTPRequest* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IServerXMLHTTPRequest* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IServerXMLHTTPRequest* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IXMLHTTPRequest methods ***/
    HRESULT (STDMETHODCALLTYPE *open)(
        IServerXMLHTTPRequest* This,
        BSTR bstrMethod,
        BSTR bstrUrl,
        VARIANT varAsync,
        VARIANT username,
        VARIANT password);

    HRESULT (STDMETHODCALLTYPE *setRequestHeader)(
        IServerXMLHTTPRequest* This,
        BSTR bstrHeader,
        BSTR bstrValue);

    HRESULT (STDMETHODCALLTYPE *getResponseHeader)(
        IServerXMLHTTPRequest* This,
        BSTR bstrHeader,
        BSTR *value);

    HRESULT (STDMETHODCALLTYPE *getAllResponseHeaders)(
        IServerXMLHTTPRequest* This,
        BSTR *pbstrHeaders);

    HRESULT (STDMETHODCALLTYPE *send)(
        IServerXMLHTTPRequest* This,
        VARIANT body);

    HRESULT (STDMETHODCALLTYPE *abort)(
        IServerXMLHTTPRequest* This);

    HRESULT (STDMETHODCALLTYPE *get_status)(
        IServerXMLHTTPRequest* This,
        LONG *pStatus);

    HRESULT (STDMETHODCALLTYPE *get_statusText)(
        IServerXMLHTTPRequest* This,
        BSTR *pStatus);

    HRESULT (STDMETHODCALLTYPE *get_responseXML)(
        IServerXMLHTTPRequest* This,
        IDispatch **pBody);

    HRESULT (STDMETHODCALLTYPE *get_responseText)(
        IServerXMLHTTPRequest* This,
        BSTR *pBody);

    HRESULT (STDMETHODCALLTYPE *get_responseBody)(
        IServerXMLHTTPRequest* This,
        VARIANT *pBody);

    HRESULT (STDMETHODCALLTYPE *get_responseStream)(
        IServerXMLHTTPRequest* This,
        VARIANT *pBody);

    HRESULT (STDMETHODCALLTYPE *get_readyState)(
        IServerXMLHTTPRequest* This,
        LONG *pState);

    HRESULT (STDMETHODCALLTYPE *put_onreadystatechange)(
        IServerXMLHTTPRequest* This,
        IDispatch *pReadyStateSink);

    /*** IServerXMLHTTPRequest methods ***/
    HRESULT (STDMETHODCALLTYPE *setTimeouts)(
        IServerXMLHTTPRequest* This,
        LONG resolveTimeout,
        LONG connectTimeout,
        LONG sendTimeout,
        LONG receiveTimeout);

    HRESULT (STDMETHODCALLTYPE *waitForResponse)(
        IServerXMLHTTPRequest* This,
        VARIANT timeoutInSeconds,
        VARIANT_BOOL *isSuccessful);

    HRESULT (STDMETHODCALLTYPE *getOption)(
        IServerXMLHTTPRequest* This,
        SERVERXMLHTTP_OPTION option,
        VARIANT *value);

    HRESULT (STDMETHODCALLTYPE *setOption)(
        IServerXMLHTTPRequest* This,
        SERVERXMLHTTP_OPTION option,
        VARIANT value);

    END_INTERFACE
} IServerXMLHTTPRequestVtbl;
interface IServerXMLHTTPRequest {
    CONST_VTBL IServerXMLHTTPRequestVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IServerXMLHTTPRequest_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IServerXMLHTTPRequest_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IServerXMLHTTPRequest_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IServerXMLHTTPRequest_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IServerXMLHTTPRequest_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IServerXMLHTTPRequest_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IServerXMLHTTPRequest_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLHTTPRequest methods ***/
#define IServerXMLHTTPRequest_open(This,bstrMethod,bstrUrl,varAsync,username,password) (This)->lpVtbl->open(This,bstrMethod,bstrUrl,varAsync,username,password)
#define IServerXMLHTTPRequest_setRequestHeader(This,bstrHeader,bstrValue) (This)->lpVtbl->setRequestHeader(This,bstrHeader,bstrValue)
#define IServerXMLHTTPRequest_getResponseHeader(This,bstrHeader,value) (This)->lpVtbl->getResponseHeader(This,bstrHeader,value)
#define IServerXMLHTTPRequest_getAllResponseHeaders(This,pbstrHeaders) (This)->lpVtbl->getAllResponseHeaders(This,pbstrHeaders)
#define IServerXMLHTTPRequest_send(This,body) (This)->lpVtbl->send(This,body)
#define IServerXMLHTTPRequest_abort(This) (This)->lpVtbl->abort(This)
#define IServerXMLHTTPRequest_get_status(This,pStatus) (This)->lpVtbl->get_status(This,pStatus)
#define IServerXMLHTTPRequest_get_statusText(This,pStatus) (This)->lpVtbl->get_statusText(This,pStatus)
#define IServerXMLHTTPRequest_get_responseXML(This,pBody) (This)->lpVtbl->get_responseXML(This,pBody)
#define IServerXMLHTTPRequest_get_responseText(This,pBody) (This)->lpVtbl->get_responseText(This,pBody)
#define IServerXMLHTTPRequest_get_responseBody(This,pBody) (This)->lpVtbl->get_responseBody(This,pBody)
#define IServerXMLHTTPRequest_get_responseStream(This,pBody) (This)->lpVtbl->get_responseStream(This,pBody)
#define IServerXMLHTTPRequest_get_readyState(This,pState) (This)->lpVtbl->get_readyState(This,pState)
#define IServerXMLHTTPRequest_put_onreadystatechange(This,pReadyStateSink) (This)->lpVtbl->put_onreadystatechange(This,pReadyStateSink)
/*** IServerXMLHTTPRequest methods ***/
#define IServerXMLHTTPRequest_setTimeouts(This,resolveTimeout,connectTimeout,sendTimeout,receiveTimeout) (This)->lpVtbl->setTimeouts(This,resolveTimeout,connectTimeout,sendTimeout,receiveTimeout)
#define IServerXMLHTTPRequest_waitForResponse(This,timeoutInSeconds,isSuccessful) (This)->lpVtbl->waitForResponse(This,timeoutInSeconds,isSuccessful)
#define IServerXMLHTTPRequest_getOption(This,option,value) (This)->lpVtbl->getOption(This,option,value)
#define IServerXMLHTTPRequest_setOption(This,option,value) (This)->lpVtbl->setOption(This,option,value)
#endif

#endif

HRESULT STDMETHODCALLTYPE IServerXMLHTTPRequest_setTimeouts_Proxy(
    IServerXMLHTTPRequest* This,
    LONG resolveTimeout,
    LONG connectTimeout,
    LONG sendTimeout,
    LONG receiveTimeout);
void __RPC_STUB IServerXMLHTTPRequest_setTimeouts_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IServerXMLHTTPRequest_waitForResponse_Proxy(
    IServerXMLHTTPRequest* This,
    VARIANT timeoutInSeconds,
    VARIANT_BOOL *isSuccessful);
void __RPC_STUB IServerXMLHTTPRequest_waitForResponse_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IServerXMLHTTPRequest_getOption_Proxy(
    IServerXMLHTTPRequest* This,
    SERVERXMLHTTP_OPTION option,
    VARIANT *value);
void __RPC_STUB IServerXMLHTTPRequest_getOption_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IServerXMLHTTPRequest_setOption_Proxy(
    IServerXMLHTTPRequest* This,
    SERVERXMLHTTP_OPTION option,
    VARIANT value);
void __RPC_STUB IServerXMLHTTPRequest_setOption_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IServerXMLHTTPRequest_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IServerXMLHTTPRequest2 interface
 */
#ifndef __IServerXMLHTTPRequest2_INTERFACE_DEFINED__
#define __IServerXMLHTTPRequest2_INTERFACE_DEFINED__

typedef enum _SXH_PROXY_SETTING {
    SXH_PROXY_SET_DEFAULT = 0,
    SXH_PROXY_SET_PRECONFIG = 0,
    SXH_PROXY_SET_DIRECT = 1,
    SXH_PROXY_SET_PROXY = 2
} SXH_PROXY_SETTING;
DEFINE_GUID(IID_IServerXMLHTTPRequest2, 0x2e01311b, 0xc322, 0x4b0a, 0xbd,0x77, 0xb9,0x0c,0xfd,0xc8,0xdc,0xe7);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IServerXMLHTTPRequest2 : public IServerXMLHTTPRequest
{
    virtual HRESULT STDMETHODCALLTYPE setProxy(
        SXH_PROXY_SETTING proxySetting,
        VARIANT varProxyServer,
        VARIANT varBypassList) = 0;

    virtual HRESULT STDMETHODCALLTYPE setProxyCredentials(
        BSTR bstrUserName,
        BSTR bstrPassword) = 0;

};
#else
typedef struct IServerXMLHTTPRequest2Vtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IServerXMLHTTPRequest2* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IServerXMLHTTPRequest2* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IServerXMLHTTPRequest2* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IServerXMLHTTPRequest2* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IServerXMLHTTPRequest2* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IServerXMLHTTPRequest2* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IServerXMLHTTPRequest2* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IXMLHTTPRequest methods ***/
    HRESULT (STDMETHODCALLTYPE *open)(
        IServerXMLHTTPRequest2* This,
        BSTR bstrMethod,
        BSTR bstrUrl,
        VARIANT varAsync,
        VARIANT username,
        VARIANT password);

    HRESULT (STDMETHODCALLTYPE *setRequestHeader)(
        IServerXMLHTTPRequest2* This,
        BSTR bstrHeader,
        BSTR bstrValue);

    HRESULT (STDMETHODCALLTYPE *getResponseHeader)(
        IServerXMLHTTPRequest2* This,
        BSTR bstrHeader,
        BSTR *value);

    HRESULT (STDMETHODCALLTYPE *getAllResponseHeaders)(
        IServerXMLHTTPRequest2* This,
        BSTR *pbstrHeaders);

    HRESULT (STDMETHODCALLTYPE *send)(
        IServerXMLHTTPRequest2* This,
        VARIANT body);

    HRESULT (STDMETHODCALLTYPE *abort)(
        IServerXMLHTTPRequest2* This);

    HRESULT (STDMETHODCALLTYPE *get_status)(
        IServerXMLHTTPRequest2* This,
        LONG *pStatus);

    HRESULT (STDMETHODCALLTYPE *get_statusText)(
        IServerXMLHTTPRequest2* This,
        BSTR *pStatus);

    HRESULT (STDMETHODCALLTYPE *get_responseXML)(
        IServerXMLHTTPRequest2* This,
        IDispatch **pBody);

    HRESULT (STDMETHODCALLTYPE *get_responseText)(
        IServerXMLHTTPRequest2* This,
        BSTR *pBody);

    HRESULT (STDMETHODCALLTYPE *get_responseBody)(
        IServerXMLHTTPRequest2* This,
        VARIANT *pBody);

    HRESULT (STDMETHODCALLTYPE *get_responseStream)(
        IServerXMLHTTPRequest2* This,
        VARIANT *pBody);

    HRESULT (STDMETHODCALLTYPE *get_readyState)(
        IServerXMLHTTPRequest2* This,
        LONG *pState);

    HRESULT (STDMETHODCALLTYPE *put_onreadystatechange)(
        IServerXMLHTTPRequest2* This,
        IDispatch *pReadyStateSink);

    /*** IServerXMLHTTPRequest methods ***/
    HRESULT (STDMETHODCALLTYPE *setTimeouts)(
        IServerXMLHTTPRequest2* This,
        LONG resolveTimeout,
        LONG connectTimeout,
        LONG sendTimeout,
        LONG receiveTimeout);

    HRESULT (STDMETHODCALLTYPE *waitForResponse)(
        IServerXMLHTTPRequest2* This,
        VARIANT timeoutInSeconds,
        VARIANT_BOOL *isSuccessful);

    HRESULT (STDMETHODCALLTYPE *getOption)(
        IServerXMLHTTPRequest2* This,
        SERVERXMLHTTP_OPTION option,
        VARIANT *value);

    HRESULT (STDMETHODCALLTYPE *setOption)(
        IServerXMLHTTPRequest2* This,
        SERVERXMLHTTP_OPTION option,
        VARIANT value);

    /*** IServerXMLHTTPRequest2 methods ***/
    HRESULT (STDMETHODCALLTYPE *setProxy)(
        IServerXMLHTTPRequest2* This,
        SXH_PROXY_SETTING proxySetting,
        VARIANT varProxyServer,
        VARIANT varBypassList);

    HRESULT (STDMETHODCALLTYPE *setProxyCredentials)(
        IServerXMLHTTPRequest2* This,
        BSTR bstrUserName,
        BSTR bstrPassword);

    END_INTERFACE
} IServerXMLHTTPRequest2Vtbl;
interface IServerXMLHTTPRequest2 {
    CONST_VTBL IServerXMLHTTPRequest2Vtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IServerXMLHTTPRequest2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IServerXMLHTTPRequest2_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IServerXMLHTTPRequest2_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IServerXMLHTTPRequest2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IServerXMLHTTPRequest2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IServerXMLHTTPRequest2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IServerXMLHTTPRequest2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLHTTPRequest methods ***/
#define IServerXMLHTTPRequest2_open(This,bstrMethod,bstrUrl,varAsync,username,password) (This)->lpVtbl->open(This,bstrMethod,bstrUrl,varAsync,username,password)
#define IServerXMLHTTPRequest2_setRequestHeader(This,bstrHeader,bstrValue) (This)->lpVtbl->setRequestHeader(This,bstrHeader,bstrValue)
#define IServerXMLHTTPRequest2_getResponseHeader(This,bstrHeader,value) (This)->lpVtbl->getResponseHeader(This,bstrHeader,value)
#define IServerXMLHTTPRequest2_getAllResponseHeaders(This,pbstrHeaders) (This)->lpVtbl->getAllResponseHeaders(This,pbstrHeaders)
#define IServerXMLHTTPRequest2_send(This,body) (This)->lpVtbl->send(This,body)
#define IServerXMLHTTPRequest2_abort(This) (This)->lpVtbl->abort(This)
#define IServerXMLHTTPRequest2_get_status(This,pStatus) (This)->lpVtbl->get_status(This,pStatus)
#define IServerXMLHTTPRequest2_get_statusText(This,pStatus) (This)->lpVtbl->get_statusText(This,pStatus)
#define IServerXMLHTTPRequest2_get_responseXML(This,pBody) (This)->lpVtbl->get_responseXML(This,pBody)
#define IServerXMLHTTPRequest2_get_responseText(This,pBody) (This)->lpVtbl->get_responseText(This,pBody)
#define IServerXMLHTTPRequest2_get_responseBody(This,pBody) (This)->lpVtbl->get_responseBody(This,pBody)
#define IServerXMLHTTPRequest2_get_responseStream(This,pBody) (This)->lpVtbl->get_responseStream(This,pBody)
#define IServerXMLHTTPRequest2_get_readyState(This,pState) (This)->lpVtbl->get_readyState(This,pState)
#define IServerXMLHTTPRequest2_put_onreadystatechange(This,pReadyStateSink) (This)->lpVtbl->put_onreadystatechange(This,pReadyStateSink)
/*** IServerXMLHTTPRequest methods ***/
#define IServerXMLHTTPRequest2_setTimeouts(This,resolveTimeout,connectTimeout,sendTimeout,receiveTimeout) (This)->lpVtbl->setTimeouts(This,resolveTimeout,connectTimeout,sendTimeout,receiveTimeout)
#define IServerXMLHTTPRequest2_waitForResponse(This,timeoutInSeconds,isSuccessful) (This)->lpVtbl->waitForResponse(This,timeoutInSeconds,isSuccessful)
#define IServerXMLHTTPRequest2_getOption(This,option,value) (This)->lpVtbl->getOption(This,option,value)
#define IServerXMLHTTPRequest2_setOption(This,option,value) (This)->lpVtbl->setOption(This,option,value)
/*** IServerXMLHTTPRequest2 methods ***/
#define IServerXMLHTTPRequest2_setProxy(This,proxySetting,varProxyServer,varBypassList) (This)->lpVtbl->setProxy(This,proxySetting,varProxyServer,varBypassList)
#define IServerXMLHTTPRequest2_setProxyCredentials(This,bstrUserName,bstrPassword) (This)->lpVtbl->setProxyCredentials(This,bstrUserName,bstrPassword)
#endif

#endif

HRESULT STDMETHODCALLTYPE IServerXMLHTTPRequest2_setProxy_Proxy(
    IServerXMLHTTPRequest2* This,
    SXH_PROXY_SETTING proxySetting,
    VARIANT varProxyServer,
    VARIANT varBypassList);
void __RPC_STUB IServerXMLHTTPRequest2_setProxy_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IServerXMLHTTPRequest2_setProxyCredentials_Proxy(
    IServerXMLHTTPRequest2* This,
    BSTR bstrUserName,
    BSTR bstrPassword);
void __RPC_STUB IServerXMLHTTPRequest2_setProxyCredentials_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IServerXMLHTTPRequest2_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMParseError interface
 */
#ifndef __IXMLDOMParseError_INTERFACE_DEFINED__
#define __IXMLDOMParseError_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDOMParseError, 0x3efaa426, 0x272f, 0x11d2, 0x83,0x6f, 0x00,0x00,0xf8,0x7a,0x77,0x82);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLDOMParseError : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_errorCode(
        LONG *errCode) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_url(
        BSTR *p) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_reason(
        BSTR *p) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_srcText(
        BSTR *p) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_line(
        LONG *lineNo) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_linepos(
        LONG *linePos) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_filepos(
        LONG *filePos) = 0;

};
#else
typedef struct IXMLDOMParseErrorVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXMLDOMParseError* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXMLDOMParseError* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXMLDOMParseError* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXMLDOMParseError* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXMLDOMParseError* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXMLDOMParseError* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXMLDOMParseError* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IXMLDOMParseError methods ***/
    HRESULT (STDMETHODCALLTYPE *get_errorCode)(
        IXMLDOMParseError* This,
        LONG *errCode);

    HRESULT (STDMETHODCALLTYPE *get_url)(
        IXMLDOMParseError* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_reason)(
        IXMLDOMParseError* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_srcText)(
        IXMLDOMParseError* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_line)(
        IXMLDOMParseError* This,
        LONG *lineNo);

    HRESULT (STDMETHODCALLTYPE *get_linepos)(
        IXMLDOMParseError* This,
        LONG *linePos);

    HRESULT (STDMETHODCALLTYPE *get_filepos)(
        IXMLDOMParseError* This,
        LONG *filePos);

    END_INTERFACE
} IXMLDOMParseErrorVtbl;
interface IXMLDOMParseError {
    CONST_VTBL IXMLDOMParseErrorVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMParseError_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXMLDOMParseError_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXMLDOMParseError_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXMLDOMParseError_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXMLDOMParseError_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXMLDOMParseError_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXMLDOMParseError_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLDOMParseError methods ***/
#define IXMLDOMParseError_get_errorCode(This,errCode) (This)->lpVtbl->get_errorCode(This,errCode)
#define IXMLDOMParseError_get_url(This,p) (This)->lpVtbl->get_url(This,p)
#define IXMLDOMParseError_get_reason(This,p) (This)->lpVtbl->get_reason(This,p)
#define IXMLDOMParseError_get_srcText(This,p) (This)->lpVtbl->get_srcText(This,p)
#define IXMLDOMParseError_get_line(This,lineNo) (This)->lpVtbl->get_line(This,lineNo)
#define IXMLDOMParseError_get_linepos(This,linePos) (This)->lpVtbl->get_linepos(This,linePos)
#define IXMLDOMParseError_get_filepos(This,filePos) (This)->lpVtbl->get_filepos(This,filePos)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLDOMParseError_get_errorCode_Proxy(
    IXMLDOMParseError* This,
    LONG *errCode);
void __RPC_STUB IXMLDOMParseError_get_errorCode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMParseError_get_url_Proxy(
    IXMLDOMParseError* This,
    BSTR *p);
void __RPC_STUB IXMLDOMParseError_get_url_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMParseError_get_reason_Proxy(
    IXMLDOMParseError* This,
    BSTR *p);
void __RPC_STUB IXMLDOMParseError_get_reason_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMParseError_get_srcText_Proxy(
    IXMLDOMParseError* This,
    BSTR *p);
void __RPC_STUB IXMLDOMParseError_get_srcText_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMParseError_get_line_Proxy(
    IXMLDOMParseError* This,
    LONG *lineNo);
void __RPC_STUB IXMLDOMParseError_get_line_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMParseError_get_linepos_Proxy(
    IXMLDOMParseError* This,
    LONG *linePos);
void __RPC_STUB IXMLDOMParseError_get_linepos_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMParseError_get_filepos_Proxy(
    IXMLDOMParseError* This,
    LONG *filePos);
void __RPC_STUB IXMLDOMParseError_get_filepos_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMParseError_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMParseError2 interface
 */
#ifndef __IXMLDOMParseError2_INTERFACE_DEFINED__
#define __IXMLDOMParseError2_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDOMParseError2, 0x3efaa428, 0x272f, 0x11d2, 0x83,0x6f, 0x00,0x00,0xf8,0x7a,0x77,0x82);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLDOMParseError2 : public IXMLDOMParseError
{
    virtual HRESULT STDMETHODCALLTYPE get_errorXPath(
        BSTR *xpathexpr) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_allErrors(
        IXMLDOMParseErrorCollection **allErrors) = 0;

    virtual HRESULT STDMETHODCALLTYPE errorParameters(
        LONG index,
        BSTR *param) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_errorParametersCount(
        LONG *count) = 0;

};
#else
typedef struct IXMLDOMParseError2Vtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXMLDOMParseError2* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXMLDOMParseError2* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXMLDOMParseError2* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXMLDOMParseError2* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXMLDOMParseError2* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXMLDOMParseError2* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXMLDOMParseError2* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IXMLDOMParseError methods ***/
    HRESULT (STDMETHODCALLTYPE *get_errorCode)(
        IXMLDOMParseError2* This,
        LONG *errCode);

    HRESULT (STDMETHODCALLTYPE *get_url)(
        IXMLDOMParseError2* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_reason)(
        IXMLDOMParseError2* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_srcText)(
        IXMLDOMParseError2* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_line)(
        IXMLDOMParseError2* This,
        LONG *lineNo);

    HRESULT (STDMETHODCALLTYPE *get_linepos)(
        IXMLDOMParseError2* This,
        LONG *linePos);

    HRESULT (STDMETHODCALLTYPE *get_filepos)(
        IXMLDOMParseError2* This,
        LONG *filePos);

    /*** IXMLDOMParseError2 methods ***/
    HRESULT (STDMETHODCALLTYPE *get_errorXPath)(
        IXMLDOMParseError2* This,
        BSTR *xpathexpr);

    HRESULT (STDMETHODCALLTYPE *get_allErrors)(
        IXMLDOMParseError2* This,
        IXMLDOMParseErrorCollection **allErrors);

    HRESULT (STDMETHODCALLTYPE *errorParameters)(
        IXMLDOMParseError2* This,
        LONG index,
        BSTR *param);

    HRESULT (STDMETHODCALLTYPE *get_errorParametersCount)(
        IXMLDOMParseError2* This,
        LONG *count);

    END_INTERFACE
} IXMLDOMParseError2Vtbl;
interface IXMLDOMParseError2 {
    CONST_VTBL IXMLDOMParseError2Vtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMParseError2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXMLDOMParseError2_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXMLDOMParseError2_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXMLDOMParseError2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXMLDOMParseError2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXMLDOMParseError2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXMLDOMParseError2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLDOMParseError methods ***/
#define IXMLDOMParseError2_get_errorCode(This,errCode) (This)->lpVtbl->get_errorCode(This,errCode)
#define IXMLDOMParseError2_get_url(This,p) (This)->lpVtbl->get_url(This,p)
#define IXMLDOMParseError2_get_reason(This,p) (This)->lpVtbl->get_reason(This,p)
#define IXMLDOMParseError2_get_srcText(This,p) (This)->lpVtbl->get_srcText(This,p)
#define IXMLDOMParseError2_get_line(This,lineNo) (This)->lpVtbl->get_line(This,lineNo)
#define IXMLDOMParseError2_get_linepos(This,linePos) (This)->lpVtbl->get_linepos(This,linePos)
#define IXMLDOMParseError2_get_filepos(This,filePos) (This)->lpVtbl->get_filepos(This,filePos)
/*** IXMLDOMParseError2 methods ***/
#define IXMLDOMParseError2_get_errorXPath(This,xpathexpr) (This)->lpVtbl->get_errorXPath(This,xpathexpr)
#define IXMLDOMParseError2_get_allErrors(This,allErrors) (This)->lpVtbl->get_allErrors(This,allErrors)
#define IXMLDOMParseError2_errorParameters(This,index,param) (This)->lpVtbl->errorParameters(This,index,param)
#define IXMLDOMParseError2_get_errorParametersCount(This,count) (This)->lpVtbl->get_errorParametersCount(This,count)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLDOMParseError2_get_errorXPath_Proxy(
    IXMLDOMParseError2* This,
    BSTR *xpathexpr);
void __RPC_STUB IXMLDOMParseError2_get_errorXPath_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMParseError2_get_allErrors_Proxy(
    IXMLDOMParseError2* This,
    IXMLDOMParseErrorCollection **allErrors);
void __RPC_STUB IXMLDOMParseError2_get_allErrors_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMParseError2_errorParameters_Proxy(
    IXMLDOMParseError2* This,
    LONG index,
    BSTR *param);
void __RPC_STUB IXMLDOMParseError2_errorParameters_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMParseError2_get_errorParametersCount_Proxy(
    IXMLDOMParseError2* This,
    LONG *count);
void __RPC_STUB IXMLDOMParseError2_get_errorParametersCount_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMParseError2_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMParseErrorCollection interface
 */
#ifndef __IXMLDOMParseErrorCollection_INTERFACE_DEFINED__
#define __IXMLDOMParseErrorCollection_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDOMParseErrorCollection, 0x3efaa429, 0x272f, 0x11d2, 0x83,0x6f, 0x00,0x00,0xf8,0x7a,0x77,0x82);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLDOMParseErrorCollection : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_item(
        LONG index,
        IXMLDOMParseError2 **error) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_length(
        LONG *length) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_next(
        IXMLDOMParseError2 **error) = 0;

    virtual HRESULT STDMETHODCALLTYPE reset(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE get__newEnum(
        IUnknown **ppunk) = 0;

};
#else
typedef struct IXMLDOMParseErrorCollectionVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXMLDOMParseErrorCollection* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXMLDOMParseErrorCollection* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXMLDOMParseErrorCollection* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXMLDOMParseErrorCollection* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXMLDOMParseErrorCollection* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXMLDOMParseErrorCollection* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXMLDOMParseErrorCollection* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IXMLDOMParseErrorCollection methods ***/
    HRESULT (STDMETHODCALLTYPE *get_item)(
        IXMLDOMParseErrorCollection* This,
        LONG index,
        IXMLDOMParseError2 **error);

    HRESULT (STDMETHODCALLTYPE *get_length)(
        IXMLDOMParseErrorCollection* This,
        LONG *length);

    HRESULT (STDMETHODCALLTYPE *get_next)(
        IXMLDOMParseErrorCollection* This,
        IXMLDOMParseError2 **error);

    HRESULT (STDMETHODCALLTYPE *reset)(
        IXMLDOMParseErrorCollection* This);

    HRESULT (STDMETHODCALLTYPE *get__newEnum)(
        IXMLDOMParseErrorCollection* This,
        IUnknown **ppunk);

    END_INTERFACE
} IXMLDOMParseErrorCollectionVtbl;
interface IXMLDOMParseErrorCollection {
    CONST_VTBL IXMLDOMParseErrorCollectionVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMParseErrorCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXMLDOMParseErrorCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXMLDOMParseErrorCollection_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXMLDOMParseErrorCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXMLDOMParseErrorCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXMLDOMParseErrorCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXMLDOMParseErrorCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLDOMParseErrorCollection methods ***/
#define IXMLDOMParseErrorCollection_get_item(This,index,error) (This)->lpVtbl->get_item(This,index,error)
#define IXMLDOMParseErrorCollection_get_length(This,length) (This)->lpVtbl->get_length(This,length)
#define IXMLDOMParseErrorCollection_get_next(This,error) (This)->lpVtbl->get_next(This,error)
#define IXMLDOMParseErrorCollection_reset(This) (This)->lpVtbl->reset(This)
#define IXMLDOMParseErrorCollection_get__newEnum(This,ppunk) (This)->lpVtbl->get__newEnum(This,ppunk)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLDOMParseErrorCollection_get_item_Proxy(
    IXMLDOMParseErrorCollection* This,
    LONG index,
    IXMLDOMParseError2 **error);
void __RPC_STUB IXMLDOMParseErrorCollection_get_item_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMParseErrorCollection_get_length_Proxy(
    IXMLDOMParseErrorCollection* This,
    LONG *length);
void __RPC_STUB IXMLDOMParseErrorCollection_get_length_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMParseErrorCollection_get_next_Proxy(
    IXMLDOMParseErrorCollection* This,
    IXMLDOMParseError2 **error);
void __RPC_STUB IXMLDOMParseErrorCollection_get_next_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMParseErrorCollection_reset_Proxy(
    IXMLDOMParseErrorCollection* This);
void __RPC_STUB IXMLDOMParseErrorCollection_reset_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMParseErrorCollection_get__newEnum_Proxy(
    IXMLDOMParseErrorCollection* This,
    IUnknown **ppunk);
void __RPC_STUB IXMLDOMParseErrorCollection_get__newEnum_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMParseErrorCollection_INTERFACE_DEFINED__ */

/*****************************************************************************
 * DOMDocument26 coclass
 */

DEFINE_GUID(CLSID_DOMDocument26, 0xf5078f1b, 0xc551, 0x11d3, 0x89,0xb9, 0x00,0x00,0xf8,0x1f,0xe2,0x21);

/*****************************************************************************
 * DOMDocument30 coclass
 */

DEFINE_GUID(CLSID_DOMDocument30, 0xf5078f32, 0xc551, 0x11d3, 0x89,0xb9, 0x00,0x00,0xf8,0x1f,0xe2,0x21);

/*****************************************************************************
 * DOMDocument40 coclass
 */

DEFINE_GUID(CLSID_DOMDocument40, 0x88d969c0, 0xf192, 0x11d4, 0xa6,0x5f, 0x00,0x40,0x96,0x32,0x51,0xe5);

/*****************************************************************************
 * DOMDocument60 coclass
 */

DEFINE_GUID(CLSID_DOMDocument60, 0x88d96a05, 0xf192, 0x11d4, 0xa6,0x5f, 0x00,0x40,0x96,0x32,0x51,0xe5);

/*****************************************************************************
 * DOMDocument coclass
 */

DEFINE_GUID(CLSID_DOMDocument, 0xf6d90f11, 0x9c73, 0x11d3, 0xb3,0x2e, 0x00,0xc0,0x4f,0x99,0x0b,0xb4);

/*****************************************************************************
 * FreeThreadedDOMDocument26 coclass
 */

DEFINE_GUID(CLSID_FreeThreadedDOMDocument26, 0xf5078f1c, 0xc551, 0x11d3, 0x89,0xb9, 0x00,0x00,0xf8,0x1f,0xe2,0x21);

/*****************************************************************************
 * FreeThreadedDOMDocument30 coclass
 */

DEFINE_GUID(CLSID_FreeThreadedDOMDocument30, 0xf5078f33, 0xc551, 0x11d3, 0x89,0xb9, 0x00,0x00,0xf8,0x1f,0xe2,0x21);

/*****************************************************************************
 * FreeThreadedDOMDocument40 coclass
 */

DEFINE_GUID(CLSID_FreeThreadedDOMDocument40, 0x88d969c1, 0xf192, 0x11d4, 0xa6,0x5f, 0x00,0x40,0x96,0x32,0x51,0xe5);

/*****************************************************************************
 * FreeThreadedDOMDocument60 coclass
 */

DEFINE_GUID(CLSID_FreeThreadedDOMDocument60, 0x88d96a06, 0xf192, 0x11d4, 0xa6,0x5f, 0x00,0x40,0x96,0x32,0x51,0xe5);

/*****************************************************************************
 * FreeThreadedDOMDocument coclass
 */

DEFINE_GUID(CLSID_FreeThreadedDOMDocument, 0xf6d90f12, 0x9c73, 0x11d3, 0xb3,0x2e, 0x00,0xc0,0x4f,0x99,0x0b,0xb4);

/*****************************************************************************
 * XMLHTTP26 coclass
 */

DEFINE_GUID(CLSID_XMLHTTP26, 0xf5078f1e, 0xc551, 0x11d3, 0x89,0xb9, 0x00,0x00,0xf8,0x1f,0xe2,0x21);

/*****************************************************************************
 * XMLHTTP30 coclass
 */

DEFINE_GUID(CLSID_XMLHTTP30, 0xf5078f35, 0xc551, 0x11d3, 0x89,0xb9, 0x00,0x00,0xf8,0x1f,0xe2,0x21);

/*****************************************************************************
 * XMLHTTP40 coclass
 */

DEFINE_GUID(CLSID_XMLHTTP40, 0x88d969c5, 0xf192, 0x11d4, 0xa6,0x5f, 0x00,0x40,0x96,0x32,0x51,0xe5);

/*****************************************************************************
 * XMLHTTP60 coclass
 */

DEFINE_GUID(CLSID_XMLHTTP60, 0x88d96a0a, 0xf192, 0x11d4, 0xa6,0x5f, 0x00,0x40,0x96,0x32,0x51,0xe5);

/*****************************************************************************
 * XMLHTTP coclass
 */

DEFINE_GUID(CLSID_XMLHTTP, 0xf6d90f16, 0x9c73, 0x11d3, 0xb3,0x2e, 0x00,0xc0,0x4f,0x99,0x0b,0xb4);

/*****************************************************************************
 * ServerXMLHTTP30 coclass
 */

DEFINE_GUID(CLSID_ServerXMLHTTP30, 0xafb40ffd, 0xb609, 0x40a3, 0x98,0x28, 0xf8,0x8b,0xbe,0x11,0xe4,0xe3);

/*****************************************************************************
 * ServerXMLHTTP40 coclass
 */

DEFINE_GUID(CLSID_ServerXMLHTTP40, 0x88d969c6, 0xf192, 0x11d4, 0xa6,0x5f, 0x00,0x40,0x96,0x32,0x51,0xe5);

/*****************************************************************************
 * ServerXMLHTTP60 coclass
 */

DEFINE_GUID(CLSID_ServerXMLHTTP60, 0x88d96a0b, 0xf192, 0x11d4, 0xa6,0x5f, 0x00,0x40,0x96,0x32,0x51,0xe5);

/*****************************************************************************
 * ServerXMLHTTP coclass
 */

DEFINE_GUID(CLSID_ServerXMLHTTP, 0xafba6b42, 0x5692, 0x48ea, 0x81,0x41, 0xdc,0x51,0x7d,0xcf,0x0e,0xf1);

/*****************************************************************************
 * XMLSchemaCache26 coclass
 */

DEFINE_GUID(CLSID_XMLSchemaCache26, 0xf5078f1d, 0xc551, 0x11d3, 0x89,0xb9, 0x00,0x00,0xf8,0x1f,0xe2,0x21);

/*****************************************************************************
 * XMLSchemaCache30 coclass
 */

DEFINE_GUID(CLSID_XMLSchemaCache30, 0xf5078f34, 0xc551, 0x11d3, 0x89,0xb9, 0x00,0x00,0xf8,0x1f,0xe2,0x21);

/*****************************************************************************
 * XMLSchemaCache40 coclass
 */

DEFINE_GUID(CLSID_XMLSchemaCache40, 0x88d969c2, 0xf192, 0x11d4, 0xa6,0x5f, 0x00,0x40,0x96,0x32,0x51,0xe5);

/*****************************************************************************
 * XMLSchemaCache60 coclass
 */

DEFINE_GUID(CLSID_XMLSchemaCache60, 0x88d96a07, 0xf192, 0x11d4, 0xa6,0x5f, 0x00,0x40,0x96,0x32,0x51,0xe5);

/*****************************************************************************
 * XMLSchemaCache coclass
 */

DEFINE_GUID(CLSID_XMLSchemaCache, 0x373984c9, 0xb845, 0x449b, 0x91,0xe7, 0x45,0xac,0x83,0x03,0x6a,0xde);

/*****************************************************************************
 * XSLTemplate26 coclass
 */

DEFINE_GUID(CLSID_XSLTemplate26, 0xf5078f21, 0xc551, 0x11d3, 0x89,0xb9, 0x00,0x00,0xf8,0x1f,0xe2,0x21);

/*****************************************************************************
 * XSLTemplate30 coclass
 */

DEFINE_GUID(CLSID_XSLTemplate30, 0xf5078f36, 0xc551, 0x11d3, 0x89,0xb9, 0x00,0x00,0xf8,0x1f,0xe2,0x21);

/*****************************************************************************
 * XSLTemplate40 coclass
 */

DEFINE_GUID(CLSID_XSLTemplate40, 0x88d969c3, 0xf192, 0x11d4, 0xa6,0x5f, 0x00,0x40,0x96,0x32,0x51,0xe5);

/*****************************************************************************
 * XSLTemplate60 coclass
 */

DEFINE_GUID(CLSID_XSLTemplate60, 0x88d96a08, 0xf192, 0x11d4, 0xa6,0x5f, 0x00,0x40,0x96,0x32,0x51,0xe5);

/*****************************************************************************
 * XSLTemplate coclass
 */

DEFINE_GUID(CLSID_XSLTemplate, 0x2933bf94, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60);

/*****************************************************************************
 * ISAXAttributes interface
 */
#ifndef __ISAXAttributes_INTERFACE_DEFINED__
#define __ISAXAttributes_INTERFACE_DEFINED__

DEFINE_GUID(IID_ISAXAttributes, 0xf078abe1, 0x45d2, 0x4832, 0x91,0xea, 0x44,0x66,0xce,0x2f,0x25,0xc9);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface ISAXAttributes : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE getLength(
        int *length) = 0;

    virtual HRESULT STDMETHODCALLTYPE getURI(
        int nIndex,
        const WCHAR **pUrl,
        int *pUriSize) = 0;

    virtual HRESULT STDMETHODCALLTYPE getLocalName(
        int nIndex,
        const WCHAR **pLocalName,
        int *pLocalNameLength) = 0;

    virtual HRESULT STDMETHODCALLTYPE getQName(
        int nIndex,
        const WCHAR **pQName,
        int *pQNameLength) = 0;

    virtual HRESULT STDMETHODCALLTYPE getName(
        int nIndex,
        const WCHAR **pUri,
        int *pUriLength,
        const WCHAR **pLocalName,
        int *pLocalNameSize,
        const WCHAR **pQName,
        int *pQNameLength) = 0;

    virtual HRESULT STDMETHODCALLTYPE getIndexFromName(
        const WCHAR *pUri,
        int cUriLength,
        const WCHAR *pLocalName,
        int cocalNameLength,
        int *index) = 0;

    virtual HRESULT STDMETHODCALLTYPE getIndexFromQName(
        const WCHAR *pQName,
        int nQNameLength,
        int *index) = 0;

    virtual HRESULT STDMETHODCALLTYPE getType(
        int nIndex,
        const WCHAR **pType,
        int *pTypeLength) = 0;

    virtual HRESULT STDMETHODCALLTYPE getTypeFromName(
        const WCHAR *pUri,
        int nUri,
        const WCHAR *pLocalName,
        int nLocalName,
        const WCHAR **pType,
        int *nType) = 0;

    virtual HRESULT STDMETHODCALLTYPE getTypeFromQName(
        const WCHAR *pQName,
        int nQName,
        const WCHAR **pType,
        int *nType) = 0;

    virtual HRESULT STDMETHODCALLTYPE getValue(
        int nIndex,
        const WCHAR **pValue,
        int *nValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE getValueFromName(
        const WCHAR *pUri,
        int nUri,
        const WCHAR *pLocalName,
        int nLocalName,
        const WCHAR **pValue,
        int *nValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE getValueFromQName(
        const WCHAR *pQName,
        int nQName,
        const WCHAR **pValue,
        int *nValue) = 0;

};
#else
typedef struct ISAXAttributesVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ISAXAttributes* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ISAXAttributes* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ISAXAttributes* This);

    /*** ISAXAttributes methods ***/
    HRESULT (STDMETHODCALLTYPE *getLength)(
        ISAXAttributes* This,
        int *length);

    HRESULT (STDMETHODCALLTYPE *getURI)(
        ISAXAttributes* This,
        int nIndex,
        const WCHAR **pUrl,
        int *pUriSize);

    HRESULT (STDMETHODCALLTYPE *getLocalName)(
        ISAXAttributes* This,
        int nIndex,
        const WCHAR **pLocalName,
        int *pLocalNameLength);

    HRESULT (STDMETHODCALLTYPE *getQName)(
        ISAXAttributes* This,
        int nIndex,
        const WCHAR **pQName,
        int *pQNameLength);

    HRESULT (STDMETHODCALLTYPE *getName)(
        ISAXAttributes* This,
        int nIndex,
        const WCHAR **pUri,
        int *pUriLength,
        const WCHAR **pLocalName,
        int *pLocalNameSize,
        const WCHAR **pQName,
        int *pQNameLength);

    HRESULT (STDMETHODCALLTYPE *getIndexFromName)(
        ISAXAttributes* This,
        const WCHAR *pUri,
        int cUriLength,
        const WCHAR *pLocalName,
        int cocalNameLength,
        int *index);

    HRESULT (STDMETHODCALLTYPE *getIndexFromQName)(
        ISAXAttributes* This,
        const WCHAR *pQName,
        int nQNameLength,
        int *index);

    HRESULT (STDMETHODCALLTYPE *getType)(
        ISAXAttributes* This,
        int nIndex,
        const WCHAR **pType,
        int *pTypeLength);

    HRESULT (STDMETHODCALLTYPE *getTypeFromName)(
        ISAXAttributes* This,
        const WCHAR *pUri,
        int nUri,
        const WCHAR *pLocalName,
        int nLocalName,
        const WCHAR **pType,
        int *nType);

    HRESULT (STDMETHODCALLTYPE *getTypeFromQName)(
        ISAXAttributes* This,
        const WCHAR *pQName,
        int nQName,
        const WCHAR **pType,
        int *nType);

    HRESULT (STDMETHODCALLTYPE *getValue)(
        ISAXAttributes* This,
        int nIndex,
        const WCHAR **pValue,
        int *nValue);

    HRESULT (STDMETHODCALLTYPE *getValueFromName)(
        ISAXAttributes* This,
        const WCHAR *pUri,
        int nUri,
        const WCHAR *pLocalName,
        int nLocalName,
        const WCHAR **pValue,
        int *nValue);

    HRESULT (STDMETHODCALLTYPE *getValueFromQName)(
        ISAXAttributes* This,
        const WCHAR *pQName,
        int nQName,
        const WCHAR **pValue,
        int *nValue);

    END_INTERFACE
} ISAXAttributesVtbl;
interface ISAXAttributes {
    CONST_VTBL ISAXAttributesVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISAXAttributes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ISAXAttributes_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ISAXAttributes_Release(This) (This)->lpVtbl->Release(This)
/*** ISAXAttributes methods ***/
#define ISAXAttributes_getLength(This,length) (This)->lpVtbl->getLength(This,length)
#define ISAXAttributes_getURI(This,nIndex,pUrl,pUriSize) (This)->lpVtbl->getURI(This,nIndex,pUrl,pUriSize)
#define ISAXAttributes_getLocalName(This,nIndex,pLocalName,pLocalNameLength) (This)->lpVtbl->getLocalName(This,nIndex,pLocalName,pLocalNameLength)
#define ISAXAttributes_getQName(This,nIndex,pQName,pQNameLength) (This)->lpVtbl->getQName(This,nIndex,pQName,pQNameLength)
#define ISAXAttributes_getName(This,nIndex,pUri,pUriLength,pLocalName,pLocalNameSize,pQName,pQNameLength) (This)->lpVtbl->getName(This,nIndex,pUri,pUriLength,pLocalName,pLocalNameSize,pQName,pQNameLength)
#define ISAXAttributes_getIndexFromName(This,pUri,cUriLength,pLocalName,cocalNameLength,index) (This)->lpVtbl->getIndexFromName(This,pUri,cUriLength,pLocalName,cocalNameLength,index)
#define ISAXAttributes_getIndexFromQName(This,pQName,nQNameLength,index) (This)->lpVtbl->getIndexFromQName(This,pQName,nQNameLength,index)
#define ISAXAttributes_getType(This,nIndex,pType,pTypeLength) (This)->lpVtbl->getType(This,nIndex,pType,pTypeLength)
#define ISAXAttributes_getTypeFromName(This,pUri,nUri,pLocalName,nLocalName,pType,nType) (This)->lpVtbl->getTypeFromName(This,pUri,nUri,pLocalName,nLocalName,pType,nType)
#define ISAXAttributes_getTypeFromQName(This,pQName,nQName,pType,nType) (This)->lpVtbl->getTypeFromQName(This,pQName,nQName,pType,nType)
#define ISAXAttributes_getValue(This,nIndex,pValue,nValue) (This)->lpVtbl->getValue(This,nIndex,pValue,nValue)
#define ISAXAttributes_getValueFromName(This,pUri,nUri,pLocalName,nLocalName,pValue,nValue) (This)->lpVtbl->getValueFromName(This,pUri,nUri,pLocalName,nLocalName,pValue,nValue)
#define ISAXAttributes_getValueFromQName(This,pQName,nQName,pValue,nValue) (This)->lpVtbl->getValueFromQName(This,pQName,nQName,pValue,nValue)
#endif

#endif

HRESULT STDMETHODCALLTYPE ISAXAttributes_getLength_Proxy(
    ISAXAttributes* This,
    int *length);
void __RPC_STUB ISAXAttributes_getLength_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXAttributes_getURI_Proxy(
    ISAXAttributes* This,
    int nIndex,
    const WCHAR **pUrl,
    int *pUriSize);
void __RPC_STUB ISAXAttributes_getURI_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXAttributes_getLocalName_Proxy(
    ISAXAttributes* This,
    int nIndex,
    const WCHAR **pLocalName,
    int *pLocalNameLength);
void __RPC_STUB ISAXAttributes_getLocalName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXAttributes_getQName_Proxy(
    ISAXAttributes* This,
    int nIndex,
    const WCHAR **pQName,
    int *pQNameLength);
void __RPC_STUB ISAXAttributes_getQName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXAttributes_getName_Proxy(
    ISAXAttributes* This,
    int nIndex,
    const WCHAR **pUri,
    int *pUriLength,
    const WCHAR **pLocalName,
    int *pLocalNameSize,
    const WCHAR **pQName,
    int *pQNameLength);
void __RPC_STUB ISAXAttributes_getName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXAttributes_getIndexFromName_Proxy(
    ISAXAttributes* This,
    const WCHAR *pUri,
    int cUriLength,
    const WCHAR *pLocalName,
    int cocalNameLength,
    int *index);
void __RPC_STUB ISAXAttributes_getIndexFromName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXAttributes_getIndexFromQName_Proxy(
    ISAXAttributes* This,
    const WCHAR *pQName,
    int nQNameLength,
    int *index);
void __RPC_STUB ISAXAttributes_getIndexFromQName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXAttributes_getType_Proxy(
    ISAXAttributes* This,
    int nIndex,
    const WCHAR **pType,
    int *pTypeLength);
void __RPC_STUB ISAXAttributes_getType_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXAttributes_getTypeFromName_Proxy(
    ISAXAttributes* This,
    const WCHAR *pUri,
    int nUri,
    const WCHAR *pLocalName,
    int nLocalName,
    const WCHAR **pType,
    int *nType);
void __RPC_STUB ISAXAttributes_getTypeFromName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXAttributes_getTypeFromQName_Proxy(
    ISAXAttributes* This,
    const WCHAR *pQName,
    int nQName,
    const WCHAR **pType,
    int *nType);
void __RPC_STUB ISAXAttributes_getTypeFromQName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXAttributes_getValue_Proxy(
    ISAXAttributes* This,
    int nIndex,
    const WCHAR **pValue,
    int *nValue);
void __RPC_STUB ISAXAttributes_getValue_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXAttributes_getValueFromName_Proxy(
    ISAXAttributes* This,
    const WCHAR *pUri,
    int nUri,
    const WCHAR *pLocalName,
    int nLocalName,
    const WCHAR **pValue,
    int *nValue);
void __RPC_STUB ISAXAttributes_getValueFromName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXAttributes_getValueFromQName_Proxy(
    ISAXAttributes* This,
    const WCHAR *pQName,
    int nQName,
    const WCHAR **pValue,
    int *nValue);
void __RPC_STUB ISAXAttributes_getValueFromQName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ISAXAttributes_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ISAXContentHandler interface
 */
#ifndef __ISAXContentHandler_INTERFACE_DEFINED__
#define __ISAXContentHandler_INTERFACE_DEFINED__

DEFINE_GUID(IID_ISAXContentHandler, 0x1545cdfa, 0x9e4e, 0x4497, 0xa8,0xa4, 0x2b,0xf7,0xd0,0x11,0x2c,0x44);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface ISAXContentHandler : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE putDocumentLocator(
        ISAXLocator *pLocator) = 0;

    virtual HRESULT STDMETHODCALLTYPE startDocument(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE endDocument(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE startPrefixMapping(
        const WCHAR *pPrefix,
        int nPrefix,
        const WCHAR *pUri,
        int nUri) = 0;

    virtual HRESULT STDMETHODCALLTYPE endPrefixMapping(
        const WCHAR *pPrefix,
        int nPrefix) = 0;

    virtual HRESULT STDMETHODCALLTYPE startElement(
        const WCHAR *pNamespaceUri,
        int nNamespaceUri,
        const WCHAR *pLocalName,
        int nLocalName,
        const WCHAR *pQName,
        int nQName,
        ISAXAttributes *pAttr) = 0;

    virtual HRESULT STDMETHODCALLTYPE endElement(
        const WCHAR *pNamespaceUri,
        int nNamespaceUri,
        const WCHAR *pLocalName,
        int nLocalName,
        const WCHAR *pQName,
        int nQName) = 0;

    virtual HRESULT STDMETHODCALLTYPE characters(
        const WCHAR *pChars,
        int nChars) = 0;

    virtual HRESULT STDMETHODCALLTYPE ignorableWhitespace(
        const WCHAR *pChars,
        int nChars) = 0;

    virtual HRESULT STDMETHODCALLTYPE processingInstruction(
        const WCHAR *pTarget,
        int nTarget,
        const WCHAR *pData,
        int nData) = 0;

    virtual HRESULT STDMETHODCALLTYPE skippedEntity(
        const WCHAR *pName,
        int nName) = 0;

};
#else
typedef struct ISAXContentHandlerVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ISAXContentHandler* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ISAXContentHandler* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ISAXContentHandler* This);

    /*** ISAXContentHandler methods ***/
    HRESULT (STDMETHODCALLTYPE *putDocumentLocator)(
        ISAXContentHandler* This,
        ISAXLocator *pLocator);

    HRESULT (STDMETHODCALLTYPE *startDocument)(
        ISAXContentHandler* This);

    HRESULT (STDMETHODCALLTYPE *endDocument)(
        ISAXContentHandler* This);

    HRESULT (STDMETHODCALLTYPE *startPrefixMapping)(
        ISAXContentHandler* This,
        const WCHAR *pPrefix,
        int nPrefix,
        const WCHAR *pUri,
        int nUri);

    HRESULT (STDMETHODCALLTYPE *endPrefixMapping)(
        ISAXContentHandler* This,
        const WCHAR *pPrefix,
        int nPrefix);

    HRESULT (STDMETHODCALLTYPE *startElement)(
        ISAXContentHandler* This,
        const WCHAR *pNamespaceUri,
        int nNamespaceUri,
        const WCHAR *pLocalName,
        int nLocalName,
        const WCHAR *pQName,
        int nQName,
        ISAXAttributes *pAttr);

    HRESULT (STDMETHODCALLTYPE *endElement)(
        ISAXContentHandler* This,
        const WCHAR *pNamespaceUri,
        int nNamespaceUri,
        const WCHAR *pLocalName,
        int nLocalName,
        const WCHAR *pQName,
        int nQName);

    HRESULT (STDMETHODCALLTYPE *characters)(
        ISAXContentHandler* This,
        const WCHAR *pChars,
        int nChars);

    HRESULT (STDMETHODCALLTYPE *ignorableWhitespace)(
        ISAXContentHandler* This,
        const WCHAR *pChars,
        int nChars);

    HRESULT (STDMETHODCALLTYPE *processingInstruction)(
        ISAXContentHandler* This,
        const WCHAR *pTarget,
        int nTarget,
        const WCHAR *pData,
        int nData);

    HRESULT (STDMETHODCALLTYPE *skippedEntity)(
        ISAXContentHandler* This,
        const WCHAR *pName,
        int nName);

    END_INTERFACE
} ISAXContentHandlerVtbl;
interface ISAXContentHandler {
    CONST_VTBL ISAXContentHandlerVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISAXContentHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ISAXContentHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ISAXContentHandler_Release(This) (This)->lpVtbl->Release(This)
/*** ISAXContentHandler methods ***/
#define ISAXContentHandler_putDocumentLocator(This,pLocator) (This)->lpVtbl->putDocumentLocator(This,pLocator)
#define ISAXContentHandler_startDocument(This) (This)->lpVtbl->startDocument(This)
#define ISAXContentHandler_endDocument(This) (This)->lpVtbl->endDocument(This)
#define ISAXContentHandler_startPrefixMapping(This,pPrefix,nPrefix,pUri,nUri) (This)->lpVtbl->startPrefixMapping(This,pPrefix,nPrefix,pUri,nUri)
#define ISAXContentHandler_endPrefixMapping(This,pPrefix,nPrefix) (This)->lpVtbl->endPrefixMapping(This,pPrefix,nPrefix)
#define ISAXContentHandler_startElement(This,pNamespaceUri,nNamespaceUri,pLocalName,nLocalName,pQName,nQName,pAttr) (This)->lpVtbl->startElement(This,pNamespaceUri,nNamespaceUri,pLocalName,nLocalName,pQName,nQName,pAttr)
#define ISAXContentHandler_endElement(This,pNamespaceUri,nNamespaceUri,pLocalName,nLocalName,pQName,nQName) (This)->lpVtbl->endElement(This,pNamespaceUri,nNamespaceUri,pLocalName,nLocalName,pQName,nQName)
#define ISAXContentHandler_characters(This,pChars,nChars) (This)->lpVtbl->characters(This,pChars,nChars)
#define ISAXContentHandler_ignorableWhitespace(This,pChars,nChars) (This)->lpVtbl->ignorableWhitespace(This,pChars,nChars)
#define ISAXContentHandler_processingInstruction(This,pTarget,nTarget,pData,nData) (This)->lpVtbl->processingInstruction(This,pTarget,nTarget,pData,nData)
#define ISAXContentHandler_skippedEntity(This,pName,nName) (This)->lpVtbl->skippedEntity(This,pName,nName)
#endif

#endif

HRESULT STDMETHODCALLTYPE ISAXContentHandler_putDocumentLocator_Proxy(
    ISAXContentHandler* This,
    ISAXLocator *pLocator);
void __RPC_STUB ISAXContentHandler_putDocumentLocator_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXContentHandler_startDocument_Proxy(
    ISAXContentHandler* This);
void __RPC_STUB ISAXContentHandler_startDocument_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXContentHandler_endDocument_Proxy(
    ISAXContentHandler* This);
void __RPC_STUB ISAXContentHandler_endDocument_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXContentHandler_startPrefixMapping_Proxy(
    ISAXContentHandler* This,
    const WCHAR *pPrefix,
    int nPrefix,
    const WCHAR *pUri,
    int nUri);
void __RPC_STUB ISAXContentHandler_startPrefixMapping_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXContentHandler_endPrefixMapping_Proxy(
    ISAXContentHandler* This,
    const WCHAR *pPrefix,
    int nPrefix);
void __RPC_STUB ISAXContentHandler_endPrefixMapping_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXContentHandler_startElement_Proxy(
    ISAXContentHandler* This,
    const WCHAR *pNamespaceUri,
    int nNamespaceUri,
    const WCHAR *pLocalName,
    int nLocalName,
    const WCHAR *pQName,
    int nQName,
    ISAXAttributes *pAttr);
void __RPC_STUB ISAXContentHandler_startElement_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXContentHandler_endElement_Proxy(
    ISAXContentHandler* This,
    const WCHAR *pNamespaceUri,
    int nNamespaceUri,
    const WCHAR *pLocalName,
    int nLocalName,
    const WCHAR *pQName,
    int nQName);
void __RPC_STUB ISAXContentHandler_endElement_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXContentHandler_characters_Proxy(
    ISAXContentHandler* This,
    const WCHAR *pChars,
    int nChars);
void __RPC_STUB ISAXContentHandler_characters_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXContentHandler_ignorableWhitespace_Proxy(
    ISAXContentHandler* This,
    const WCHAR *pChars,
    int nChars);
void __RPC_STUB ISAXContentHandler_ignorableWhitespace_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXContentHandler_processingInstruction_Proxy(
    ISAXContentHandler* This,
    const WCHAR *pTarget,
    int nTarget,
    const WCHAR *pData,
    int nData);
void __RPC_STUB ISAXContentHandler_processingInstruction_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXContentHandler_skippedEntity_Proxy(
    ISAXContentHandler* This,
    const WCHAR *pName,
    int nName);
void __RPC_STUB ISAXContentHandler_skippedEntity_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ISAXContentHandler_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ISAXDeclHandler interface
 */
#ifndef __ISAXDeclHandler_INTERFACE_DEFINED__
#define __ISAXDeclHandler_INTERFACE_DEFINED__

DEFINE_GUID(IID_ISAXDeclHandler, 0x862629ac, 0x771a, 0x47b2, 0x83,0x37, 0x4e,0x68,0x43,0xc1,0xbe,0x90);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface ISAXDeclHandler : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE elementDecl(
        const WCHAR *pName,
        int nName,
        const WCHAR *pModel,
        int nModel) = 0;

    virtual HRESULT STDMETHODCALLTYPE attributeDecl(
        const WCHAR *pElementName,
        int nElementName,
        const WCHAR *pAttributeName,
        int nAttributeName,
        const WCHAR *pType,
        int nType,
        const WCHAR *pValueDefault,
        int nValueDefault,
        const WCHAR *pValue,
        int nValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE internalEntityDecl(
        const WCHAR *pName,
        int nName,
        const WCHAR *pValue,
        int nValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE externalEntityDecl(
        const WCHAR *pName,
        int nName,
        const WCHAR *pPublicId,
        int nPublicId,
        const WCHAR *pSystemId,
        int nSystemId) = 0;

};
#else
typedef struct ISAXDeclHandlerVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ISAXDeclHandler* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ISAXDeclHandler* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ISAXDeclHandler* This);

    /*** ISAXDeclHandler methods ***/
    HRESULT (STDMETHODCALLTYPE *elementDecl)(
        ISAXDeclHandler* This,
        const WCHAR *pName,
        int nName,
        const WCHAR *pModel,
        int nModel);

    HRESULT (STDMETHODCALLTYPE *attributeDecl)(
        ISAXDeclHandler* This,
        const WCHAR *pElementName,
        int nElementName,
        const WCHAR *pAttributeName,
        int nAttributeName,
        const WCHAR *pType,
        int nType,
        const WCHAR *pValueDefault,
        int nValueDefault,
        const WCHAR *pValue,
        int nValue);

    HRESULT (STDMETHODCALLTYPE *internalEntityDecl)(
        ISAXDeclHandler* This,
        const WCHAR *pName,
        int nName,
        const WCHAR *pValue,
        int nValue);

    HRESULT (STDMETHODCALLTYPE *externalEntityDecl)(
        ISAXDeclHandler* This,
        const WCHAR *pName,
        int nName,
        const WCHAR *pPublicId,
        int nPublicId,
        const WCHAR *pSystemId,
        int nSystemId);

    END_INTERFACE
} ISAXDeclHandlerVtbl;
interface ISAXDeclHandler {
    CONST_VTBL ISAXDeclHandlerVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISAXDeclHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ISAXDeclHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ISAXDeclHandler_Release(This) (This)->lpVtbl->Release(This)
/*** ISAXDeclHandler methods ***/
#define ISAXDeclHandler_elementDecl(This,pName,nName,pModel,nModel) (This)->lpVtbl->elementDecl(This,pName,nName,pModel,nModel)
#define ISAXDeclHandler_attributeDecl(This,pElementName,nElementName,pAttributeName,nAttributeName,pType,nType,pValueDefault,nValueDefault,pValue,nValue) (This)->lpVtbl->attributeDecl(This,pElementName,nElementName,pAttributeName,nAttributeName,pType,nType,pValueDefault,nValueDefault,pValue,nValue)
#define ISAXDeclHandler_internalEntityDecl(This,pName,nName,pValue,nValue) (This)->lpVtbl->internalEntityDecl(This,pName,nName,pValue,nValue)
#define ISAXDeclHandler_externalEntityDecl(This,pName,nName,pPublicId,nPublicId,pSystemId,nSystemId) (This)->lpVtbl->externalEntityDecl(This,pName,nName,pPublicId,nPublicId,pSystemId,nSystemId)
#endif

#endif

HRESULT STDMETHODCALLTYPE ISAXDeclHandler_elementDecl_Proxy(
    ISAXDeclHandler* This,
    const WCHAR *pName,
    int nName,
    const WCHAR *pModel,
    int nModel);
void __RPC_STUB ISAXDeclHandler_elementDecl_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXDeclHandler_attributeDecl_Proxy(
    ISAXDeclHandler* This,
    const WCHAR *pElementName,
    int nElementName,
    const WCHAR *pAttributeName,
    int nAttributeName,
    const WCHAR *pType,
    int nType,
    const WCHAR *pValueDefault,
    int nValueDefault,
    const WCHAR *pValue,
    int nValue);
void __RPC_STUB ISAXDeclHandler_attributeDecl_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXDeclHandler_internalEntityDecl_Proxy(
    ISAXDeclHandler* This,
    const WCHAR *pName,
    int nName,
    const WCHAR *pValue,
    int nValue);
void __RPC_STUB ISAXDeclHandler_internalEntityDecl_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXDeclHandler_externalEntityDecl_Proxy(
    ISAXDeclHandler* This,
    const WCHAR *pName,
    int nName,
    const WCHAR *pPublicId,
    int nPublicId,
    const WCHAR *pSystemId,
    int nSystemId);
void __RPC_STUB ISAXDeclHandler_externalEntityDecl_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ISAXDeclHandler_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ISAXDTDHandler interface
 */
#ifndef __ISAXDTDHandler_INTERFACE_DEFINED__
#define __ISAXDTDHandler_INTERFACE_DEFINED__

DEFINE_GUID(IID_ISAXDTDHandler, 0xe15c1baf, 0xafb3, 0x4d60, 0x8c,0x36, 0x19,0xa8,0xc4,0x5d,0xef,0xed);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface ISAXDTDHandler : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE notationDecl(
        const WCHAR *pName,
        int nName,
        const WCHAR *pPublicId,
        int nPublicId,
        const WCHAR *pSystemId,
        int nSystemId) = 0;

    virtual HRESULT STDMETHODCALLTYPE unparsedEntityDecl(
        const WCHAR *pName,
        int nName,
        const WCHAR *pPublicId,
        int nPublicId,
        const WCHAR *pSystemId,
        int nSystemId,
        const WCHAR *pNotationName,
        int nNotationName) = 0;

};
#else
typedef struct ISAXDTDHandlerVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ISAXDTDHandler* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ISAXDTDHandler* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ISAXDTDHandler* This);

    /*** ISAXDTDHandler methods ***/
    HRESULT (STDMETHODCALLTYPE *notationDecl)(
        ISAXDTDHandler* This,
        const WCHAR *pName,
        int nName,
        const WCHAR *pPublicId,
        int nPublicId,
        const WCHAR *pSystemId,
        int nSystemId);

    HRESULT (STDMETHODCALLTYPE *unparsedEntityDecl)(
        ISAXDTDHandler* This,
        const WCHAR *pName,
        int nName,
        const WCHAR *pPublicId,
        int nPublicId,
        const WCHAR *pSystemId,
        int nSystemId,
        const WCHAR *pNotationName,
        int nNotationName);

    END_INTERFACE
} ISAXDTDHandlerVtbl;
interface ISAXDTDHandler {
    CONST_VTBL ISAXDTDHandlerVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISAXDTDHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ISAXDTDHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ISAXDTDHandler_Release(This) (This)->lpVtbl->Release(This)
/*** ISAXDTDHandler methods ***/
#define ISAXDTDHandler_notationDecl(This,pName,nName,pPublicId,nPublicId,pSystemId,nSystemId) (This)->lpVtbl->notationDecl(This,pName,nName,pPublicId,nPublicId,pSystemId,nSystemId)
#define ISAXDTDHandler_unparsedEntityDecl(This,pName,nName,pPublicId,nPublicId,pSystemId,nSystemId,pNotationName,nNotationName) (This)->lpVtbl->unparsedEntityDecl(This,pName,nName,pPublicId,nPublicId,pSystemId,nSystemId,pNotationName,nNotationName)
#endif

#endif

HRESULT STDMETHODCALLTYPE ISAXDTDHandler_notationDecl_Proxy(
    ISAXDTDHandler* This,
    const WCHAR *pName,
    int nName,
    const WCHAR *pPublicId,
    int nPublicId,
    const WCHAR *pSystemId,
    int nSystemId);
void __RPC_STUB ISAXDTDHandler_notationDecl_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXDTDHandler_unparsedEntityDecl_Proxy(
    ISAXDTDHandler* This,
    const WCHAR *pName,
    int nName,
    const WCHAR *pPublicId,
    int nPublicId,
    const WCHAR *pSystemId,
    int nSystemId,
    const WCHAR *pNotationName,
    int nNotationName);
void __RPC_STUB ISAXDTDHandler_unparsedEntityDecl_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ISAXDTDHandler_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ISAXEntityResolver interface
 */
#ifndef __ISAXEntityResolver_INTERFACE_DEFINED__
#define __ISAXEntityResolver_INTERFACE_DEFINED__

DEFINE_GUID(IID_ISAXEntityResolver, 0x99bca7bd, 0xe8c4, 0x4d5f, 0xa0,0xcf, 0x6d,0x90,0x79,0x01,0xff,0x07);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface ISAXEntityResolver : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE resolveEntity(
        const WCHAR *pPublicId,
        const WCHAR *pSystemId,
        VARIANT *ret) = 0;

};
#else
typedef struct ISAXEntityResolverVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ISAXEntityResolver* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ISAXEntityResolver* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ISAXEntityResolver* This);

    /*** ISAXEntityResolver methods ***/
    HRESULT (STDMETHODCALLTYPE *resolveEntity)(
        ISAXEntityResolver* This,
        const WCHAR *pPublicId,
        const WCHAR *pSystemId,
        VARIANT *ret);

    END_INTERFACE
} ISAXEntityResolverVtbl;
interface ISAXEntityResolver {
    CONST_VTBL ISAXEntityResolverVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISAXEntityResolver_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ISAXEntityResolver_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ISAXEntityResolver_Release(This) (This)->lpVtbl->Release(This)
/*** ISAXEntityResolver methods ***/
#define ISAXEntityResolver_resolveEntity(This,pPublicId,pSystemId,ret) (This)->lpVtbl->resolveEntity(This,pPublicId,pSystemId,ret)
#endif

#endif

HRESULT STDMETHODCALLTYPE ISAXEntityResolver_resolveEntity_Proxy(
    ISAXEntityResolver* This,
    const WCHAR *pPublicId,
    const WCHAR *pSystemId,
    VARIANT *ret);
void __RPC_STUB ISAXEntityResolver_resolveEntity_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ISAXEntityResolver_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ISAXErrorHandler interface
 */
#ifndef __ISAXErrorHandler_INTERFACE_DEFINED__
#define __ISAXErrorHandler_INTERFACE_DEFINED__

DEFINE_GUID(IID_ISAXErrorHandler, 0xa60511c4, 0xccf5, 0x479e, 0x98,0xa3, 0xdc,0x8d,0xc5,0x45,0xb7,0xd0);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface ISAXErrorHandler : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE error(
        ISAXLocator *pLocator,
        const WCHAR *pErrorMessage,
        HRESULT hrErrorCode) = 0;

    virtual HRESULT STDMETHODCALLTYPE fatalError(
        ISAXLocator *pLocator,
        const WCHAR *pErrorMessage,
        HRESULT hrErrorCode) = 0;

    virtual HRESULT STDMETHODCALLTYPE ignorableWarning(
        ISAXLocator *pLocator,
        const WCHAR *pErrorMessage,
        HRESULT hrErrorCode) = 0;

};
#else
typedef struct ISAXErrorHandlerVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ISAXErrorHandler* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ISAXErrorHandler* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ISAXErrorHandler* This);

    /*** ISAXErrorHandler methods ***/
    HRESULT (STDMETHODCALLTYPE *error)(
        ISAXErrorHandler* This,
        ISAXLocator *pLocator,
        const WCHAR *pErrorMessage,
        HRESULT hrErrorCode);

    HRESULT (STDMETHODCALLTYPE *fatalError)(
        ISAXErrorHandler* This,
        ISAXLocator *pLocator,
        const WCHAR *pErrorMessage,
        HRESULT hrErrorCode);

    HRESULT (STDMETHODCALLTYPE *ignorableWarning)(
        ISAXErrorHandler* This,
        ISAXLocator *pLocator,
        const WCHAR *pErrorMessage,
        HRESULT hrErrorCode);

    END_INTERFACE
} ISAXErrorHandlerVtbl;
interface ISAXErrorHandler {
    CONST_VTBL ISAXErrorHandlerVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISAXErrorHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ISAXErrorHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ISAXErrorHandler_Release(This) (This)->lpVtbl->Release(This)
/*** ISAXErrorHandler methods ***/
#define ISAXErrorHandler_error(This,pLocator,pErrorMessage,hrErrorCode) (This)->lpVtbl->error(This,pLocator,pErrorMessage,hrErrorCode)
#define ISAXErrorHandler_fatalError(This,pLocator,pErrorMessage,hrErrorCode) (This)->lpVtbl->fatalError(This,pLocator,pErrorMessage,hrErrorCode)
#define ISAXErrorHandler_ignorableWarning(This,pLocator,pErrorMessage,hrErrorCode) (This)->lpVtbl->ignorableWarning(This,pLocator,pErrorMessage,hrErrorCode)
#endif

#endif

HRESULT STDMETHODCALLTYPE ISAXErrorHandler_error_Proxy(
    ISAXErrorHandler* This,
    ISAXLocator *pLocator,
    const WCHAR *pErrorMessage,
    HRESULT hrErrorCode);
void __RPC_STUB ISAXErrorHandler_error_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXErrorHandler_fatalError_Proxy(
    ISAXErrorHandler* This,
    ISAXLocator *pLocator,
    const WCHAR *pErrorMessage,
    HRESULT hrErrorCode);
void __RPC_STUB ISAXErrorHandler_fatalError_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXErrorHandler_ignorableWarning_Proxy(
    ISAXErrorHandler* This,
    ISAXLocator *pLocator,
    const WCHAR *pErrorMessage,
    HRESULT hrErrorCode);
void __RPC_STUB ISAXErrorHandler_ignorableWarning_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ISAXErrorHandler_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ISAXLexicalHandler interface
 */
#ifndef __ISAXLexicalHandler_INTERFACE_DEFINED__
#define __ISAXLexicalHandler_INTERFACE_DEFINED__

DEFINE_GUID(IID_ISAXLexicalHandler, 0x7f85d5f5, 0x47a8, 0x4497, 0xbd,0xa5, 0x84,0xba,0x04,0x81,0x9e,0xa6);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface ISAXLexicalHandler : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE startDTD(
        const WCHAR *pName,
        int nName,
        const WCHAR *pPublicId,
        int nPublicId,
        const WCHAR *pSystemId,
        int nSystemId) = 0;

    virtual HRESULT STDMETHODCALLTYPE endDTD(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE startEntity(
        const WCHAR *pName,
        int nName) = 0;

    virtual HRESULT STDMETHODCALLTYPE endEntity(
        const WCHAR *pName,
        int nName) = 0;

    virtual HRESULT STDMETHODCALLTYPE startCDATA(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE endCDATA(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE comment(
        const WCHAR *pChars,
        int nChars) = 0;

};
#else
typedef struct ISAXLexicalHandlerVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ISAXLexicalHandler* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ISAXLexicalHandler* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ISAXLexicalHandler* This);

    /*** ISAXLexicalHandler methods ***/
    HRESULT (STDMETHODCALLTYPE *startDTD)(
        ISAXLexicalHandler* This,
        const WCHAR *pName,
        int nName,
        const WCHAR *pPublicId,
        int nPublicId,
        const WCHAR *pSystemId,
        int nSystemId);

    HRESULT (STDMETHODCALLTYPE *endDTD)(
        ISAXLexicalHandler* This);

    HRESULT (STDMETHODCALLTYPE *startEntity)(
        ISAXLexicalHandler* This,
        const WCHAR *pName,
        int nName);

    HRESULT (STDMETHODCALLTYPE *endEntity)(
        ISAXLexicalHandler* This,
        const WCHAR *pName,
        int nName);

    HRESULT (STDMETHODCALLTYPE *startCDATA)(
        ISAXLexicalHandler* This);

    HRESULT (STDMETHODCALLTYPE *endCDATA)(
        ISAXLexicalHandler* This);

    HRESULT (STDMETHODCALLTYPE *comment)(
        ISAXLexicalHandler* This,
        const WCHAR *pChars,
        int nChars);

    END_INTERFACE
} ISAXLexicalHandlerVtbl;
interface ISAXLexicalHandler {
    CONST_VTBL ISAXLexicalHandlerVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISAXLexicalHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ISAXLexicalHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ISAXLexicalHandler_Release(This) (This)->lpVtbl->Release(This)
/*** ISAXLexicalHandler methods ***/
#define ISAXLexicalHandler_startDTD(This,pName,nName,pPublicId,nPublicId,pSystemId,nSystemId) (This)->lpVtbl->startDTD(This,pName,nName,pPublicId,nPublicId,pSystemId,nSystemId)
#define ISAXLexicalHandler_endDTD(This) (This)->lpVtbl->endDTD(This)
#define ISAXLexicalHandler_startEntity(This,pName,nName) (This)->lpVtbl->startEntity(This,pName,nName)
#define ISAXLexicalHandler_endEntity(This,pName,nName) (This)->lpVtbl->endEntity(This,pName,nName)
#define ISAXLexicalHandler_startCDATA(This) (This)->lpVtbl->startCDATA(This)
#define ISAXLexicalHandler_endCDATA(This) (This)->lpVtbl->endCDATA(This)
#define ISAXLexicalHandler_comment(This,pChars,nChars) (This)->lpVtbl->comment(This,pChars,nChars)
#endif

#endif

HRESULT STDMETHODCALLTYPE ISAXLexicalHandler_startDTD_Proxy(
    ISAXLexicalHandler* This,
    const WCHAR *pName,
    int nName,
    const WCHAR *pPublicId,
    int nPublicId,
    const WCHAR *pSystemId,
    int nSystemId);
void __RPC_STUB ISAXLexicalHandler_startDTD_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXLexicalHandler_endDTD_Proxy(
    ISAXLexicalHandler* This);
void __RPC_STUB ISAXLexicalHandler_endDTD_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXLexicalHandler_startEntity_Proxy(
    ISAXLexicalHandler* This,
    const WCHAR *pName,
    int nName);
void __RPC_STUB ISAXLexicalHandler_startEntity_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXLexicalHandler_endEntity_Proxy(
    ISAXLexicalHandler* This,
    const WCHAR *pName,
    int nName);
void __RPC_STUB ISAXLexicalHandler_endEntity_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXLexicalHandler_startCDATA_Proxy(
    ISAXLexicalHandler* This);
void __RPC_STUB ISAXLexicalHandler_startCDATA_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXLexicalHandler_endCDATA_Proxy(
    ISAXLexicalHandler* This);
void __RPC_STUB ISAXLexicalHandler_endCDATA_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXLexicalHandler_comment_Proxy(
    ISAXLexicalHandler* This,
    const WCHAR *pChars,
    int nChars);
void __RPC_STUB ISAXLexicalHandler_comment_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ISAXLexicalHandler_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ISAXLocator interface
 */
#ifndef __ISAXLocator_INTERFACE_DEFINED__
#define __ISAXLocator_INTERFACE_DEFINED__

DEFINE_GUID(IID_ISAXLocator, 0x9b7e472a, 0x0de4, 0x4640, 0xbf,0xf3, 0x84,0xd3,0x8a,0x05,0x1c,0x31);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface ISAXLocator : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE getColumnNumber(
        int *nColumn) = 0;

    virtual HRESULT STDMETHODCALLTYPE getLineNumber(
        int *nLine) = 0;

    virtual HRESULT STDMETHODCALLTYPE getPublicId(
        const WCHAR **publicId) = 0;

    virtual HRESULT STDMETHODCALLTYPE getSystemId(
        const WCHAR **systemId) = 0;

};
#else
typedef struct ISAXLocatorVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ISAXLocator* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ISAXLocator* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ISAXLocator* This);

    /*** ISAXLocator methods ***/
    HRESULT (STDMETHODCALLTYPE *getColumnNumber)(
        ISAXLocator* This,
        int *nColumn);

    HRESULT (STDMETHODCALLTYPE *getLineNumber)(
        ISAXLocator* This,
        int *nLine);

    HRESULT (STDMETHODCALLTYPE *getPublicId)(
        ISAXLocator* This,
        const WCHAR **publicId);

    HRESULT (STDMETHODCALLTYPE *getSystemId)(
        ISAXLocator* This,
        const WCHAR **systemId);

    END_INTERFACE
} ISAXLocatorVtbl;
interface ISAXLocator {
    CONST_VTBL ISAXLocatorVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISAXLocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ISAXLocator_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ISAXLocator_Release(This) (This)->lpVtbl->Release(This)
/*** ISAXLocator methods ***/
#define ISAXLocator_getColumnNumber(This,nColumn) (This)->lpVtbl->getColumnNumber(This,nColumn)
#define ISAXLocator_getLineNumber(This,nLine) (This)->lpVtbl->getLineNumber(This,nLine)
#define ISAXLocator_getPublicId(This,publicId) (This)->lpVtbl->getPublicId(This,publicId)
#define ISAXLocator_getSystemId(This,systemId) (This)->lpVtbl->getSystemId(This,systemId)
#endif

#endif

HRESULT STDMETHODCALLTYPE ISAXLocator_getColumnNumber_Proxy(
    ISAXLocator* This,
    int *nColumn);
void __RPC_STUB ISAXLocator_getColumnNumber_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXLocator_getLineNumber_Proxy(
    ISAXLocator* This,
    int *nLine);
void __RPC_STUB ISAXLocator_getLineNumber_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXLocator_getPublicId_Proxy(
    ISAXLocator* This,
    const WCHAR **publicId);
void __RPC_STUB ISAXLocator_getPublicId_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXLocator_getSystemId_Proxy(
    ISAXLocator* This,
    const WCHAR **systemId);
void __RPC_STUB ISAXLocator_getSystemId_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ISAXLocator_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ISAXXMLFilter interface
 */
#ifndef __ISAXXMLFilter_INTERFACE_DEFINED__
#define __ISAXXMLFilter_INTERFACE_DEFINED__

DEFINE_GUID(IID_ISAXXMLFilter, 0x70409222, 0xca09, 0x4475, 0xac,0xb8, 0x40,0x31,0x2f,0xe8,0xd1,0x45);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface ISAXXMLFilter : public ISAXXMLReader
{
    virtual HRESULT STDMETHODCALLTYPE getParent(
        ISAXXMLReader **pReader) = 0;

    virtual HRESULT STDMETHODCALLTYPE putParent(
        ISAXXMLReader *reader) = 0;

};
#else
typedef struct ISAXXMLFilterVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ISAXXMLFilter* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ISAXXMLFilter* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ISAXXMLFilter* This);

    /*** ISAXXMLReader methods ***/
    HRESULT (STDMETHODCALLTYPE *getFeature)(
        ISAXXMLFilter* This,
        const WCHAR *pFeature,
        VARIANT_BOOL *pValue);

    HRESULT (STDMETHODCALLTYPE *putFeature)(
        ISAXXMLFilter* This,
        const WCHAR *pFeature,
        VARIANT_BOOL vfValue);

    HRESULT (STDMETHODCALLTYPE *getProperty)(
        ISAXXMLFilter* This,
        const WCHAR *pProp,
        VARIANT *pValue);

    HRESULT (STDMETHODCALLTYPE *putProperty)(
        ISAXXMLFilter* This,
        const WCHAR *pProp,
        VARIANT value);

    HRESULT (STDMETHODCALLTYPE *getEntityResolver)(
        ISAXXMLFilter* This,
        ISAXEntityResolver **ppEntityResolver);

    HRESULT (STDMETHODCALLTYPE *putEntityResolver)(
        ISAXXMLFilter* This,
        ISAXEntityResolver *pEntityResolver);

    HRESULT (STDMETHODCALLTYPE *getContentHandler)(
        ISAXXMLFilter* This,
        ISAXContentHandler **pContentHandler);

    HRESULT (STDMETHODCALLTYPE *putContentHandler)(
        ISAXXMLFilter* This,
        ISAXContentHandler *contentHandler);

    HRESULT (STDMETHODCALLTYPE *getDTDHandler)(
        ISAXXMLFilter* This,
        ISAXDTDHandler **pDTDHandler);

    HRESULT (STDMETHODCALLTYPE *putDTDHandler)(
        ISAXXMLFilter* This,
        ISAXDTDHandler *pDTDHandler);

    HRESULT (STDMETHODCALLTYPE *getErrorHandler)(
        ISAXXMLFilter* This,
        ISAXErrorHandler **pErrorHandler);

    HRESULT (STDMETHODCALLTYPE *putErrorHandler)(
        ISAXXMLFilter* This,
        ISAXErrorHandler *errorHandler);

    HRESULT (STDMETHODCALLTYPE *getBaseURL)(
        ISAXXMLFilter* This,
        const WCHAR **pBaseUrl);

    HRESULT (STDMETHODCALLTYPE *putBaseURL)(
        ISAXXMLFilter* This,
        const WCHAR *pBaseUrl);

    HRESULT (STDMETHODCALLTYPE *getSecureBaseURL)(
        ISAXXMLFilter* This,
        const WCHAR **pSecureBaseUrl);

    HRESULT (STDMETHODCALLTYPE *putSecureBaseURL)(
        ISAXXMLFilter* This,
        const WCHAR *secureBaseUrl);

    HRESULT (STDMETHODCALLTYPE *parse)(
        ISAXXMLFilter* This,
        VARIANT varInput);

    HRESULT (STDMETHODCALLTYPE *parseURL)(
        ISAXXMLFilter* This,
        const WCHAR *url);

    /*** ISAXXMLFilter methods ***/
    HRESULT (STDMETHODCALLTYPE *getParent)(
        ISAXXMLFilter* This,
        ISAXXMLReader **pReader);

    HRESULT (STDMETHODCALLTYPE *putParent)(
        ISAXXMLFilter* This,
        ISAXXMLReader *reader);

    END_INTERFACE
} ISAXXMLFilterVtbl;
interface ISAXXMLFilter {
    CONST_VTBL ISAXXMLFilterVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISAXXMLFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ISAXXMLFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ISAXXMLFilter_Release(This) (This)->lpVtbl->Release(This)
/*** ISAXXMLReader methods ***/
#define ISAXXMLFilter_getFeature(This,pFeature,pValue) (This)->lpVtbl->getFeature(This,pFeature,pValue)
#define ISAXXMLFilter_putFeature(This,pFeature,vfValue) (This)->lpVtbl->putFeature(This,pFeature,vfValue)
#define ISAXXMLFilter_getProperty(This,pProp,pValue) (This)->lpVtbl->getProperty(This,pProp,pValue)
#define ISAXXMLFilter_putProperty(This,pProp,value) (This)->lpVtbl->putProperty(This,pProp,value)
#define ISAXXMLFilter_getEntityResolver(This,ppEntityResolver) (This)->lpVtbl->getEntityResolver(This,ppEntityResolver)
#define ISAXXMLFilter_putEntityResolver(This,pEntityResolver) (This)->lpVtbl->putEntityResolver(This,pEntityResolver)
#define ISAXXMLFilter_getContentHandler(This,pContentHandler) (This)->lpVtbl->getContentHandler(This,pContentHandler)
#define ISAXXMLFilter_putContentHandler(This,contentHandler) (This)->lpVtbl->putContentHandler(This,contentHandler)
#define ISAXXMLFilter_getDTDHandler(This,pDTDHandler) (This)->lpVtbl->getDTDHandler(This,pDTDHandler)
#define ISAXXMLFilter_putDTDHandler(This,pDTDHandler) (This)->lpVtbl->putDTDHandler(This,pDTDHandler)
#define ISAXXMLFilter_getErrorHandler(This,pErrorHandler) (This)->lpVtbl->getErrorHandler(This,pErrorHandler)
#define ISAXXMLFilter_putErrorHandler(This,errorHandler) (This)->lpVtbl->putErrorHandler(This,errorHandler)
#define ISAXXMLFilter_getBaseURL(This,pBaseUrl) (This)->lpVtbl->getBaseURL(This,pBaseUrl)
#define ISAXXMLFilter_putBaseURL(This,pBaseUrl) (This)->lpVtbl->putBaseURL(This,pBaseUrl)
#define ISAXXMLFilter_getSecureBaseURL(This,pSecureBaseUrl) (This)->lpVtbl->getSecureBaseURL(This,pSecureBaseUrl)
#define ISAXXMLFilter_putSecureBaseURL(This,secureBaseUrl) (This)->lpVtbl->putSecureBaseURL(This,secureBaseUrl)
#define ISAXXMLFilter_parse(This,varInput) (This)->lpVtbl->parse(This,varInput)
#define ISAXXMLFilter_parseURL(This,url) (This)->lpVtbl->parseURL(This,url)
/*** ISAXXMLFilter methods ***/
#define ISAXXMLFilter_getParent(This,pReader) (This)->lpVtbl->getParent(This,pReader)
#define ISAXXMLFilter_putParent(This,reader) (This)->lpVtbl->putParent(This,reader)
#endif

#endif

HRESULT STDMETHODCALLTYPE ISAXXMLFilter_getParent_Proxy(
    ISAXXMLFilter* This,
    ISAXXMLReader **pReader);
void __RPC_STUB ISAXXMLFilter_getParent_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXXMLFilter_putParent_Proxy(
    ISAXXMLFilter* This,
    ISAXXMLReader *reader);
void __RPC_STUB ISAXXMLFilter_putParent_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ISAXXMLFilter_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ISAXXMLReader interface
 */
#ifndef __ISAXXMLReader_INTERFACE_DEFINED__
#define __ISAXXMLReader_INTERFACE_DEFINED__

DEFINE_GUID(IID_ISAXXMLReader, 0xa4f96ed0, 0xf829, 0x476e, 0x81,0xc0, 0xcd,0xc7,0xbd,0x2a,0x08,0x02);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface ISAXXMLReader : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE getFeature(
        const WCHAR *pFeature,
        VARIANT_BOOL *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE putFeature(
        const WCHAR *pFeature,
        VARIANT_BOOL vfValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE getProperty(
        const WCHAR *pProp,
        VARIANT *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE putProperty(
        const WCHAR *pProp,
        VARIANT value) = 0;

    virtual HRESULT STDMETHODCALLTYPE getEntityResolver(
        ISAXEntityResolver **ppEntityResolver) = 0;

    virtual HRESULT STDMETHODCALLTYPE putEntityResolver(
        ISAXEntityResolver *pEntityResolver) = 0;

    virtual HRESULT STDMETHODCALLTYPE getContentHandler(
        ISAXContentHandler **pContentHandler) = 0;

    virtual HRESULT STDMETHODCALLTYPE putContentHandler(
        ISAXContentHandler *contentHandler) = 0;

    virtual HRESULT STDMETHODCALLTYPE getDTDHandler(
        ISAXDTDHandler **pDTDHandler) = 0;

    virtual HRESULT STDMETHODCALLTYPE putDTDHandler(
        ISAXDTDHandler *pDTDHandler) = 0;

    virtual HRESULT STDMETHODCALLTYPE getErrorHandler(
        ISAXErrorHandler **pErrorHandler) = 0;

    virtual HRESULT STDMETHODCALLTYPE putErrorHandler(
        ISAXErrorHandler *errorHandler) = 0;

    virtual HRESULT STDMETHODCALLTYPE getBaseURL(
        const WCHAR **pBaseUrl) = 0;

    virtual HRESULT STDMETHODCALLTYPE putBaseURL(
        const WCHAR *pBaseUrl) = 0;

    virtual HRESULT STDMETHODCALLTYPE getSecureBaseURL(
        const WCHAR **pSecureBaseUrl) = 0;

    virtual HRESULT STDMETHODCALLTYPE putSecureBaseURL(
        const WCHAR *secureBaseUrl) = 0;

    virtual HRESULT STDMETHODCALLTYPE parse(
        VARIANT varInput) = 0;

    virtual HRESULT STDMETHODCALLTYPE parseURL(
        const WCHAR *url) = 0;

};
#else
typedef struct ISAXXMLReaderVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ISAXXMLReader* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ISAXXMLReader* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ISAXXMLReader* This);

    /*** ISAXXMLReader methods ***/
    HRESULT (STDMETHODCALLTYPE *getFeature)(
        ISAXXMLReader* This,
        const WCHAR *pFeature,
        VARIANT_BOOL *pValue);

    HRESULT (STDMETHODCALLTYPE *putFeature)(
        ISAXXMLReader* This,
        const WCHAR *pFeature,
        VARIANT_BOOL vfValue);

    HRESULT (STDMETHODCALLTYPE *getProperty)(
        ISAXXMLReader* This,
        const WCHAR *pProp,
        VARIANT *pValue);

    HRESULT (STDMETHODCALLTYPE *putProperty)(
        ISAXXMLReader* This,
        const WCHAR *pProp,
        VARIANT value);

    HRESULT (STDMETHODCALLTYPE *getEntityResolver)(
        ISAXXMLReader* This,
        ISAXEntityResolver **ppEntityResolver);

    HRESULT (STDMETHODCALLTYPE *putEntityResolver)(
        ISAXXMLReader* This,
        ISAXEntityResolver *pEntityResolver);

    HRESULT (STDMETHODCALLTYPE *getContentHandler)(
        ISAXXMLReader* This,
        ISAXContentHandler **pContentHandler);

    HRESULT (STDMETHODCALLTYPE *putContentHandler)(
        ISAXXMLReader* This,
        ISAXContentHandler *contentHandler);

    HRESULT (STDMETHODCALLTYPE *getDTDHandler)(
        ISAXXMLReader* This,
        ISAXDTDHandler **pDTDHandler);

    HRESULT (STDMETHODCALLTYPE *putDTDHandler)(
        ISAXXMLReader* This,
        ISAXDTDHandler *pDTDHandler);

    HRESULT (STDMETHODCALLTYPE *getErrorHandler)(
        ISAXXMLReader* This,
        ISAXErrorHandler **pErrorHandler);

    HRESULT (STDMETHODCALLTYPE *putErrorHandler)(
        ISAXXMLReader* This,
        ISAXErrorHandler *errorHandler);

    HRESULT (STDMETHODCALLTYPE *getBaseURL)(
        ISAXXMLReader* This,
        const WCHAR **pBaseUrl);

    HRESULT (STDMETHODCALLTYPE *putBaseURL)(
        ISAXXMLReader* This,
        const WCHAR *pBaseUrl);

    HRESULT (STDMETHODCALLTYPE *getSecureBaseURL)(
        ISAXXMLReader* This,
        const WCHAR **pSecureBaseUrl);

    HRESULT (STDMETHODCALLTYPE *putSecureBaseURL)(
        ISAXXMLReader* This,
        const WCHAR *secureBaseUrl);

    HRESULT (STDMETHODCALLTYPE *parse)(
        ISAXXMLReader* This,
        VARIANT varInput);

    HRESULT (STDMETHODCALLTYPE *parseURL)(
        ISAXXMLReader* This,
        const WCHAR *url);

    END_INTERFACE
} ISAXXMLReaderVtbl;
interface ISAXXMLReader {
    CONST_VTBL ISAXXMLReaderVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISAXXMLReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ISAXXMLReader_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ISAXXMLReader_Release(This) (This)->lpVtbl->Release(This)
/*** ISAXXMLReader methods ***/
#define ISAXXMLReader_getFeature(This,pFeature,pValue) (This)->lpVtbl->getFeature(This,pFeature,pValue)
#define ISAXXMLReader_putFeature(This,pFeature,vfValue) (This)->lpVtbl->putFeature(This,pFeature,vfValue)
#define ISAXXMLReader_getProperty(This,pProp,pValue) (This)->lpVtbl->getProperty(This,pProp,pValue)
#define ISAXXMLReader_putProperty(This,pProp,value) (This)->lpVtbl->putProperty(This,pProp,value)
#define ISAXXMLReader_getEntityResolver(This,ppEntityResolver) (This)->lpVtbl->getEntityResolver(This,ppEntityResolver)
#define ISAXXMLReader_putEntityResolver(This,pEntityResolver) (This)->lpVtbl->putEntityResolver(This,pEntityResolver)
#define ISAXXMLReader_getContentHandler(This,pContentHandler) (This)->lpVtbl->getContentHandler(This,pContentHandler)
#define ISAXXMLReader_putContentHandler(This,contentHandler) (This)->lpVtbl->putContentHandler(This,contentHandler)
#define ISAXXMLReader_getDTDHandler(This,pDTDHandler) (This)->lpVtbl->getDTDHandler(This,pDTDHandler)
#define ISAXXMLReader_putDTDHandler(This,pDTDHandler) (This)->lpVtbl->putDTDHandler(This,pDTDHandler)
#define ISAXXMLReader_getErrorHandler(This,pErrorHandler) (This)->lpVtbl->getErrorHandler(This,pErrorHandler)
#define ISAXXMLReader_putErrorHandler(This,errorHandler) (This)->lpVtbl->putErrorHandler(This,errorHandler)
#define ISAXXMLReader_getBaseURL(This,pBaseUrl) (This)->lpVtbl->getBaseURL(This,pBaseUrl)
#define ISAXXMLReader_putBaseURL(This,pBaseUrl) (This)->lpVtbl->putBaseURL(This,pBaseUrl)
#define ISAXXMLReader_getSecureBaseURL(This,pSecureBaseUrl) (This)->lpVtbl->getSecureBaseURL(This,pSecureBaseUrl)
#define ISAXXMLReader_putSecureBaseURL(This,secureBaseUrl) (This)->lpVtbl->putSecureBaseURL(This,secureBaseUrl)
#define ISAXXMLReader_parse(This,varInput) (This)->lpVtbl->parse(This,varInput)
#define ISAXXMLReader_parseURL(This,url) (This)->lpVtbl->parseURL(This,url)
#endif

#endif

HRESULT STDMETHODCALLTYPE ISAXXMLReader_getFeature_Proxy(
    ISAXXMLReader* This,
    const WCHAR *pFeature,
    VARIANT_BOOL *pValue);
void __RPC_STUB ISAXXMLReader_getFeature_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXXMLReader_putFeature_Proxy(
    ISAXXMLReader* This,
    const WCHAR *pFeature,
    VARIANT_BOOL vfValue);
void __RPC_STUB ISAXXMLReader_putFeature_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXXMLReader_getProperty_Proxy(
    ISAXXMLReader* This,
    const WCHAR *pProp,
    VARIANT *pValue);
void __RPC_STUB ISAXXMLReader_getProperty_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXXMLReader_putProperty_Proxy(
    ISAXXMLReader* This,
    const WCHAR *pProp,
    VARIANT value);
void __RPC_STUB ISAXXMLReader_putProperty_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXXMLReader_getEntityResolver_Proxy(
    ISAXXMLReader* This,
    ISAXEntityResolver **ppEntityResolver);
void __RPC_STUB ISAXXMLReader_getEntityResolver_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXXMLReader_putEntityResolver_Proxy(
    ISAXXMLReader* This,
    ISAXEntityResolver *pEntityResolver);
void __RPC_STUB ISAXXMLReader_putEntityResolver_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXXMLReader_getContentHandler_Proxy(
    ISAXXMLReader* This,
    ISAXContentHandler **pContentHandler);
void __RPC_STUB ISAXXMLReader_getContentHandler_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXXMLReader_putContentHandler_Proxy(
    ISAXXMLReader* This,
    ISAXContentHandler *contentHandler);
void __RPC_STUB ISAXXMLReader_putContentHandler_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXXMLReader_getDTDHandler_Proxy(
    ISAXXMLReader* This,
    ISAXDTDHandler **pDTDHandler);
void __RPC_STUB ISAXXMLReader_getDTDHandler_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXXMLReader_putDTDHandler_Proxy(
    ISAXXMLReader* This,
    ISAXDTDHandler *pDTDHandler);
void __RPC_STUB ISAXXMLReader_putDTDHandler_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXXMLReader_getErrorHandler_Proxy(
    ISAXXMLReader* This,
    ISAXErrorHandler **pErrorHandler);
void __RPC_STUB ISAXXMLReader_getErrorHandler_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXXMLReader_putErrorHandler_Proxy(
    ISAXXMLReader* This,
    ISAXErrorHandler *errorHandler);
void __RPC_STUB ISAXXMLReader_putErrorHandler_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXXMLReader_getBaseURL_Proxy(
    ISAXXMLReader* This,
    const WCHAR **pBaseUrl);
void __RPC_STUB ISAXXMLReader_getBaseURL_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXXMLReader_putBaseURL_Proxy(
    ISAXXMLReader* This,
    const WCHAR *pBaseUrl);
void __RPC_STUB ISAXXMLReader_putBaseURL_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXXMLReader_getSecureBaseURL_Proxy(
    ISAXXMLReader* This,
    const WCHAR **pSecureBaseUrl);
void __RPC_STUB ISAXXMLReader_getSecureBaseURL_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXXMLReader_putSecureBaseURL_Proxy(
    ISAXXMLReader* This,
    const WCHAR *secureBaseUrl);
void __RPC_STUB ISAXXMLReader_putSecureBaseURL_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXXMLReader_parse_Proxy(
    ISAXXMLReader* This,
    VARIANT varInput);
void __RPC_STUB ISAXXMLReader_parse_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISAXXMLReader_parseURL_Proxy(
    ISAXXMLReader* This,
    const WCHAR *url);
void __RPC_STUB ISAXXMLReader_parseURL_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ISAXXMLReader_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IVBSAXAttributes interface
 */
#ifndef __IVBSAXAttributes_INTERFACE_DEFINED__
#define __IVBSAXAttributes_INTERFACE_DEFINED__

DEFINE_GUID(IID_IVBSAXAttributes, 0x10dc0586, 0x132b, 0x4cac, 0x8b,0xb3, 0xdb,0x00,0xac,0x8b,0x7e,0xe0);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IVBSAXAttributes : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_length(
        int *nLength) = 0;

    virtual HRESULT STDMETHODCALLTYPE getURI(
        int nIndex,
        BSTR *uri) = 0;

    virtual HRESULT STDMETHODCALLTYPE getLocalName(
        int nIndex,
        BSTR *localName) = 0;

    virtual HRESULT STDMETHODCALLTYPE getQName(
        int nIndex,
        BSTR *QName) = 0;

    virtual HRESULT STDMETHODCALLTYPE getIndexFromName(
        BSTR uri,
        BSTR localName,
        int *nIndex) = 0;

    virtual HRESULT STDMETHODCALLTYPE getIndexFromQName(
        BSTR QName,
        int *nIndex) = 0;

    virtual HRESULT STDMETHODCALLTYPE getType(
        int nIndex,
        BSTR *type) = 0;

    virtual HRESULT STDMETHODCALLTYPE getTypeFromName(
        BSTR uri,
        BSTR localName,
        BSTR *type) = 0;

    virtual HRESULT STDMETHODCALLTYPE getTypeFromQName(
        BSTR QName,
        BSTR *type) = 0;

    virtual HRESULT STDMETHODCALLTYPE getValue(
        int nIndex,
        BSTR *value) = 0;

    virtual HRESULT STDMETHODCALLTYPE getValueFromName(
        BSTR uri,
        BSTR localName,
        BSTR *value) = 0;

    virtual HRESULT STDMETHODCALLTYPE getValueFromQName(
        BSTR QName,
        BSTR *value) = 0;

};
#else
typedef struct IVBSAXAttributesVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IVBSAXAttributes* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IVBSAXAttributes* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IVBSAXAttributes* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IVBSAXAttributes* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IVBSAXAttributes* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IVBSAXAttributes* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IVBSAXAttributes* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IVBSAXAttributes methods ***/
    HRESULT (STDMETHODCALLTYPE *get_length)(
        IVBSAXAttributes* This,
        int *nLength);

    HRESULT (STDMETHODCALLTYPE *getURI)(
        IVBSAXAttributes* This,
        int nIndex,
        BSTR *uri);

    HRESULT (STDMETHODCALLTYPE *getLocalName)(
        IVBSAXAttributes* This,
        int nIndex,
        BSTR *localName);

    HRESULT (STDMETHODCALLTYPE *getQName)(
        IVBSAXAttributes* This,
        int nIndex,
        BSTR *QName);

    HRESULT (STDMETHODCALLTYPE *getIndexFromName)(
        IVBSAXAttributes* This,
        BSTR uri,
        BSTR localName,
        int *nIndex);

    HRESULT (STDMETHODCALLTYPE *getIndexFromQName)(
        IVBSAXAttributes* This,
        BSTR QName,
        int *nIndex);

    HRESULT (STDMETHODCALLTYPE *getType)(
        IVBSAXAttributes* This,
        int nIndex,
        BSTR *type);

    HRESULT (STDMETHODCALLTYPE *getTypeFromName)(
        IVBSAXAttributes* This,
        BSTR uri,
        BSTR localName,
        BSTR *type);

    HRESULT (STDMETHODCALLTYPE *getTypeFromQName)(
        IVBSAXAttributes* This,
        BSTR QName,
        BSTR *type);

    HRESULT (STDMETHODCALLTYPE *getValue)(
        IVBSAXAttributes* This,
        int nIndex,
        BSTR *value);

    HRESULT (STDMETHODCALLTYPE *getValueFromName)(
        IVBSAXAttributes* This,
        BSTR uri,
        BSTR localName,
        BSTR *value);

    HRESULT (STDMETHODCALLTYPE *getValueFromQName)(
        IVBSAXAttributes* This,
        BSTR QName,
        BSTR *value);

    END_INTERFACE
} IVBSAXAttributesVtbl;
interface IVBSAXAttributes {
    CONST_VTBL IVBSAXAttributesVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IVBSAXAttributes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IVBSAXAttributes_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IVBSAXAttributes_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IVBSAXAttributes_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IVBSAXAttributes_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IVBSAXAttributes_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IVBSAXAttributes_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IVBSAXAttributes methods ***/
#define IVBSAXAttributes_get_length(This,nLength) (This)->lpVtbl->get_length(This,nLength)
#define IVBSAXAttributes_getURI(This,nIndex,uri) (This)->lpVtbl->getURI(This,nIndex,uri)
#define IVBSAXAttributes_getLocalName(This,nIndex,localName) (This)->lpVtbl->getLocalName(This,nIndex,localName)
#define IVBSAXAttributes_getQName(This,nIndex,QName) (This)->lpVtbl->getQName(This,nIndex,QName)
#define IVBSAXAttributes_getIndexFromName(This,uri,localName,nIndex) (This)->lpVtbl->getIndexFromName(This,uri,localName,nIndex)
#define IVBSAXAttributes_getIndexFromQName(This,QName,nIndex) (This)->lpVtbl->getIndexFromQName(This,QName,nIndex)
#define IVBSAXAttributes_getType(This,nIndex,type) (This)->lpVtbl->getType(This,nIndex,type)
#define IVBSAXAttributes_getTypeFromName(This,uri,localName,type) (This)->lpVtbl->getTypeFromName(This,uri,localName,type)
#define IVBSAXAttributes_getTypeFromQName(This,QName,type) (This)->lpVtbl->getTypeFromQName(This,QName,type)
#define IVBSAXAttributes_getValue(This,nIndex,value) (This)->lpVtbl->getValue(This,nIndex,value)
#define IVBSAXAttributes_getValueFromName(This,uri,localName,value) (This)->lpVtbl->getValueFromName(This,uri,localName,value)
#define IVBSAXAttributes_getValueFromQName(This,QName,value) (This)->lpVtbl->getValueFromQName(This,QName,value)
#endif

#endif

HRESULT STDMETHODCALLTYPE IVBSAXAttributes_get_length_Proxy(
    IVBSAXAttributes* This,
    int *nLength);
void __RPC_STUB IVBSAXAttributes_get_length_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXAttributes_getURI_Proxy(
    IVBSAXAttributes* This,
    int nIndex,
    BSTR *uri);
void __RPC_STUB IVBSAXAttributes_getURI_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXAttributes_getLocalName_Proxy(
    IVBSAXAttributes* This,
    int nIndex,
    BSTR *localName);
void __RPC_STUB IVBSAXAttributes_getLocalName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXAttributes_getQName_Proxy(
    IVBSAXAttributes* This,
    int nIndex,
    BSTR *QName);
void __RPC_STUB IVBSAXAttributes_getQName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXAttributes_getIndexFromName_Proxy(
    IVBSAXAttributes* This,
    BSTR uri,
    BSTR localName,
    int *nIndex);
void __RPC_STUB IVBSAXAttributes_getIndexFromName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXAttributes_getIndexFromQName_Proxy(
    IVBSAXAttributes* This,
    BSTR QName,
    int *nIndex);
void __RPC_STUB IVBSAXAttributes_getIndexFromQName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXAttributes_getType_Proxy(
    IVBSAXAttributes* This,
    int nIndex,
    BSTR *type);
void __RPC_STUB IVBSAXAttributes_getType_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXAttributes_getTypeFromName_Proxy(
    IVBSAXAttributes* This,
    BSTR uri,
    BSTR localName,
    BSTR *type);
void __RPC_STUB IVBSAXAttributes_getTypeFromName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXAttributes_getTypeFromQName_Proxy(
    IVBSAXAttributes* This,
    BSTR QName,
    BSTR *type);
void __RPC_STUB IVBSAXAttributes_getTypeFromQName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXAttributes_getValue_Proxy(
    IVBSAXAttributes* This,
    int nIndex,
    BSTR *value);
void __RPC_STUB IVBSAXAttributes_getValue_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXAttributes_getValueFromName_Proxy(
    IVBSAXAttributes* This,
    BSTR uri,
    BSTR localName,
    BSTR *value);
void __RPC_STUB IVBSAXAttributes_getValueFromName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXAttributes_getValueFromQName_Proxy(
    IVBSAXAttributes* This,
    BSTR QName,
    BSTR *value);
void __RPC_STUB IVBSAXAttributes_getValueFromQName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IVBSAXAttributes_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IVBSAXContentHandler interface
 */
#ifndef __IVBSAXContentHandler_INTERFACE_DEFINED__
#define __IVBSAXContentHandler_INTERFACE_DEFINED__

DEFINE_GUID(IID_IVBSAXContentHandler, 0x2ed7290a, 0x4dd5, 0x4b46, 0xbb,0x26, 0x4e,0x41,0x55,0xe7,0x7f,0xaa);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IVBSAXContentHandler : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE putref_documentLocator(
        IVBSAXLocator *oLocator) = 0;

    virtual HRESULT STDMETHODCALLTYPE startDocument(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE endDocument(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE startPrefixMapping(
        BSTR *prefix,
        BSTR *uri) = 0;

    virtual HRESULT STDMETHODCALLTYPE endPrefixMapping(
        BSTR *prefix) = 0;

    virtual HRESULT STDMETHODCALLTYPE startElement(
        BSTR *namespaceURI,
        BSTR *localName,
        BSTR *QName,
        IVBSAXAttributes *oAttributes) = 0;

    virtual HRESULT STDMETHODCALLTYPE endElement(
        BSTR *namespaceURI,
        BSTR *localName,
        BSTR *strQName) = 0;

    virtual HRESULT STDMETHODCALLTYPE characters(
        BSTR *chars) = 0;

    virtual HRESULT STDMETHODCALLTYPE ignorableWhitespace(
        BSTR *chars) = 0;

    virtual HRESULT STDMETHODCALLTYPE processingInstruction(
        BSTR *target,
        BSTR *data) = 0;

    virtual HRESULT STDMETHODCALLTYPE skippedEntity(
        BSTR *name) = 0;

};
#else
typedef struct IVBSAXContentHandlerVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IVBSAXContentHandler* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IVBSAXContentHandler* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IVBSAXContentHandler* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IVBSAXContentHandler* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IVBSAXContentHandler* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IVBSAXContentHandler* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IVBSAXContentHandler* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IVBSAXContentHandler methods ***/
    HRESULT (STDMETHODCALLTYPE *putref_documentLocator)(
        IVBSAXContentHandler* This,
        IVBSAXLocator *oLocator);

    HRESULT (STDMETHODCALLTYPE *startDocument)(
        IVBSAXContentHandler* This);

    HRESULT (STDMETHODCALLTYPE *endDocument)(
        IVBSAXContentHandler* This);

    HRESULT (STDMETHODCALLTYPE *startPrefixMapping)(
        IVBSAXContentHandler* This,
        BSTR *prefix,
        BSTR *uri);

    HRESULT (STDMETHODCALLTYPE *endPrefixMapping)(
        IVBSAXContentHandler* This,
        BSTR *prefix);

    HRESULT (STDMETHODCALLTYPE *startElement)(
        IVBSAXContentHandler* This,
        BSTR *namespaceURI,
        BSTR *localName,
        BSTR *QName,
        IVBSAXAttributes *oAttributes);

    HRESULT (STDMETHODCALLTYPE *endElement)(
        IVBSAXContentHandler* This,
        BSTR *namespaceURI,
        BSTR *localName,
        BSTR *strQName);

    HRESULT (STDMETHODCALLTYPE *characters)(
        IVBSAXContentHandler* This,
        BSTR *chars);

    HRESULT (STDMETHODCALLTYPE *ignorableWhitespace)(
        IVBSAXContentHandler* This,
        BSTR *chars);

    HRESULT (STDMETHODCALLTYPE *processingInstruction)(
        IVBSAXContentHandler* This,
        BSTR *target,
        BSTR *data);

    HRESULT (STDMETHODCALLTYPE *skippedEntity)(
        IVBSAXContentHandler* This,
        BSTR *name);

    END_INTERFACE
} IVBSAXContentHandlerVtbl;
interface IVBSAXContentHandler {
    CONST_VTBL IVBSAXContentHandlerVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IVBSAXContentHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IVBSAXContentHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IVBSAXContentHandler_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IVBSAXContentHandler_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IVBSAXContentHandler_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IVBSAXContentHandler_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IVBSAXContentHandler_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IVBSAXContentHandler methods ***/
#define IVBSAXContentHandler_putref_documentLocator(This,oLocator) (This)->lpVtbl->putref_documentLocator(This,oLocator)
#define IVBSAXContentHandler_startDocument(This) (This)->lpVtbl->startDocument(This)
#define IVBSAXContentHandler_endDocument(This) (This)->lpVtbl->endDocument(This)
#define IVBSAXContentHandler_startPrefixMapping(This,prefix,uri) (This)->lpVtbl->startPrefixMapping(This,prefix,uri)
#define IVBSAXContentHandler_endPrefixMapping(This,prefix) (This)->lpVtbl->endPrefixMapping(This,prefix)
#define IVBSAXContentHandler_startElement(This,namespaceURI,localName,QName,oAttributes) (This)->lpVtbl->startElement(This,namespaceURI,localName,QName,oAttributes)
#define IVBSAXContentHandler_endElement(This,namespaceURI,localName,strQName) (This)->lpVtbl->endElement(This,namespaceURI,localName,strQName)
#define IVBSAXContentHandler_characters(This,chars) (This)->lpVtbl->characters(This,chars)
#define IVBSAXContentHandler_ignorableWhitespace(This,chars) (This)->lpVtbl->ignorableWhitespace(This,chars)
#define IVBSAXContentHandler_processingInstruction(This,target,data) (This)->lpVtbl->processingInstruction(This,target,data)
#define IVBSAXContentHandler_skippedEntity(This,name) (This)->lpVtbl->skippedEntity(This,name)
#endif

#endif

HRESULT STDMETHODCALLTYPE IVBSAXContentHandler_putref_documentLocator_Proxy(
    IVBSAXContentHandler* This,
    IVBSAXLocator *oLocator);
void __RPC_STUB IVBSAXContentHandler_putref_documentLocator_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXContentHandler_startDocument_Proxy(
    IVBSAXContentHandler* This);
void __RPC_STUB IVBSAXContentHandler_startDocument_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXContentHandler_endDocument_Proxy(
    IVBSAXContentHandler* This);
void __RPC_STUB IVBSAXContentHandler_endDocument_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXContentHandler_startPrefixMapping_Proxy(
    IVBSAXContentHandler* This,
    BSTR *prefix,
    BSTR *uri);
void __RPC_STUB IVBSAXContentHandler_startPrefixMapping_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXContentHandler_endPrefixMapping_Proxy(
    IVBSAXContentHandler* This,
    BSTR *prefix);
void __RPC_STUB IVBSAXContentHandler_endPrefixMapping_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXContentHandler_startElement_Proxy(
    IVBSAXContentHandler* This,
    BSTR *namespaceURI,
    BSTR *localName,
    BSTR *QName,
    IVBSAXAttributes *oAttributes);
void __RPC_STUB IVBSAXContentHandler_startElement_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXContentHandler_endElement_Proxy(
    IVBSAXContentHandler* This,
    BSTR *namespaceURI,
    BSTR *localName,
    BSTR *strQName);
void __RPC_STUB IVBSAXContentHandler_endElement_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXContentHandler_characters_Proxy(
    IVBSAXContentHandler* This,
    BSTR *chars);
void __RPC_STUB IVBSAXContentHandler_characters_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXContentHandler_ignorableWhitespace_Proxy(
    IVBSAXContentHandler* This,
    BSTR *chars);
void __RPC_STUB IVBSAXContentHandler_ignorableWhitespace_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXContentHandler_processingInstruction_Proxy(
    IVBSAXContentHandler* This,
    BSTR *target,
    BSTR *data);
void __RPC_STUB IVBSAXContentHandler_processingInstruction_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXContentHandler_skippedEntity_Proxy(
    IVBSAXContentHandler* This,
    BSTR *name);
void __RPC_STUB IVBSAXContentHandler_skippedEntity_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IVBSAXContentHandler_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IVBSAXDeclHandler interface
 */
#ifndef __IVBSAXDeclHandler_INTERFACE_DEFINED__
#define __IVBSAXDeclHandler_INTERFACE_DEFINED__

DEFINE_GUID(IID_IVBSAXDeclHandler, 0xe8917260, 0x7579, 0x4be1, 0xb5,0xdd, 0x7a,0xfb,0xfa,0x6f,0x07,0x7b);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IVBSAXDeclHandler : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE elementDecl(
        BSTR *name,
        BSTR *model) = 0;

    virtual HRESULT STDMETHODCALLTYPE attributeDecl(
        BSTR *elementName,
        BSTR *attributeName,
        BSTR *type,
        BSTR *valueDefault,
        BSTR *value) = 0;

    virtual HRESULT STDMETHODCALLTYPE internalEntityDecl(
        BSTR *name,
        BSTR *value) = 0;

    virtual HRESULT STDMETHODCALLTYPE externalEntityDecl(
        BSTR *name,
        BSTR *publicId,
        BSTR *systemId) = 0;

};
#else
typedef struct IVBSAXDeclHandlerVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IVBSAXDeclHandler* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IVBSAXDeclHandler* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IVBSAXDeclHandler* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IVBSAXDeclHandler* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IVBSAXDeclHandler* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IVBSAXDeclHandler* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IVBSAXDeclHandler* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IVBSAXDeclHandler methods ***/
    HRESULT (STDMETHODCALLTYPE *elementDecl)(
        IVBSAXDeclHandler* This,
        BSTR *name,
        BSTR *model);

    HRESULT (STDMETHODCALLTYPE *attributeDecl)(
        IVBSAXDeclHandler* This,
        BSTR *elementName,
        BSTR *attributeName,
        BSTR *type,
        BSTR *valueDefault,
        BSTR *value);

    HRESULT (STDMETHODCALLTYPE *internalEntityDecl)(
        IVBSAXDeclHandler* This,
        BSTR *name,
        BSTR *value);

    HRESULT (STDMETHODCALLTYPE *externalEntityDecl)(
        IVBSAXDeclHandler* This,
        BSTR *name,
        BSTR *publicId,
        BSTR *systemId);

    END_INTERFACE
} IVBSAXDeclHandlerVtbl;
interface IVBSAXDeclHandler {
    CONST_VTBL IVBSAXDeclHandlerVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IVBSAXDeclHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IVBSAXDeclHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IVBSAXDeclHandler_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IVBSAXDeclHandler_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IVBSAXDeclHandler_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IVBSAXDeclHandler_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IVBSAXDeclHandler_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IVBSAXDeclHandler methods ***/
#define IVBSAXDeclHandler_elementDecl(This,name,model) (This)->lpVtbl->elementDecl(This,name,model)
#define IVBSAXDeclHandler_attributeDecl(This,elementName,attributeName,type,valueDefault,value) (This)->lpVtbl->attributeDecl(This,elementName,attributeName,type,valueDefault,value)
#define IVBSAXDeclHandler_internalEntityDecl(This,name,value) (This)->lpVtbl->internalEntityDecl(This,name,value)
#define IVBSAXDeclHandler_externalEntityDecl(This,name,publicId,systemId) (This)->lpVtbl->externalEntityDecl(This,name,publicId,systemId)
#endif

#endif

HRESULT STDMETHODCALLTYPE IVBSAXDeclHandler_elementDecl_Proxy(
    IVBSAXDeclHandler* This,
    BSTR *name,
    BSTR *model);
void __RPC_STUB IVBSAXDeclHandler_elementDecl_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXDeclHandler_attributeDecl_Proxy(
    IVBSAXDeclHandler* This,
    BSTR *elementName,
    BSTR *attributeName,
    BSTR *type,
    BSTR *valueDefault,
    BSTR *value);
void __RPC_STUB IVBSAXDeclHandler_attributeDecl_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXDeclHandler_internalEntityDecl_Proxy(
    IVBSAXDeclHandler* This,
    BSTR *name,
    BSTR *value);
void __RPC_STUB IVBSAXDeclHandler_internalEntityDecl_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXDeclHandler_externalEntityDecl_Proxy(
    IVBSAXDeclHandler* This,
    BSTR *name,
    BSTR *publicId,
    BSTR *systemId);
void __RPC_STUB IVBSAXDeclHandler_externalEntityDecl_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IVBSAXDeclHandler_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IVBSAXDTDHandler interface
 */
#ifndef __IVBSAXDTDHandler_INTERFACE_DEFINED__
#define __IVBSAXDTDHandler_INTERFACE_DEFINED__

DEFINE_GUID(IID_IVBSAXDTDHandler, 0x24fb3297, 0x302d, 0x4620, 0xba,0x39, 0x3a,0x73,0x2d,0x85,0x05,0x58);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IVBSAXDTDHandler : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE notationDecl(
        BSTR *name,
        BSTR *publicId,
        BSTR *systemId) = 0;

    virtual HRESULT STDMETHODCALLTYPE unparsedEntityDecl(
        BSTR *name,
        BSTR *publicId,
        BSTR *systemId,
        BSTR *notationName) = 0;

};
#else
typedef struct IVBSAXDTDHandlerVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IVBSAXDTDHandler* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IVBSAXDTDHandler* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IVBSAXDTDHandler* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IVBSAXDTDHandler* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IVBSAXDTDHandler* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IVBSAXDTDHandler* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IVBSAXDTDHandler* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IVBSAXDTDHandler methods ***/
    HRESULT (STDMETHODCALLTYPE *notationDecl)(
        IVBSAXDTDHandler* This,
        BSTR *name,
        BSTR *publicId,
        BSTR *systemId);

    HRESULT (STDMETHODCALLTYPE *unparsedEntityDecl)(
        IVBSAXDTDHandler* This,
        BSTR *name,
        BSTR *publicId,
        BSTR *systemId,
        BSTR *notationName);

    END_INTERFACE
} IVBSAXDTDHandlerVtbl;
interface IVBSAXDTDHandler {
    CONST_VTBL IVBSAXDTDHandlerVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IVBSAXDTDHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IVBSAXDTDHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IVBSAXDTDHandler_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IVBSAXDTDHandler_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IVBSAXDTDHandler_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IVBSAXDTDHandler_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IVBSAXDTDHandler_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IVBSAXDTDHandler methods ***/
#define IVBSAXDTDHandler_notationDecl(This,name,publicId,systemId) (This)->lpVtbl->notationDecl(This,name,publicId,systemId)
#define IVBSAXDTDHandler_unparsedEntityDecl(This,name,publicId,systemId,notationName) (This)->lpVtbl->unparsedEntityDecl(This,name,publicId,systemId,notationName)
#endif

#endif

HRESULT STDMETHODCALLTYPE IVBSAXDTDHandler_notationDecl_Proxy(
    IVBSAXDTDHandler* This,
    BSTR *name,
    BSTR *publicId,
    BSTR *systemId);
void __RPC_STUB IVBSAXDTDHandler_notationDecl_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXDTDHandler_unparsedEntityDecl_Proxy(
    IVBSAXDTDHandler* This,
    BSTR *name,
    BSTR *publicId,
    BSTR *systemId,
    BSTR *notationName);
void __RPC_STUB IVBSAXDTDHandler_unparsedEntityDecl_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IVBSAXDTDHandler_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IVBSAXEntityResolver interface
 */
#ifndef __IVBSAXEntityResolver_INTERFACE_DEFINED__
#define __IVBSAXEntityResolver_INTERFACE_DEFINED__

DEFINE_GUID(IID_IVBSAXEntityResolver, 0x0c05d096, 0xf45b, 0x4aca, 0xad,0x1a, 0xaa,0x0b,0xc2,0x55,0x18,0xdc);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IVBSAXEntityResolver : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE resolveEntity(
        BSTR *publicId,
        BSTR *systemId,
        VARIANT *ret) = 0;

};
#else
typedef struct IVBSAXEntityResolverVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IVBSAXEntityResolver* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IVBSAXEntityResolver* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IVBSAXEntityResolver* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IVBSAXEntityResolver* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IVBSAXEntityResolver* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IVBSAXEntityResolver* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IVBSAXEntityResolver* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IVBSAXEntityResolver methods ***/
    HRESULT (STDMETHODCALLTYPE *resolveEntity)(
        IVBSAXEntityResolver* This,
        BSTR *publicId,
        BSTR *systemId,
        VARIANT *ret);

    END_INTERFACE
} IVBSAXEntityResolverVtbl;
interface IVBSAXEntityResolver {
    CONST_VTBL IVBSAXEntityResolverVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IVBSAXEntityResolver_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IVBSAXEntityResolver_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IVBSAXEntityResolver_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IVBSAXEntityResolver_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IVBSAXEntityResolver_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IVBSAXEntityResolver_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IVBSAXEntityResolver_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IVBSAXEntityResolver methods ***/
#define IVBSAXEntityResolver_resolveEntity(This,publicId,systemId,ret) (This)->lpVtbl->resolveEntity(This,publicId,systemId,ret)
#endif

#endif

HRESULT STDMETHODCALLTYPE IVBSAXEntityResolver_resolveEntity_Proxy(
    IVBSAXEntityResolver* This,
    BSTR *publicId,
    BSTR *systemId,
    VARIANT *ret);
void __RPC_STUB IVBSAXEntityResolver_resolveEntity_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IVBSAXEntityResolver_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IVBSAXErrorHandler interface
 */
#ifndef __IVBSAXErrorHandler_INTERFACE_DEFINED__
#define __IVBSAXErrorHandler_INTERFACE_DEFINED__

DEFINE_GUID(IID_IVBSAXErrorHandler, 0xd963d3fe, 0x173c, 0x4862, 0x90,0x95, 0xb9,0x2f,0x66,0x99,0x5f,0x52);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IVBSAXErrorHandler : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE error(
        IVBSAXLocator *locator,
        BSTR *errorMessage,
        LONG errorCode) = 0;

    virtual HRESULT STDMETHODCALLTYPE fatalError(
        IVBSAXLocator *locator,
        BSTR *errorMessage,
        LONG errorCode) = 0;

    virtual HRESULT STDMETHODCALLTYPE ignorableWarning(
        IVBSAXLocator *locator,
        BSTR *errorMessage,
        LONG errorCode) = 0;

};
#else
typedef struct IVBSAXErrorHandlerVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IVBSAXErrorHandler* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IVBSAXErrorHandler* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IVBSAXErrorHandler* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IVBSAXErrorHandler* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IVBSAXErrorHandler* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IVBSAXErrorHandler* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IVBSAXErrorHandler* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IVBSAXErrorHandler methods ***/
    HRESULT (STDMETHODCALLTYPE *error)(
        IVBSAXErrorHandler* This,
        IVBSAXLocator *locator,
        BSTR *errorMessage,
        LONG errorCode);

    HRESULT (STDMETHODCALLTYPE *fatalError)(
        IVBSAXErrorHandler* This,
        IVBSAXLocator *locator,
        BSTR *errorMessage,
        LONG errorCode);

    HRESULT (STDMETHODCALLTYPE *ignorableWarning)(
        IVBSAXErrorHandler* This,
        IVBSAXLocator *locator,
        BSTR *errorMessage,
        LONG errorCode);

    END_INTERFACE
} IVBSAXErrorHandlerVtbl;
interface IVBSAXErrorHandler {
    CONST_VTBL IVBSAXErrorHandlerVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IVBSAXErrorHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IVBSAXErrorHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IVBSAXErrorHandler_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IVBSAXErrorHandler_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IVBSAXErrorHandler_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IVBSAXErrorHandler_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IVBSAXErrorHandler_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IVBSAXErrorHandler methods ***/
#define IVBSAXErrorHandler_error(This,locator,errorMessage,errorCode) (This)->lpVtbl->error(This,locator,errorMessage,errorCode)
#define IVBSAXErrorHandler_fatalError(This,locator,errorMessage,errorCode) (This)->lpVtbl->fatalError(This,locator,errorMessage,errorCode)
#define IVBSAXErrorHandler_ignorableWarning(This,locator,errorMessage,errorCode) (This)->lpVtbl->ignorableWarning(This,locator,errorMessage,errorCode)
#endif

#endif

HRESULT STDMETHODCALLTYPE IVBSAXErrorHandler_error_Proxy(
    IVBSAXErrorHandler* This,
    IVBSAXLocator *locator,
    BSTR *errorMessage,
    LONG errorCode);
void __RPC_STUB IVBSAXErrorHandler_error_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXErrorHandler_fatalError_Proxy(
    IVBSAXErrorHandler* This,
    IVBSAXLocator *locator,
    BSTR *errorMessage,
    LONG errorCode);
void __RPC_STUB IVBSAXErrorHandler_fatalError_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXErrorHandler_ignorableWarning_Proxy(
    IVBSAXErrorHandler* This,
    IVBSAXLocator *locator,
    BSTR *errorMessage,
    LONG errorCode);
void __RPC_STUB IVBSAXErrorHandler_ignorableWarning_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IVBSAXErrorHandler_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IVBSAXLexicalHandler interface
 */
#ifndef __IVBSAXLexicalHandler_INTERFACE_DEFINED__
#define __IVBSAXLexicalHandler_INTERFACE_DEFINED__

DEFINE_GUID(IID_IVBSAXLexicalHandler, 0x032aac35, 0x8c0e, 0x4d9d, 0x97,0x9f, 0xe3,0xb7,0x02,0x93,0x55,0x76);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IVBSAXLexicalHandler : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE startDTD(
        BSTR *name,
        BSTR *publicId,
        BSTR *systemId) = 0;

    virtual HRESULT STDMETHODCALLTYPE endDTD(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE startEntity(
        BSTR *name) = 0;

    virtual HRESULT STDMETHODCALLTYPE endEntity(
        BSTR *name) = 0;

    virtual HRESULT STDMETHODCALLTYPE startCDATA(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE endCDATA(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE comment(
        BSTR *chars) = 0;

};
#else
typedef struct IVBSAXLexicalHandlerVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IVBSAXLexicalHandler* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IVBSAXLexicalHandler* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IVBSAXLexicalHandler* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IVBSAXLexicalHandler* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IVBSAXLexicalHandler* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IVBSAXLexicalHandler* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IVBSAXLexicalHandler* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IVBSAXLexicalHandler methods ***/
    HRESULT (STDMETHODCALLTYPE *startDTD)(
        IVBSAXLexicalHandler* This,
        BSTR *name,
        BSTR *publicId,
        BSTR *systemId);

    HRESULT (STDMETHODCALLTYPE *endDTD)(
        IVBSAXLexicalHandler* This);

    HRESULT (STDMETHODCALLTYPE *startEntity)(
        IVBSAXLexicalHandler* This,
        BSTR *name);

    HRESULT (STDMETHODCALLTYPE *endEntity)(
        IVBSAXLexicalHandler* This,
        BSTR *name);

    HRESULT (STDMETHODCALLTYPE *startCDATA)(
        IVBSAXLexicalHandler* This);

    HRESULT (STDMETHODCALLTYPE *endCDATA)(
        IVBSAXLexicalHandler* This);

    HRESULT (STDMETHODCALLTYPE *comment)(
        IVBSAXLexicalHandler* This,
        BSTR *chars);

    END_INTERFACE
} IVBSAXLexicalHandlerVtbl;
interface IVBSAXLexicalHandler {
    CONST_VTBL IVBSAXLexicalHandlerVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IVBSAXLexicalHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IVBSAXLexicalHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IVBSAXLexicalHandler_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IVBSAXLexicalHandler_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IVBSAXLexicalHandler_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IVBSAXLexicalHandler_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IVBSAXLexicalHandler_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IVBSAXLexicalHandler methods ***/
#define IVBSAXLexicalHandler_startDTD(This,name,publicId,systemId) (This)->lpVtbl->startDTD(This,name,publicId,systemId)
#define IVBSAXLexicalHandler_endDTD(This) (This)->lpVtbl->endDTD(This)
#define IVBSAXLexicalHandler_startEntity(This,name) (This)->lpVtbl->startEntity(This,name)
#define IVBSAXLexicalHandler_endEntity(This,name) (This)->lpVtbl->endEntity(This,name)
#define IVBSAXLexicalHandler_startCDATA(This) (This)->lpVtbl->startCDATA(This)
#define IVBSAXLexicalHandler_endCDATA(This) (This)->lpVtbl->endCDATA(This)
#define IVBSAXLexicalHandler_comment(This,chars) (This)->lpVtbl->comment(This,chars)
#endif

#endif

HRESULT STDMETHODCALLTYPE IVBSAXLexicalHandler_startDTD_Proxy(
    IVBSAXLexicalHandler* This,
    BSTR *name,
    BSTR *publicId,
    BSTR *systemId);
void __RPC_STUB IVBSAXLexicalHandler_startDTD_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXLexicalHandler_endDTD_Proxy(
    IVBSAXLexicalHandler* This);
void __RPC_STUB IVBSAXLexicalHandler_endDTD_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXLexicalHandler_startEntity_Proxy(
    IVBSAXLexicalHandler* This,
    BSTR *name);
void __RPC_STUB IVBSAXLexicalHandler_startEntity_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXLexicalHandler_endEntity_Proxy(
    IVBSAXLexicalHandler* This,
    BSTR *name);
void __RPC_STUB IVBSAXLexicalHandler_endEntity_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXLexicalHandler_startCDATA_Proxy(
    IVBSAXLexicalHandler* This);
void __RPC_STUB IVBSAXLexicalHandler_startCDATA_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXLexicalHandler_endCDATA_Proxy(
    IVBSAXLexicalHandler* This);
void __RPC_STUB IVBSAXLexicalHandler_endCDATA_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXLexicalHandler_comment_Proxy(
    IVBSAXLexicalHandler* This,
    BSTR *chars);
void __RPC_STUB IVBSAXLexicalHandler_comment_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IVBSAXLexicalHandler_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IVBSAXLocator interface
 */
#ifndef __IVBSAXLocator_INTERFACE_DEFINED__
#define __IVBSAXLocator_INTERFACE_DEFINED__

DEFINE_GUID(IID_IVBSAXLocator, 0x796e7ac5, 0x5aa2, 0x4eff, 0xac,0xad, 0x3f,0xaa,0xf0,0x1a,0x32,0x88);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IVBSAXLocator : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_columnNumber(
        int *column) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_lineNumber(
        int *line) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_publicId(
        BSTR *publicId) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_systemId(
        BSTR *systemId) = 0;

};
#else
typedef struct IVBSAXLocatorVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IVBSAXLocator* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IVBSAXLocator* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IVBSAXLocator* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IVBSAXLocator* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IVBSAXLocator* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IVBSAXLocator* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IVBSAXLocator* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IVBSAXLocator methods ***/
    HRESULT (STDMETHODCALLTYPE *get_columnNumber)(
        IVBSAXLocator* This,
        int *column);

    HRESULT (STDMETHODCALLTYPE *get_lineNumber)(
        IVBSAXLocator* This,
        int *line);

    HRESULT (STDMETHODCALLTYPE *get_publicId)(
        IVBSAXLocator* This,
        BSTR *publicId);

    HRESULT (STDMETHODCALLTYPE *get_systemId)(
        IVBSAXLocator* This,
        BSTR *systemId);

    END_INTERFACE
} IVBSAXLocatorVtbl;
interface IVBSAXLocator {
    CONST_VTBL IVBSAXLocatorVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IVBSAXLocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IVBSAXLocator_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IVBSAXLocator_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IVBSAXLocator_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IVBSAXLocator_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IVBSAXLocator_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IVBSAXLocator_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IVBSAXLocator methods ***/
#define IVBSAXLocator_get_columnNumber(This,column) (This)->lpVtbl->get_columnNumber(This,column)
#define IVBSAXLocator_get_lineNumber(This,line) (This)->lpVtbl->get_lineNumber(This,line)
#define IVBSAXLocator_get_publicId(This,publicId) (This)->lpVtbl->get_publicId(This,publicId)
#define IVBSAXLocator_get_systemId(This,systemId) (This)->lpVtbl->get_systemId(This,systemId)
#endif

#endif

HRESULT STDMETHODCALLTYPE IVBSAXLocator_get_columnNumber_Proxy(
    IVBSAXLocator* This,
    int *column);
void __RPC_STUB IVBSAXLocator_get_columnNumber_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXLocator_get_lineNumber_Proxy(
    IVBSAXLocator* This,
    int *line);
void __RPC_STUB IVBSAXLocator_get_lineNumber_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXLocator_get_publicId_Proxy(
    IVBSAXLocator* This,
    BSTR *publicId);
void __RPC_STUB IVBSAXLocator_get_publicId_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXLocator_get_systemId_Proxy(
    IVBSAXLocator* This,
    BSTR *systemId);
void __RPC_STUB IVBSAXLocator_get_systemId_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IVBSAXLocator_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IVBSAXXMLFilter interface
 */
#ifndef __IVBSAXXMLFilter_INTERFACE_DEFINED__
#define __IVBSAXXMLFilter_INTERFACE_DEFINED__

DEFINE_GUID(IID_IVBSAXXMLFilter, 0x1299eb1b, 0x5b88, 0x433e, 0x82,0xde, 0x82,0xca,0x75,0xad,0x4e,0x04);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IVBSAXXMLFilter : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_parent(
        IVBSAXXMLReader **reader) = 0;

    virtual HRESULT STDMETHODCALLTYPE putref_parent(
        IVBSAXXMLReader *reader) = 0;

};
#else
typedef struct IVBSAXXMLFilterVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IVBSAXXMLFilter* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IVBSAXXMLFilter* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IVBSAXXMLFilter* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IVBSAXXMLFilter* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IVBSAXXMLFilter* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IVBSAXXMLFilter* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IVBSAXXMLFilter* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IVBSAXXMLFilter methods ***/
    HRESULT (STDMETHODCALLTYPE *get_parent)(
        IVBSAXXMLFilter* This,
        IVBSAXXMLReader **reader);

    HRESULT (STDMETHODCALLTYPE *putref_parent)(
        IVBSAXXMLFilter* This,
        IVBSAXXMLReader *reader);

    END_INTERFACE
} IVBSAXXMLFilterVtbl;
interface IVBSAXXMLFilter {
    CONST_VTBL IVBSAXXMLFilterVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IVBSAXXMLFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IVBSAXXMLFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IVBSAXXMLFilter_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IVBSAXXMLFilter_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IVBSAXXMLFilter_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IVBSAXXMLFilter_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IVBSAXXMLFilter_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IVBSAXXMLFilter methods ***/
#define IVBSAXXMLFilter_get_parent(This,reader) (This)->lpVtbl->get_parent(This,reader)
#define IVBSAXXMLFilter_putref_parent(This,reader) (This)->lpVtbl->putref_parent(This,reader)
#endif

#endif

HRESULT STDMETHODCALLTYPE IVBSAXXMLFilter_get_parent_Proxy(
    IVBSAXXMLFilter* This,
    IVBSAXXMLReader **reader);
void __RPC_STUB IVBSAXXMLFilter_get_parent_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXXMLFilter_putref_parent_Proxy(
    IVBSAXXMLFilter* This,
    IVBSAXXMLReader *reader);
void __RPC_STUB IVBSAXXMLFilter_putref_parent_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IVBSAXXMLFilter_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IVBSAXXMLReader interface
 */
#ifndef __IVBSAXXMLReader_INTERFACE_DEFINED__
#define __IVBSAXXMLReader_INTERFACE_DEFINED__

DEFINE_GUID(IID_IVBSAXXMLReader, 0x8c033caa, 0x6cd6, 0x4f73, 0xb7,0x28, 0x45,0x31,0xaf,0x74,0x94,0x5f);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IVBSAXXMLReader : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE getFeature(
        const WCHAR *pFeature,
        VARIANT_BOOL *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE putFeature(
        const WCHAR *pFeature,
        VARIANT_BOOL vfValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE getProperty(
        const WCHAR *pProp,
        VARIANT *pValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE putProperty(
        const WCHAR *pProp,
        VARIANT value) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_entityResolver(
        IVBSAXEntityResolver **ppEntityResolver) = 0;

    virtual HRESULT STDMETHODCALLTYPE putref_entityResolver(
        IVBSAXEntityResolver *pEntityResolver) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_contentHandler(
        IVBSAXContentHandler **pContentHandler) = 0;

    virtual HRESULT STDMETHODCALLTYPE putref_contentHandler(
        IVBSAXContentHandler *contentHandler) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_dtdHandler(
        IVBSAXDTDHandler **pDTDHandler) = 0;

    virtual HRESULT STDMETHODCALLTYPE putref_dtdHandler(
        IVBSAXDTDHandler *pDTDHandler) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_errorHandler(
        IVBSAXErrorHandler **pErrorHandler) = 0;

    virtual HRESULT STDMETHODCALLTYPE putref_errorHandler(
        IVBSAXErrorHandler *errorHandler) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_baseURL(
        const WCHAR **pBaseUrl) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_baseURL(
        const WCHAR *pBaseUrl) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_secureBaseURL(
        const WCHAR **pSecureBaseUrl) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_secureBaseURL(
        const WCHAR *secureBaseUrl) = 0;

    virtual HRESULT STDMETHODCALLTYPE parse(
        VARIANT varInput) = 0;

    virtual HRESULT STDMETHODCALLTYPE parseURL(
        const WCHAR *url) = 0;

};
#else
typedef struct IVBSAXXMLReaderVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IVBSAXXMLReader* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IVBSAXXMLReader* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IVBSAXXMLReader* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IVBSAXXMLReader* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IVBSAXXMLReader* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IVBSAXXMLReader* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IVBSAXXMLReader* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IVBSAXXMLReader methods ***/
    HRESULT (STDMETHODCALLTYPE *getFeature)(
        IVBSAXXMLReader* This,
        const WCHAR *pFeature,
        VARIANT_BOOL *pValue);

    HRESULT (STDMETHODCALLTYPE *putFeature)(
        IVBSAXXMLReader* This,
        const WCHAR *pFeature,
        VARIANT_BOOL vfValue);

    HRESULT (STDMETHODCALLTYPE *getProperty)(
        IVBSAXXMLReader* This,
        const WCHAR *pProp,
        VARIANT *pValue);

    HRESULT (STDMETHODCALLTYPE *putProperty)(
        IVBSAXXMLReader* This,
        const WCHAR *pProp,
        VARIANT value);

    HRESULT (STDMETHODCALLTYPE *get_entityResolver)(
        IVBSAXXMLReader* This,
        IVBSAXEntityResolver **ppEntityResolver);

    HRESULT (STDMETHODCALLTYPE *putref_entityResolver)(
        IVBSAXXMLReader* This,
        IVBSAXEntityResolver *pEntityResolver);

    HRESULT (STDMETHODCALLTYPE *get_contentHandler)(
        IVBSAXXMLReader* This,
        IVBSAXContentHandler **pContentHandler);

    HRESULT (STDMETHODCALLTYPE *putref_contentHandler)(
        IVBSAXXMLReader* This,
        IVBSAXContentHandler *contentHandler);

    HRESULT (STDMETHODCALLTYPE *get_dtdHandler)(
        IVBSAXXMLReader* This,
        IVBSAXDTDHandler **pDTDHandler);

    HRESULT (STDMETHODCALLTYPE *putref_dtdHandler)(
        IVBSAXXMLReader* This,
        IVBSAXDTDHandler *pDTDHandler);

    HRESULT (STDMETHODCALLTYPE *get_errorHandler)(
        IVBSAXXMLReader* This,
        IVBSAXErrorHandler **pErrorHandler);

    HRESULT (STDMETHODCALLTYPE *putref_errorHandler)(
        IVBSAXXMLReader* This,
        IVBSAXErrorHandler *errorHandler);

    HRESULT (STDMETHODCALLTYPE *get_baseURL)(
        IVBSAXXMLReader* This,
        const WCHAR **pBaseUrl);

    HRESULT (STDMETHODCALLTYPE *put_baseURL)(
        IVBSAXXMLReader* This,
        const WCHAR *pBaseUrl);

    HRESULT (STDMETHODCALLTYPE *get_secureBaseURL)(
        IVBSAXXMLReader* This,
        const WCHAR **pSecureBaseUrl);

    HRESULT (STDMETHODCALLTYPE *put_secureBaseURL)(
        IVBSAXXMLReader* This,
        const WCHAR *secureBaseUrl);

    HRESULT (STDMETHODCALLTYPE *parse)(
        IVBSAXXMLReader* This,
        VARIANT varInput);

    HRESULT (STDMETHODCALLTYPE *parseURL)(
        IVBSAXXMLReader* This,
        const WCHAR *url);

    END_INTERFACE
} IVBSAXXMLReaderVtbl;
interface IVBSAXXMLReader {
    CONST_VTBL IVBSAXXMLReaderVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IVBSAXXMLReader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IVBSAXXMLReader_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IVBSAXXMLReader_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IVBSAXXMLReader_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IVBSAXXMLReader_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IVBSAXXMLReader_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IVBSAXXMLReader_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IVBSAXXMLReader methods ***/
#define IVBSAXXMLReader_getFeature(This,pFeature,pValue) (This)->lpVtbl->getFeature(This,pFeature,pValue)
#define IVBSAXXMLReader_putFeature(This,pFeature,vfValue) (This)->lpVtbl->putFeature(This,pFeature,vfValue)
#define IVBSAXXMLReader_getProperty(This,pProp,pValue) (This)->lpVtbl->getProperty(This,pProp,pValue)
#define IVBSAXXMLReader_putProperty(This,pProp,value) (This)->lpVtbl->putProperty(This,pProp,value)
#define IVBSAXXMLReader_get_entityResolver(This,ppEntityResolver) (This)->lpVtbl->get_entityResolver(This,ppEntityResolver)
#define IVBSAXXMLReader_putref_entityResolver(This,pEntityResolver) (This)->lpVtbl->putref_entityResolver(This,pEntityResolver)
#define IVBSAXXMLReader_get_contentHandler(This,pContentHandler) (This)->lpVtbl->get_contentHandler(This,pContentHandler)
#define IVBSAXXMLReader_putref_contentHandler(This,contentHandler) (This)->lpVtbl->putref_contentHandler(This,contentHandler)
#define IVBSAXXMLReader_get_dtdHandler(This,pDTDHandler) (This)->lpVtbl->get_dtdHandler(This,pDTDHandler)
#define IVBSAXXMLReader_putref_dtdHandler(This,pDTDHandler) (This)->lpVtbl->putref_dtdHandler(This,pDTDHandler)
#define IVBSAXXMLReader_get_errorHandler(This,pErrorHandler) (This)->lpVtbl->get_errorHandler(This,pErrorHandler)
#define IVBSAXXMLReader_putref_errorHandler(This,errorHandler) (This)->lpVtbl->putref_errorHandler(This,errorHandler)
#define IVBSAXXMLReader_get_baseURL(This,pBaseUrl) (This)->lpVtbl->get_baseURL(This,pBaseUrl)
#define IVBSAXXMLReader_put_baseURL(This,pBaseUrl) (This)->lpVtbl->put_baseURL(This,pBaseUrl)
#define IVBSAXXMLReader_get_secureBaseURL(This,pSecureBaseUrl) (This)->lpVtbl->get_secureBaseURL(This,pSecureBaseUrl)
#define IVBSAXXMLReader_put_secureBaseURL(This,secureBaseUrl) (This)->lpVtbl->put_secureBaseURL(This,secureBaseUrl)
#define IVBSAXXMLReader_parse(This,varInput) (This)->lpVtbl->parse(This,varInput)
#define IVBSAXXMLReader_parseURL(This,url) (This)->lpVtbl->parseURL(This,url)
#endif

#endif

HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_getFeature_Proxy(
    IVBSAXXMLReader* This,
    const WCHAR *pFeature,
    VARIANT_BOOL *pValue);
void __RPC_STUB IVBSAXXMLReader_getFeature_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_putFeature_Proxy(
    IVBSAXXMLReader* This,
    const WCHAR *pFeature,
    VARIANT_BOOL vfValue);
void __RPC_STUB IVBSAXXMLReader_putFeature_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_getProperty_Proxy(
    IVBSAXXMLReader* This,
    const WCHAR *pProp,
    VARIANT *pValue);
void __RPC_STUB IVBSAXXMLReader_getProperty_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_putProperty_Proxy(
    IVBSAXXMLReader* This,
    const WCHAR *pProp,
    VARIANT value);
void __RPC_STUB IVBSAXXMLReader_putProperty_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_get_entityResolver_Proxy(
    IVBSAXXMLReader* This,
    IVBSAXEntityResolver **ppEntityResolver);
void __RPC_STUB IVBSAXXMLReader_get_entityResolver_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_putref_entityResolver_Proxy(
    IVBSAXXMLReader* This,
    IVBSAXEntityResolver *pEntityResolver);
void __RPC_STUB IVBSAXXMLReader_putref_entityResolver_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_get_contentHandler_Proxy(
    IVBSAXXMLReader* This,
    IVBSAXContentHandler **pContentHandler);
void __RPC_STUB IVBSAXXMLReader_get_contentHandler_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_putref_contentHandler_Proxy(
    IVBSAXXMLReader* This,
    IVBSAXContentHandler *contentHandler);
void __RPC_STUB IVBSAXXMLReader_putref_contentHandler_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_get_dtdHandler_Proxy(
    IVBSAXXMLReader* This,
    IVBSAXDTDHandler **pDTDHandler);
void __RPC_STUB IVBSAXXMLReader_get_dtdHandler_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_putref_dtdHandler_Proxy(
    IVBSAXXMLReader* This,
    IVBSAXDTDHandler *pDTDHandler);
void __RPC_STUB IVBSAXXMLReader_putref_dtdHandler_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_get_errorHandler_Proxy(
    IVBSAXXMLReader* This,
    IVBSAXErrorHandler **pErrorHandler);
void __RPC_STUB IVBSAXXMLReader_get_errorHandler_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_putref_errorHandler_Proxy(
    IVBSAXXMLReader* This,
    IVBSAXErrorHandler *errorHandler);
void __RPC_STUB IVBSAXXMLReader_putref_errorHandler_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_get_baseURL_Proxy(
    IVBSAXXMLReader* This,
    const WCHAR **pBaseUrl);
void __RPC_STUB IVBSAXXMLReader_get_baseURL_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_put_baseURL_Proxy(
    IVBSAXXMLReader* This,
    const WCHAR *pBaseUrl);
void __RPC_STUB IVBSAXXMLReader_put_baseURL_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_get_secureBaseURL_Proxy(
    IVBSAXXMLReader* This,
    const WCHAR **pSecureBaseUrl);
void __RPC_STUB IVBSAXXMLReader_get_secureBaseURL_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_put_secureBaseURL_Proxy(
    IVBSAXXMLReader* This,
    const WCHAR *secureBaseUrl);
void __RPC_STUB IVBSAXXMLReader_put_secureBaseURL_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_parse_Proxy(
    IVBSAXXMLReader* This,
    VARIANT varInput);
void __RPC_STUB IVBSAXXMLReader_parse_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBSAXXMLReader_parseURL_Proxy(
    IVBSAXXMLReader* This,
    const WCHAR *url);
void __RPC_STUB IVBSAXXMLReader_parseURL_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IVBSAXXMLReader_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IMXAttributes interface
 */
#ifndef __IMXAttributes_INTERFACE_DEFINED__
#define __IMXAttributes_INTERFACE_DEFINED__

DEFINE_GUID(IID_IMXAttributes, 0xf10d27cc, 0x3ec0, 0x415c, 0x8e,0xd8, 0x77,0xab,0x1c,0x5e,0x72,0x62);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IMXAttributes : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE addAttribute(
        BSTR uri,
        BSTR localName,
        BSTR QName,
        BSTR type,
        BSTR value) = 0;

    virtual HRESULT STDMETHODCALLTYPE addAttributeFromIndex(
        VARIANT atts,
        int index) = 0;

    virtual HRESULT STDMETHODCALLTYPE clear(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE removeAttribute(
        int index) = 0;

    virtual HRESULT STDMETHODCALLTYPE setAttribute(
        int index,
        BSTR uri,
        BSTR localName,
        BSTR QName,
        BSTR type,
        BSTR value) = 0;

    virtual HRESULT STDMETHODCALLTYPE setAttributes(
        VARIANT atts) = 0;

    virtual HRESULT STDMETHODCALLTYPE setLocalName(
        int index,
        BSTR localName) = 0;

    virtual HRESULT STDMETHODCALLTYPE setQName(
        int index,
        BSTR QName) = 0;

    virtual HRESULT STDMETHODCALLTYPE setType(
        int index,
        BSTR type) = 0;

    virtual HRESULT STDMETHODCALLTYPE setURI(
        int index,
        BSTR uri) = 0;

    virtual HRESULT STDMETHODCALLTYPE setValue(
        int index,
        BSTR value) = 0;

};
#else
typedef struct IMXAttributesVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IMXAttributes* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IMXAttributes* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IMXAttributes* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IMXAttributes* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IMXAttributes* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IMXAttributes* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IMXAttributes* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IMXAttributes methods ***/
    HRESULT (STDMETHODCALLTYPE *addAttribute)(
        IMXAttributes* This,
        BSTR uri,
        BSTR localName,
        BSTR QName,
        BSTR type,
        BSTR value);

    HRESULT (STDMETHODCALLTYPE *addAttributeFromIndex)(
        IMXAttributes* This,
        VARIANT atts,
        int index);

    HRESULT (STDMETHODCALLTYPE *clear)(
        IMXAttributes* This);

    HRESULT (STDMETHODCALLTYPE *removeAttribute)(
        IMXAttributes* This,
        int index);

    HRESULT (STDMETHODCALLTYPE *setAttribute)(
        IMXAttributes* This,
        int index,
        BSTR uri,
        BSTR localName,
        BSTR QName,
        BSTR type,
        BSTR value);

    HRESULT (STDMETHODCALLTYPE *setAttributes)(
        IMXAttributes* This,
        VARIANT atts);

    HRESULT (STDMETHODCALLTYPE *setLocalName)(
        IMXAttributes* This,
        int index,
        BSTR localName);

    HRESULT (STDMETHODCALLTYPE *setQName)(
        IMXAttributes* This,
        int index,
        BSTR QName);

    HRESULT (STDMETHODCALLTYPE *setType)(
        IMXAttributes* This,
        int index,
        BSTR type);

    HRESULT (STDMETHODCALLTYPE *setURI)(
        IMXAttributes* This,
        int index,
        BSTR uri);

    HRESULT (STDMETHODCALLTYPE *setValue)(
        IMXAttributes* This,
        int index,
        BSTR value);

    END_INTERFACE
} IMXAttributesVtbl;
interface IMXAttributes {
    CONST_VTBL IMXAttributesVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IMXAttributes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IMXAttributes_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IMXAttributes_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IMXAttributes_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IMXAttributes_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IMXAttributes_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IMXAttributes_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IMXAttributes methods ***/
#define IMXAttributes_addAttribute(This,uri,localName,QName,type,value) (This)->lpVtbl->addAttribute(This,uri,localName,QName,type,value)
#define IMXAttributes_addAttributeFromIndex(This,atts,index) (This)->lpVtbl->addAttributeFromIndex(This,atts,index)
#define IMXAttributes_clear(This) (This)->lpVtbl->clear(This)
#define IMXAttributes_removeAttribute(This,index) (This)->lpVtbl->removeAttribute(This,index)
#define IMXAttributes_setAttribute(This,index,uri,localName,QName,type,value) (This)->lpVtbl->setAttribute(This,index,uri,localName,QName,type,value)
#define IMXAttributes_setAttributes(This,atts) (This)->lpVtbl->setAttributes(This,atts)
#define IMXAttributes_setLocalName(This,index,localName) (This)->lpVtbl->setLocalName(This,index,localName)
#define IMXAttributes_setQName(This,index,QName) (This)->lpVtbl->setQName(This,index,QName)
#define IMXAttributes_setType(This,index,type) (This)->lpVtbl->setType(This,index,type)
#define IMXAttributes_setURI(This,index,uri) (This)->lpVtbl->setURI(This,index,uri)
#define IMXAttributes_setValue(This,index,value) (This)->lpVtbl->setValue(This,index,value)
#endif

#endif

HRESULT STDMETHODCALLTYPE IMXAttributes_addAttribute_Proxy(
    IMXAttributes* This,
    BSTR uri,
    BSTR localName,
    BSTR QName,
    BSTR type,
    BSTR value);
void __RPC_STUB IMXAttributes_addAttribute_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXAttributes_addAttributeFromIndex_Proxy(
    IMXAttributes* This,
    VARIANT atts,
    int index);
void __RPC_STUB IMXAttributes_addAttributeFromIndex_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXAttributes_clear_Proxy(
    IMXAttributes* This);
void __RPC_STUB IMXAttributes_clear_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXAttributes_removeAttribute_Proxy(
    IMXAttributes* This,
    int index);
void __RPC_STUB IMXAttributes_removeAttribute_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXAttributes_setAttribute_Proxy(
    IMXAttributes* This,
    int index,
    BSTR uri,
    BSTR localName,
    BSTR QName,
    BSTR type,
    BSTR value);
void __RPC_STUB IMXAttributes_setAttribute_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXAttributes_setAttributes_Proxy(
    IMXAttributes* This,
    VARIANT atts);
void __RPC_STUB IMXAttributes_setAttributes_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXAttributes_setLocalName_Proxy(
    IMXAttributes* This,
    int index,
    BSTR localName);
void __RPC_STUB IMXAttributes_setLocalName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXAttributes_setQName_Proxy(
    IMXAttributes* This,
    int index,
    BSTR QName);
void __RPC_STUB IMXAttributes_setQName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXAttributes_setType_Proxy(
    IMXAttributes* This,
    int index,
    BSTR type);
void __RPC_STUB IMXAttributes_setType_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXAttributes_setURI_Proxy(
    IMXAttributes* This,
    int index,
    BSTR uri);
void __RPC_STUB IMXAttributes_setURI_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXAttributes_setValue_Proxy(
    IMXAttributes* This,
    int index,
    BSTR value);
void __RPC_STUB IMXAttributes_setValue_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IMXAttributes_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IMXSchemaDeclHandler interface
 */
#ifndef __IMXSchemaDeclHandler_INTERFACE_DEFINED__
#define __IMXSchemaDeclHandler_INTERFACE_DEFINED__

DEFINE_GUID(IID_IMXSchemaDeclHandler, 0xfa4bb38c, 0xfaf9, 0x4cca, 0x93,0x02, 0xd1,0xdd,0x0f,0xe5,0x20,0xdb);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IMXSchemaDeclHandler : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE schemaElementDecl(
        ISchemaElement *oSchemaElement) = 0;

};
#else
typedef struct IMXSchemaDeclHandlerVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IMXSchemaDeclHandler* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IMXSchemaDeclHandler* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IMXSchemaDeclHandler* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IMXSchemaDeclHandler* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IMXSchemaDeclHandler* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IMXSchemaDeclHandler* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IMXSchemaDeclHandler* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IMXSchemaDeclHandler methods ***/
    HRESULT (STDMETHODCALLTYPE *schemaElementDecl)(
        IMXSchemaDeclHandler* This,
        ISchemaElement *oSchemaElement);

    END_INTERFACE
} IMXSchemaDeclHandlerVtbl;
interface IMXSchemaDeclHandler {
    CONST_VTBL IMXSchemaDeclHandlerVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IMXSchemaDeclHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IMXSchemaDeclHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IMXSchemaDeclHandler_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IMXSchemaDeclHandler_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IMXSchemaDeclHandler_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IMXSchemaDeclHandler_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IMXSchemaDeclHandler_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IMXSchemaDeclHandler methods ***/
#define IMXSchemaDeclHandler_schemaElementDecl(This,oSchemaElement) (This)->lpVtbl->schemaElementDecl(This,oSchemaElement)
#endif

#endif

HRESULT STDMETHODCALLTYPE IMXSchemaDeclHandler_schemaElementDecl_Proxy(
    IMXSchemaDeclHandler* This,
    ISchemaElement *oSchemaElement);
void __RPC_STUB IMXSchemaDeclHandler_schemaElementDecl_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IMXSchemaDeclHandler_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IMXReaderControl interface
 */
#ifndef __IMXReaderControl_INTERFACE_DEFINED__
#define __IMXReaderControl_INTERFACE_DEFINED__

DEFINE_GUID(IID_IMXReaderControl, 0x808f4e35, 0x8d5a, 0x4fbe, 0x84,0x66, 0x33,0xa4,0x12,0x79,0xed,0x30);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IMXReaderControl : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE abort(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE resume(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE suspend(
        ) = 0;

};
#else
typedef struct IMXReaderControlVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IMXReaderControl* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IMXReaderControl* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IMXReaderControl* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IMXReaderControl* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IMXReaderControl* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IMXReaderControl* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IMXReaderControl* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IMXReaderControl methods ***/
    HRESULT (STDMETHODCALLTYPE *abort)(
        IMXReaderControl* This);

    HRESULT (STDMETHODCALLTYPE *resume)(
        IMXReaderControl* This);

    HRESULT (STDMETHODCALLTYPE *suspend)(
        IMXReaderControl* This);

    END_INTERFACE
} IMXReaderControlVtbl;
interface IMXReaderControl {
    CONST_VTBL IMXReaderControlVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IMXReaderControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IMXReaderControl_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IMXReaderControl_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IMXReaderControl_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IMXReaderControl_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IMXReaderControl_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IMXReaderControl_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IMXReaderControl methods ***/
#define IMXReaderControl_abort(This) (This)->lpVtbl->abort(This)
#define IMXReaderControl_resume(This) (This)->lpVtbl->resume(This)
#define IMXReaderControl_suspend(This) (This)->lpVtbl->suspend(This)
#endif

#endif

HRESULT STDMETHODCALLTYPE IMXReaderControl_abort_Proxy(
    IMXReaderControl* This);
void __RPC_STUB IMXReaderControl_abort_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXReaderControl_resume_Proxy(
    IMXReaderControl* This);
void __RPC_STUB IMXReaderControl_resume_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXReaderControl_suspend_Proxy(
    IMXReaderControl* This);
void __RPC_STUB IMXReaderControl_suspend_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IMXReaderControl_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IMXWriter interface
 */
#ifndef __IMXWriter_INTERFACE_DEFINED__
#define __IMXWriter_INTERFACE_DEFINED__

DEFINE_GUID(IID_IMXWriter, 0x4d7ff4ba, 0x1565, 0x4ea8, 0x94,0xe1, 0x6e,0x72,0x4a,0x46,0xf9,0x8d);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IMXWriter : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE put_output(
        VARIANT Destination) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_output(
        VARIANT *Destination) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_encoding(
        BSTR encoding) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_encoding(
        BSTR *encoding) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_byteOrderMark(
        VARIANT_BOOL writeByteOrderMark) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_byteOrderMark(
        VARIANT_BOOL *writeByteOrderMark) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_indent(
        VARIANT_BOOL indentMode) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_indent(
        VARIANT_BOOL *indentMode) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_standalone(
        VARIANT_BOOL value) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_standalone(
        VARIANT_BOOL *value) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_omitXMLDeclaration(
        VARIANT_BOOL value) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_omitXMLDeclaration(
        VARIANT_BOOL *value) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_version(
        BSTR version) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_version(
        BSTR *version) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_disableOutputEscaping(
        VARIANT_BOOL value) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_disableOutputEscaping(
        VARIANT_BOOL *value) = 0;

    virtual HRESULT STDMETHODCALLTYPE flush(
        ) = 0;

};
#else
typedef struct IMXWriterVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IMXWriter* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IMXWriter* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IMXWriter* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IMXWriter* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IMXWriter* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IMXWriter* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IMXWriter* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IMXWriter methods ***/
    HRESULT (STDMETHODCALLTYPE *put_output)(
        IMXWriter* This,
        VARIANT Destination);

    HRESULT (STDMETHODCALLTYPE *get_output)(
        IMXWriter* This,
        VARIANT *Destination);

    HRESULT (STDMETHODCALLTYPE *put_encoding)(
        IMXWriter* This,
        BSTR encoding);

    HRESULT (STDMETHODCALLTYPE *get_encoding)(
        IMXWriter* This,
        BSTR *encoding);

    HRESULT (STDMETHODCALLTYPE *put_byteOrderMark)(
        IMXWriter* This,
        VARIANT_BOOL writeByteOrderMark);

    HRESULT (STDMETHODCALLTYPE *get_byteOrderMark)(
        IMXWriter* This,
        VARIANT_BOOL *writeByteOrderMark);

    HRESULT (STDMETHODCALLTYPE *put_indent)(
        IMXWriter* This,
        VARIANT_BOOL indentMode);

    HRESULT (STDMETHODCALLTYPE *get_indent)(
        IMXWriter* This,
        VARIANT_BOOL *indentMode);

    HRESULT (STDMETHODCALLTYPE *put_standalone)(
        IMXWriter* This,
        VARIANT_BOOL value);

    HRESULT (STDMETHODCALLTYPE *get_standalone)(
        IMXWriter* This,
        VARIANT_BOOL *value);

    HRESULT (STDMETHODCALLTYPE *put_omitXMLDeclaration)(
        IMXWriter* This,
        VARIANT_BOOL value);

    HRESULT (STDMETHODCALLTYPE *get_omitXMLDeclaration)(
        IMXWriter* This,
        VARIANT_BOOL *value);

    HRESULT (STDMETHODCALLTYPE *put_version)(
        IMXWriter* This,
        BSTR version);

    HRESULT (STDMETHODCALLTYPE *get_version)(
        IMXWriter* This,
        BSTR *version);

    HRESULT (STDMETHODCALLTYPE *put_disableOutputEscaping)(
        IMXWriter* This,
        VARIANT_BOOL value);

    HRESULT (STDMETHODCALLTYPE *get_disableOutputEscaping)(
        IMXWriter* This,
        VARIANT_BOOL *value);

    HRESULT (STDMETHODCALLTYPE *flush)(
        IMXWriter* This);

    END_INTERFACE
} IMXWriterVtbl;
interface IMXWriter {
    CONST_VTBL IMXWriterVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IMXWriter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IMXWriter_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IMXWriter_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IMXWriter_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IMXWriter_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IMXWriter_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IMXWriter_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IMXWriter methods ***/
#define IMXWriter_put_output(This,Destination) (This)->lpVtbl->put_output(This,Destination)
#define IMXWriter_get_output(This,Destination) (This)->lpVtbl->get_output(This,Destination)
#define IMXWriter_put_encoding(This,encoding) (This)->lpVtbl->put_encoding(This,encoding)
#define IMXWriter_get_encoding(This,encoding) (This)->lpVtbl->get_encoding(This,encoding)
#define IMXWriter_put_byteOrderMark(This,writeByteOrderMark) (This)->lpVtbl->put_byteOrderMark(This,writeByteOrderMark)
#define IMXWriter_get_byteOrderMark(This,writeByteOrderMark) (This)->lpVtbl->get_byteOrderMark(This,writeByteOrderMark)
#define IMXWriter_put_indent(This,indentMode) (This)->lpVtbl->put_indent(This,indentMode)
#define IMXWriter_get_indent(This,indentMode) (This)->lpVtbl->get_indent(This,indentMode)
#define IMXWriter_put_standalone(This,value) (This)->lpVtbl->put_standalone(This,value)
#define IMXWriter_get_standalone(This,value) (This)->lpVtbl->get_standalone(This,value)
#define IMXWriter_put_omitXMLDeclaration(This,value) (This)->lpVtbl->put_omitXMLDeclaration(This,value)
#define IMXWriter_get_omitXMLDeclaration(This,value) (This)->lpVtbl->get_omitXMLDeclaration(This,value)
#define IMXWriter_put_version(This,version) (This)->lpVtbl->put_version(This,version)
#define IMXWriter_get_version(This,version) (This)->lpVtbl->get_version(This,version)
#define IMXWriter_put_disableOutputEscaping(This,value) (This)->lpVtbl->put_disableOutputEscaping(This,value)
#define IMXWriter_get_disableOutputEscaping(This,value) (This)->lpVtbl->get_disableOutputEscaping(This,value)
#define IMXWriter_flush(This) (This)->lpVtbl->flush(This)
#endif

#endif

HRESULT STDMETHODCALLTYPE IMXWriter_put_output_Proxy(
    IMXWriter* This,
    VARIANT Destination);
void __RPC_STUB IMXWriter_put_output_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXWriter_get_output_Proxy(
    IMXWriter* This,
    VARIANT *Destination);
void __RPC_STUB IMXWriter_get_output_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXWriter_put_encoding_Proxy(
    IMXWriter* This,
    BSTR encoding);
void __RPC_STUB IMXWriter_put_encoding_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXWriter_get_encoding_Proxy(
    IMXWriter* This,
    BSTR *encoding);
void __RPC_STUB IMXWriter_get_encoding_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXWriter_put_byteOrderMark_Proxy(
    IMXWriter* This,
    VARIANT_BOOL writeByteOrderMark);
void __RPC_STUB IMXWriter_put_byteOrderMark_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXWriter_get_byteOrderMark_Proxy(
    IMXWriter* This,
    VARIANT_BOOL *writeByteOrderMark);
void __RPC_STUB IMXWriter_get_byteOrderMark_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXWriter_put_indent_Proxy(
    IMXWriter* This,
    VARIANT_BOOL indentMode);
void __RPC_STUB IMXWriter_put_indent_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXWriter_get_indent_Proxy(
    IMXWriter* This,
    VARIANT_BOOL *indentMode);
void __RPC_STUB IMXWriter_get_indent_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXWriter_put_standalone_Proxy(
    IMXWriter* This,
    VARIANT_BOOL value);
void __RPC_STUB IMXWriter_put_standalone_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXWriter_get_standalone_Proxy(
    IMXWriter* This,
    VARIANT_BOOL *value);
void __RPC_STUB IMXWriter_get_standalone_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXWriter_put_omitXMLDeclaration_Proxy(
    IMXWriter* This,
    VARIANT_BOOL value);
void __RPC_STUB IMXWriter_put_omitXMLDeclaration_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXWriter_get_omitXMLDeclaration_Proxy(
    IMXWriter* This,
    VARIANT_BOOL *value);
void __RPC_STUB IMXWriter_get_omitXMLDeclaration_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXWriter_put_version_Proxy(
    IMXWriter* This,
    BSTR version);
void __RPC_STUB IMXWriter_put_version_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXWriter_get_version_Proxy(
    IMXWriter* This,
    BSTR *version);
void __RPC_STUB IMXWriter_get_version_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXWriter_put_disableOutputEscaping_Proxy(
    IMXWriter* This,
    VARIANT_BOOL value);
void __RPC_STUB IMXWriter_put_disableOutputEscaping_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXWriter_get_disableOutputEscaping_Proxy(
    IMXWriter* This,
    VARIANT_BOOL *value);
void __RPC_STUB IMXWriter_get_disableOutputEscaping_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXWriter_flush_Proxy(
    IMXWriter* This);
void __RPC_STUB IMXWriter_flush_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IMXWriter_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IMXNamespacePrefixes interface
 */
#ifndef __IMXNamespacePrefixes_INTERFACE_DEFINED__
#define __IMXNamespacePrefixes_INTERFACE_DEFINED__

DEFINE_GUID(IID_IMXNamespacePrefixes, 0xc90352f4, 0x643c, 0x4fbc, 0xbb,0x23, 0xe9,0x96,0xeb,0x2d,0x51,0xfd);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IMXNamespacePrefixes : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_item(
        LONG index,
        BSTR *prefix) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_length(
        LONG *length) = 0;

    virtual HRESULT STDMETHODCALLTYPE get__newEnum(
        IUnknown **ppUnk) = 0;

};
#else
typedef struct IMXNamespacePrefixesVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IMXNamespacePrefixes* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IMXNamespacePrefixes* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IMXNamespacePrefixes* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IMXNamespacePrefixes* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IMXNamespacePrefixes* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IMXNamespacePrefixes* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IMXNamespacePrefixes* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IMXNamespacePrefixes methods ***/
    HRESULT (STDMETHODCALLTYPE *get_item)(
        IMXNamespacePrefixes* This,
        LONG index,
        BSTR *prefix);

    HRESULT (STDMETHODCALLTYPE *get_length)(
        IMXNamespacePrefixes* This,
        LONG *length);

    HRESULT (STDMETHODCALLTYPE *get__newEnum)(
        IMXNamespacePrefixes* This,
        IUnknown **ppUnk);

    END_INTERFACE
} IMXNamespacePrefixesVtbl;
interface IMXNamespacePrefixes {
    CONST_VTBL IMXNamespacePrefixesVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IMXNamespacePrefixes_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IMXNamespacePrefixes_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IMXNamespacePrefixes_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IMXNamespacePrefixes_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IMXNamespacePrefixes_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IMXNamespacePrefixes_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IMXNamespacePrefixes_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IMXNamespacePrefixes methods ***/
#define IMXNamespacePrefixes_get_item(This,index,prefix) (This)->lpVtbl->get_item(This,index,prefix)
#define IMXNamespacePrefixes_get_length(This,length) (This)->lpVtbl->get_length(This,length)
#define IMXNamespacePrefixes_get__newEnum(This,ppUnk) (This)->lpVtbl->get__newEnum(This,ppUnk)
#endif

#endif

HRESULT STDMETHODCALLTYPE IMXNamespacePrefixes_get_item_Proxy(
    IMXNamespacePrefixes* This,
    LONG index,
    BSTR *prefix);
void __RPC_STUB IMXNamespacePrefixes_get_item_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXNamespacePrefixes_get_length_Proxy(
    IMXNamespacePrefixes* This,
    LONG *length);
void __RPC_STUB IMXNamespacePrefixes_get_length_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXNamespacePrefixes_get__newEnum_Proxy(
    IMXNamespacePrefixes* This,
    IUnknown **ppUnk);
void __RPC_STUB IMXNamespacePrefixes_get__newEnum_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IMXNamespacePrefixes_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IMXNamespaceManager interface
 */
#ifndef __IMXNamespaceManager_INTERFACE_DEFINED__
#define __IMXNamespaceManager_INTERFACE_DEFINED__

DEFINE_GUID(IID_IMXNamespaceManager, 0xc90352f6, 0x643c, 0x4fbc, 0xbb,0x23, 0xe9,0x96,0xeb,0x2d,0x51,0xfd);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IMXNamespaceManager : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE putAllowOverride(
        VARIANT_BOOL fOverride) = 0;

    virtual HRESULT STDMETHODCALLTYPE getAllowOverride(
        VARIANT_BOOL *fOverride) = 0;

    virtual HRESULT STDMETHODCALLTYPE reset(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE pushContext(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE pushNodeContext(
        IXMLDOMNode *contextNode,
        VARIANT_BOOL fDeep) = 0;

    virtual HRESULT STDMETHODCALLTYPE popContext(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE declarePrefix(
        const WCHAR *prefix,
        const WCHAR *namespaceURI) = 0;

    virtual HRESULT STDMETHODCALLTYPE getDeclaredPrefix(
        LONG nIndex,
        WCHAR *pwchPrefix,
        int *pcchPrefix) = 0;

    virtual HRESULT STDMETHODCALLTYPE getPrefix(
        const WCHAR *pwszNamespaceURI,
        LONG nIndex,
        WCHAR *pwchPrefix,
        int *pcchPrefix) = 0;

    virtual HRESULT STDMETHODCALLTYPE getURI(
        const WCHAR *pwchPrefix,
        IXMLDOMNode *pContextNode,
        WCHAR *pwchUri,
        int *pcchUri) = 0;

};
#else
typedef struct IMXNamespaceManagerVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IMXNamespaceManager* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IMXNamespaceManager* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IMXNamespaceManager* This);

    /*** IMXNamespaceManager methods ***/
    HRESULT (STDMETHODCALLTYPE *putAllowOverride)(
        IMXNamespaceManager* This,
        VARIANT_BOOL fOverride);

    HRESULT (STDMETHODCALLTYPE *getAllowOverride)(
        IMXNamespaceManager* This,
        VARIANT_BOOL *fOverride);

    HRESULT (STDMETHODCALLTYPE *reset)(
        IMXNamespaceManager* This);

    HRESULT (STDMETHODCALLTYPE *pushContext)(
        IMXNamespaceManager* This);

    HRESULT (STDMETHODCALLTYPE *pushNodeContext)(
        IMXNamespaceManager* This,
        IXMLDOMNode *contextNode,
        VARIANT_BOOL fDeep);

    HRESULT (STDMETHODCALLTYPE *popContext)(
        IMXNamespaceManager* This);

    HRESULT (STDMETHODCALLTYPE *declarePrefix)(
        IMXNamespaceManager* This,
        const WCHAR *prefix,
        const WCHAR *namespaceURI);

    HRESULT (STDMETHODCALLTYPE *getDeclaredPrefix)(
        IMXNamespaceManager* This,
        LONG nIndex,
        WCHAR *pwchPrefix,
        int *pcchPrefix);

    HRESULT (STDMETHODCALLTYPE *getPrefix)(
        IMXNamespaceManager* This,
        const WCHAR *pwszNamespaceURI,
        LONG nIndex,
        WCHAR *pwchPrefix,
        int *pcchPrefix);

    HRESULT (STDMETHODCALLTYPE *getURI)(
        IMXNamespaceManager* This,
        const WCHAR *pwchPrefix,
        IXMLDOMNode *pContextNode,
        WCHAR *pwchUri,
        int *pcchUri);

    END_INTERFACE
} IMXNamespaceManagerVtbl;
interface IMXNamespaceManager {
    CONST_VTBL IMXNamespaceManagerVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IMXNamespaceManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IMXNamespaceManager_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IMXNamespaceManager_Release(This) (This)->lpVtbl->Release(This)
/*** IMXNamespaceManager methods ***/
#define IMXNamespaceManager_putAllowOverride(This,fOverride) (This)->lpVtbl->putAllowOverride(This,fOverride)
#define IMXNamespaceManager_getAllowOverride(This,fOverride) (This)->lpVtbl->getAllowOverride(This,fOverride)
#define IMXNamespaceManager_reset(This) (This)->lpVtbl->reset(This)
#define IMXNamespaceManager_pushContext(This) (This)->lpVtbl->pushContext(This)
#define IMXNamespaceManager_pushNodeContext(This,contextNode,fDeep) (This)->lpVtbl->pushNodeContext(This,contextNode,fDeep)
#define IMXNamespaceManager_popContext(This) (This)->lpVtbl->popContext(This)
#define IMXNamespaceManager_declarePrefix(This,prefix,namespaceURI) (This)->lpVtbl->declarePrefix(This,prefix,namespaceURI)
#define IMXNamespaceManager_getDeclaredPrefix(This,nIndex,pwchPrefix,pcchPrefix) (This)->lpVtbl->getDeclaredPrefix(This,nIndex,pwchPrefix,pcchPrefix)
#define IMXNamespaceManager_getPrefix(This,pwszNamespaceURI,nIndex,pwchPrefix,pcchPrefix) (This)->lpVtbl->getPrefix(This,pwszNamespaceURI,nIndex,pwchPrefix,pcchPrefix)
#define IMXNamespaceManager_getURI(This,pwchPrefix,pContextNode,pwchUri,pcchUri) (This)->lpVtbl->getURI(This,pwchPrefix,pContextNode,pwchUri,pcchUri)
#endif

#endif

HRESULT STDMETHODCALLTYPE IMXNamespaceManager_putAllowOverride_Proxy(
    IMXNamespaceManager* This,
    VARIANT_BOOL fOverride);
void __RPC_STUB IMXNamespaceManager_putAllowOverride_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXNamespaceManager_getAllowOverride_Proxy(
    IMXNamespaceManager* This,
    VARIANT_BOOL *fOverride);
void __RPC_STUB IMXNamespaceManager_getAllowOverride_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXNamespaceManager_reset_Proxy(
    IMXNamespaceManager* This);
void __RPC_STUB IMXNamespaceManager_reset_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXNamespaceManager_pushContext_Proxy(
    IMXNamespaceManager* This);
void __RPC_STUB IMXNamespaceManager_pushContext_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXNamespaceManager_pushNodeContext_Proxy(
    IMXNamespaceManager* This,
    IXMLDOMNode *contextNode,
    VARIANT_BOOL fDeep);
void __RPC_STUB IMXNamespaceManager_pushNodeContext_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXNamespaceManager_popContext_Proxy(
    IMXNamespaceManager* This);
void __RPC_STUB IMXNamespaceManager_popContext_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXNamespaceManager_declarePrefix_Proxy(
    IMXNamespaceManager* This,
    const WCHAR *prefix,
    const WCHAR *namespaceURI);
void __RPC_STUB IMXNamespaceManager_declarePrefix_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXNamespaceManager_getDeclaredPrefix_Proxy(
    IMXNamespaceManager* This,
    LONG nIndex,
    WCHAR *pwchPrefix,
    int *pcchPrefix);
void __RPC_STUB IMXNamespaceManager_getDeclaredPrefix_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXNamespaceManager_getPrefix_Proxy(
    IMXNamespaceManager* This,
    const WCHAR *pwszNamespaceURI,
    LONG nIndex,
    WCHAR *pwchPrefix,
    int *pcchPrefix);
void __RPC_STUB IMXNamespaceManager_getPrefix_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXNamespaceManager_getURI_Proxy(
    IMXNamespaceManager* This,
    const WCHAR *pwchPrefix,
    IXMLDOMNode *pContextNode,
    WCHAR *pwchUri,
    int *pcchUri);
void __RPC_STUB IMXNamespaceManager_getURI_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IMXNamespaceManager_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IVBMXNamespaceManager interface
 */
#ifndef __IVBMXNamespaceManager_INTERFACE_DEFINED__
#define __IVBMXNamespaceManager_INTERFACE_DEFINED__

DEFINE_GUID(IID_IVBMXNamespaceManager, 0xc90352f5, 0x643c, 0x4fbc, 0xbb,0x23, 0xe9,0x96,0xeb,0x2d,0x51,0xfd);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IVBMXNamespaceManager : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE put_allowOverride(
        VARIANT_BOOL fOverride) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_allowOverride(
        VARIANT_BOOL *fOverride) = 0;

    virtual HRESULT STDMETHODCALLTYPE reset(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE pushContext(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE pushNodeContext(
        IXMLDOMNode *contextNode,
        VARIANT_BOOL fDeep) = 0;

    virtual HRESULT STDMETHODCALLTYPE popContext(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE declarePrefix(
        BSTR prefix,
        BSTR namespaceURI) = 0;

    virtual HRESULT STDMETHODCALLTYPE getDeclaredPrefixes(
        IMXNamespacePrefixes **prefixes) = 0;

    virtual HRESULT STDMETHODCALLTYPE getPrefixes(
        BSTR namespaceURI,
        IMXNamespacePrefixes **prefixes) = 0;

    virtual HRESULT STDMETHODCALLTYPE getURI(
        BSTR prefix,
        VARIANT *uri) = 0;

    virtual HRESULT STDMETHODCALLTYPE getURIFromNode(
        BSTR strPrefix,
        IXMLDOMNode *contextNode,
        VARIANT *uri) = 0;

};
#else
typedef struct IVBMXNamespaceManagerVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IVBMXNamespaceManager* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IVBMXNamespaceManager* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IVBMXNamespaceManager* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IVBMXNamespaceManager* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IVBMXNamespaceManager* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IVBMXNamespaceManager* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IVBMXNamespaceManager* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IVBMXNamespaceManager methods ***/
    HRESULT (STDMETHODCALLTYPE *put_allowOverride)(
        IVBMXNamespaceManager* This,
        VARIANT_BOOL fOverride);

    HRESULT (STDMETHODCALLTYPE *get_allowOverride)(
        IVBMXNamespaceManager* This,
        VARIANT_BOOL *fOverride);

    HRESULT (STDMETHODCALLTYPE *reset)(
        IVBMXNamespaceManager* This);

    HRESULT (STDMETHODCALLTYPE *pushContext)(
        IVBMXNamespaceManager* This);

    HRESULT (STDMETHODCALLTYPE *pushNodeContext)(
        IVBMXNamespaceManager* This,
        IXMLDOMNode *contextNode,
        VARIANT_BOOL fDeep);

    HRESULT (STDMETHODCALLTYPE *popContext)(
        IVBMXNamespaceManager* This);

    HRESULT (STDMETHODCALLTYPE *declarePrefix)(
        IVBMXNamespaceManager* This,
        BSTR prefix,
        BSTR namespaceURI);

    HRESULT (STDMETHODCALLTYPE *getDeclaredPrefixes)(
        IVBMXNamespaceManager* This,
        IMXNamespacePrefixes **prefixes);

    HRESULT (STDMETHODCALLTYPE *getPrefixes)(
        IVBMXNamespaceManager* This,
        BSTR namespaceURI,
        IMXNamespacePrefixes **prefixes);

    HRESULT (STDMETHODCALLTYPE *getURI)(
        IVBMXNamespaceManager* This,
        BSTR prefix,
        VARIANT *uri);

    HRESULT (STDMETHODCALLTYPE *getURIFromNode)(
        IVBMXNamespaceManager* This,
        BSTR strPrefix,
        IXMLDOMNode *contextNode,
        VARIANT *uri);

    END_INTERFACE
} IVBMXNamespaceManagerVtbl;
interface IVBMXNamespaceManager {
    CONST_VTBL IVBMXNamespaceManagerVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IVBMXNamespaceManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IVBMXNamespaceManager_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IVBMXNamespaceManager_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IVBMXNamespaceManager_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IVBMXNamespaceManager_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IVBMXNamespaceManager_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IVBMXNamespaceManager_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IVBMXNamespaceManager methods ***/
#define IVBMXNamespaceManager_put_allowOverride(This,fOverride) (This)->lpVtbl->put_allowOverride(This,fOverride)
#define IVBMXNamespaceManager_get_allowOverride(This,fOverride) (This)->lpVtbl->get_allowOverride(This,fOverride)
#define IVBMXNamespaceManager_reset(This) (This)->lpVtbl->reset(This)
#define IVBMXNamespaceManager_pushContext(This) (This)->lpVtbl->pushContext(This)
#define IVBMXNamespaceManager_pushNodeContext(This,contextNode,fDeep) (This)->lpVtbl->pushNodeContext(This,contextNode,fDeep)
#define IVBMXNamespaceManager_popContext(This) (This)->lpVtbl->popContext(This)
#define IVBMXNamespaceManager_declarePrefix(This,prefix,namespaceURI) (This)->lpVtbl->declarePrefix(This,prefix,namespaceURI)
#define IVBMXNamespaceManager_getDeclaredPrefixes(This,prefixes) (This)->lpVtbl->getDeclaredPrefixes(This,prefixes)
#define IVBMXNamespaceManager_getPrefixes(This,namespaceURI,prefixes) (This)->lpVtbl->getPrefixes(This,namespaceURI,prefixes)
#define IVBMXNamespaceManager_getURI(This,prefix,uri) (This)->lpVtbl->getURI(This,prefix,uri)
#define IVBMXNamespaceManager_getURIFromNode(This,strPrefix,contextNode,uri) (This)->lpVtbl->getURIFromNode(This,strPrefix,contextNode,uri)
#endif

#endif

HRESULT STDMETHODCALLTYPE IVBMXNamespaceManager_put_allowOverride_Proxy(
    IVBMXNamespaceManager* This,
    VARIANT_BOOL fOverride);
void __RPC_STUB IVBMXNamespaceManager_put_allowOverride_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBMXNamespaceManager_get_allowOverride_Proxy(
    IVBMXNamespaceManager* This,
    VARIANT_BOOL *fOverride);
void __RPC_STUB IVBMXNamespaceManager_get_allowOverride_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBMXNamespaceManager_reset_Proxy(
    IVBMXNamespaceManager* This);
void __RPC_STUB IVBMXNamespaceManager_reset_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBMXNamespaceManager_pushContext_Proxy(
    IVBMXNamespaceManager* This);
void __RPC_STUB IVBMXNamespaceManager_pushContext_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBMXNamespaceManager_pushNodeContext_Proxy(
    IVBMXNamespaceManager* This,
    IXMLDOMNode *contextNode,
    VARIANT_BOOL fDeep);
void __RPC_STUB IVBMXNamespaceManager_pushNodeContext_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBMXNamespaceManager_popContext_Proxy(
    IVBMXNamespaceManager* This);
void __RPC_STUB IVBMXNamespaceManager_popContext_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBMXNamespaceManager_declarePrefix_Proxy(
    IVBMXNamespaceManager* This,
    BSTR prefix,
    BSTR namespaceURI);
void __RPC_STUB IVBMXNamespaceManager_declarePrefix_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBMXNamespaceManager_getDeclaredPrefixes_Proxy(
    IVBMXNamespaceManager* This,
    IMXNamespacePrefixes **prefixes);
void __RPC_STUB IVBMXNamespaceManager_getDeclaredPrefixes_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBMXNamespaceManager_getPrefixes_Proxy(
    IVBMXNamespaceManager* This,
    BSTR namespaceURI,
    IMXNamespacePrefixes **prefixes);
void __RPC_STUB IVBMXNamespaceManager_getPrefixes_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBMXNamespaceManager_getURI_Proxy(
    IVBMXNamespaceManager* This,
    BSTR prefix,
    VARIANT *uri);
void __RPC_STUB IVBMXNamespaceManager_getURI_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IVBMXNamespaceManager_getURIFromNode_Proxy(
    IVBMXNamespaceManager* This,
    BSTR strPrefix,
    IXMLDOMNode *contextNode,
    VARIANT *uri);
void __RPC_STUB IVBMXNamespaceManager_getURIFromNode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IVBMXNamespaceManager_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IMXXMLFilter interface
 */
#ifndef __IMXXMLFilter_INTERFACE_DEFINED__
#define __IMXXMLFilter_INTERFACE_DEFINED__

DEFINE_GUID(IID_IMXXMLFilter, 0xc90352f7, 0x643c, 0x4fbc, 0xbb,0x23, 0xe9,0x96,0xeb,0x2d,0x51,0xfd);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IMXXMLFilter : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE getFeature(
        BSTR strName,
        VARIANT_BOOL *fValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE putFeature(
        BSTR strName,
        VARIANT_BOOL fValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE getProperty(
        BSTR strName,
        VARIANT *varValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE putProperty(
        BSTR strName,
        VARIANT varValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_entityResolver(
        IUnknown **oResolver) = 0;

    virtual HRESULT STDMETHODCALLTYPE putref_entityResolver(
        IUnknown *oResolver) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_contentHandler(
        IUnknown **oHandler) = 0;

    virtual HRESULT STDMETHODCALLTYPE putref_contentHandler(
        IUnknown *oHandler) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_dtdHandler(
        IUnknown **oHandler) = 0;

    virtual HRESULT STDMETHODCALLTYPE putref_dtdHandler(
        IUnknown *oHandler) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_errorHandler(
        IUnknown **oHandler) = 0;

    virtual HRESULT STDMETHODCALLTYPE putref_errorHandler(
        IUnknown *oHandler) = 0;

};
#else
typedef struct IMXXMLFilterVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IMXXMLFilter* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IMXXMLFilter* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IMXXMLFilter* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IMXXMLFilter* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IMXXMLFilter* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IMXXMLFilter* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IMXXMLFilter* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** IMXXMLFilter methods ***/
    HRESULT (STDMETHODCALLTYPE *getFeature)(
        IMXXMLFilter* This,
        BSTR strName,
        VARIANT_BOOL *fValue);

    HRESULT (STDMETHODCALLTYPE *putFeature)(
        IMXXMLFilter* This,
        BSTR strName,
        VARIANT_BOOL fValue);

    HRESULT (STDMETHODCALLTYPE *getProperty)(
        IMXXMLFilter* This,
        BSTR strName,
        VARIANT *varValue);

    HRESULT (STDMETHODCALLTYPE *putProperty)(
        IMXXMLFilter* This,
        BSTR strName,
        VARIANT varValue);

    HRESULT (STDMETHODCALLTYPE *get_entityResolver)(
        IMXXMLFilter* This,
        IUnknown **oResolver);

    HRESULT (STDMETHODCALLTYPE *putref_entityResolver)(
        IMXXMLFilter* This,
        IUnknown *oResolver);

    HRESULT (STDMETHODCALLTYPE *get_contentHandler)(
        IMXXMLFilter* This,
        IUnknown **oHandler);

    HRESULT (STDMETHODCALLTYPE *putref_contentHandler)(
        IMXXMLFilter* This,
        IUnknown *oHandler);

    HRESULT (STDMETHODCALLTYPE *get_dtdHandler)(
        IMXXMLFilter* This,
        IUnknown **oHandler);

    HRESULT (STDMETHODCALLTYPE *putref_dtdHandler)(
        IMXXMLFilter* This,
        IUnknown *oHandler);

    HRESULT (STDMETHODCALLTYPE *get_errorHandler)(
        IMXXMLFilter* This,
        IUnknown **oHandler);

    HRESULT (STDMETHODCALLTYPE *putref_errorHandler)(
        IMXXMLFilter* This,
        IUnknown *oHandler);

    END_INTERFACE
} IMXXMLFilterVtbl;
interface IMXXMLFilter {
    CONST_VTBL IMXXMLFilterVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IMXXMLFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IMXXMLFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IMXXMLFilter_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IMXXMLFilter_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IMXXMLFilter_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IMXXMLFilter_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IMXXMLFilter_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IMXXMLFilter methods ***/
#define IMXXMLFilter_getFeature(This,strName,fValue) (This)->lpVtbl->getFeature(This,strName,fValue)
#define IMXXMLFilter_putFeature(This,strName,fValue) (This)->lpVtbl->putFeature(This,strName,fValue)
#define IMXXMLFilter_getProperty(This,strName,varValue) (This)->lpVtbl->getProperty(This,strName,varValue)
#define IMXXMLFilter_putProperty(This,strName,varValue) (This)->lpVtbl->putProperty(This,strName,varValue)
#define IMXXMLFilter_get_entityResolver(This,oResolver) (This)->lpVtbl->get_entityResolver(This,oResolver)
#define IMXXMLFilter_putref_entityResolver(This,oResolver) (This)->lpVtbl->putref_entityResolver(This,oResolver)
#define IMXXMLFilter_get_contentHandler(This,oHandler) (This)->lpVtbl->get_contentHandler(This,oHandler)
#define IMXXMLFilter_putref_contentHandler(This,oHandler) (This)->lpVtbl->putref_contentHandler(This,oHandler)
#define IMXXMLFilter_get_dtdHandler(This,oHandler) (This)->lpVtbl->get_dtdHandler(This,oHandler)
#define IMXXMLFilter_putref_dtdHandler(This,oHandler) (This)->lpVtbl->putref_dtdHandler(This,oHandler)
#define IMXXMLFilter_get_errorHandler(This,oHandler) (This)->lpVtbl->get_errorHandler(This,oHandler)
#define IMXXMLFilter_putref_errorHandler(This,oHandler) (This)->lpVtbl->putref_errorHandler(This,oHandler)
#endif

#endif

HRESULT STDMETHODCALLTYPE IMXXMLFilter_getFeature_Proxy(
    IMXXMLFilter* This,
    BSTR strName,
    VARIANT_BOOL *fValue);
void __RPC_STUB IMXXMLFilter_getFeature_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXXMLFilter_putFeature_Proxy(
    IMXXMLFilter* This,
    BSTR strName,
    VARIANT_BOOL fValue);
void __RPC_STUB IMXXMLFilter_putFeature_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXXMLFilter_getProperty_Proxy(
    IMXXMLFilter* This,
    BSTR strName,
    VARIANT *varValue);
void __RPC_STUB IMXXMLFilter_getProperty_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXXMLFilter_putProperty_Proxy(
    IMXXMLFilter* This,
    BSTR strName,
    VARIANT varValue);
void __RPC_STUB IMXXMLFilter_putProperty_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXXMLFilter_get_entityResolver_Proxy(
    IMXXMLFilter* This,
    IUnknown **oResolver);
void __RPC_STUB IMXXMLFilter_get_entityResolver_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXXMLFilter_putref_entityResolver_Proxy(
    IMXXMLFilter* This,
    IUnknown *oResolver);
void __RPC_STUB IMXXMLFilter_putref_entityResolver_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXXMLFilter_get_contentHandler_Proxy(
    IMXXMLFilter* This,
    IUnknown **oHandler);
void __RPC_STUB IMXXMLFilter_get_contentHandler_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXXMLFilter_putref_contentHandler_Proxy(
    IMXXMLFilter* This,
    IUnknown *oHandler);
void __RPC_STUB IMXXMLFilter_putref_contentHandler_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXXMLFilter_get_dtdHandler_Proxy(
    IMXXMLFilter* This,
    IUnknown **oHandler);
void __RPC_STUB IMXXMLFilter_get_dtdHandler_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXXMLFilter_putref_dtdHandler_Proxy(
    IMXXMLFilter* This,
    IUnknown *oHandler);
void __RPC_STUB IMXXMLFilter_putref_dtdHandler_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXXMLFilter_get_errorHandler_Proxy(
    IMXXMLFilter* This,
    IUnknown **oHandler);
void __RPC_STUB IMXXMLFilter_get_errorHandler_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IMXXMLFilter_putref_errorHandler_Proxy(
    IMXXMLFilter* This,
    IUnknown *oHandler);
void __RPC_STUB IMXXMLFilter_putref_errorHandler_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IMXXMLFilter_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ISchemaStringCollection interface
 */
#ifndef __ISchemaStringCollection_INTERFACE_DEFINED__
#define __ISchemaStringCollection_INTERFACE_DEFINED__

DEFINE_GUID(IID_ISchemaStringCollection, 0x50ea08b1, 0xdd1b, 0x4664, 0x9a,0x50, 0xc2,0xf4,0x0f,0x4b,0xd7,0x9a);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface ISchemaStringCollection : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_item(
        LONG index,
        BSTR *bstr) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_length(
        LONG *length) = 0;

    virtual HRESULT STDMETHODCALLTYPE get__newEnum(
        IUnknown **ppunk) = 0;

};
#else
typedef struct ISchemaStringCollectionVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ISchemaStringCollection* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ISchemaStringCollection* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ISchemaStringCollection* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        ISchemaStringCollection* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        ISchemaStringCollection* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        ISchemaStringCollection* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        ISchemaStringCollection* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** ISchemaStringCollection methods ***/
    HRESULT (STDMETHODCALLTYPE *get_item)(
        ISchemaStringCollection* This,
        LONG index,
        BSTR *bstr);

    HRESULT (STDMETHODCALLTYPE *get_length)(
        ISchemaStringCollection* This,
        LONG *length);

    HRESULT (STDMETHODCALLTYPE *get__newEnum)(
        ISchemaStringCollection* This,
        IUnknown **ppunk);

    END_INTERFACE
} ISchemaStringCollectionVtbl;
interface ISchemaStringCollection {
    CONST_VTBL ISchemaStringCollectionVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISchemaStringCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ISchemaStringCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ISchemaStringCollection_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define ISchemaStringCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define ISchemaStringCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ISchemaStringCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ISchemaStringCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** ISchemaStringCollection methods ***/
#define ISchemaStringCollection_get_item(This,index,bstr) (This)->lpVtbl->get_item(This,index,bstr)
#define ISchemaStringCollection_get_length(This,length) (This)->lpVtbl->get_length(This,length)
#define ISchemaStringCollection_get__newEnum(This,ppunk) (This)->lpVtbl->get__newEnum(This,ppunk)
#endif

#endif

HRESULT STDMETHODCALLTYPE ISchemaStringCollection_get_item_Proxy(
    ISchemaStringCollection* This,
    LONG index,
    BSTR *bstr);
void __RPC_STUB ISchemaStringCollection_get_item_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaStringCollection_get_length_Proxy(
    ISchemaStringCollection* This,
    LONG *length);
void __RPC_STUB ISchemaStringCollection_get_length_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaStringCollection_get__newEnum_Proxy(
    ISchemaStringCollection* This,
    IUnknown **ppunk);
void __RPC_STUB ISchemaStringCollection_get__newEnum_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ISchemaStringCollection_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ISchemaItemCollection interface
 */
#ifndef __ISchemaItemCollection_INTERFACE_DEFINED__
#define __ISchemaItemCollection_INTERFACE_DEFINED__

DEFINE_GUID(IID_ISchemaItemCollection, 0x50ea08b2, 0xdd1b, 0x4664, 0x9a,0x50, 0xc2,0xf4,0x0f,0x4b,0xd7,0x9a);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface ISchemaItemCollection : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_item(
        LONG index,
        ISchemaItem **item) = 0;

    virtual HRESULT STDMETHODCALLTYPE itemByName(
        BSTR name,
        ISchemaItem **item) = 0;

    virtual HRESULT STDMETHODCALLTYPE itemByQName(
        BSTR name,
        BSTR namespaceURI,
        ISchemaItem **item) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_length(
        LONG *length) = 0;

    virtual HRESULT STDMETHODCALLTYPE get__newEnum(
        IUnknown **ppunk) = 0;

};
#else
typedef struct ISchemaItemCollectionVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ISchemaItemCollection* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ISchemaItemCollection* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ISchemaItemCollection* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        ISchemaItemCollection* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        ISchemaItemCollection* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        ISchemaItemCollection* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        ISchemaItemCollection* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** ISchemaItemCollection methods ***/
    HRESULT (STDMETHODCALLTYPE *get_item)(
        ISchemaItemCollection* This,
        LONG index,
        ISchemaItem **item);

    HRESULT (STDMETHODCALLTYPE *itemByName)(
        ISchemaItemCollection* This,
        BSTR name,
        ISchemaItem **item);

    HRESULT (STDMETHODCALLTYPE *itemByQName)(
        ISchemaItemCollection* This,
        BSTR name,
        BSTR namespaceURI,
        ISchemaItem **item);

    HRESULT (STDMETHODCALLTYPE *get_length)(
        ISchemaItemCollection* This,
        LONG *length);

    HRESULT (STDMETHODCALLTYPE *get__newEnum)(
        ISchemaItemCollection* This,
        IUnknown **ppunk);

    END_INTERFACE
} ISchemaItemCollectionVtbl;
interface ISchemaItemCollection {
    CONST_VTBL ISchemaItemCollectionVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISchemaItemCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ISchemaItemCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ISchemaItemCollection_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define ISchemaItemCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define ISchemaItemCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ISchemaItemCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ISchemaItemCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** ISchemaItemCollection methods ***/
#define ISchemaItemCollection_get_item(This,index,item) (This)->lpVtbl->get_item(This,index,item)
#define ISchemaItemCollection_itemByName(This,name,item) (This)->lpVtbl->itemByName(This,name,item)
#define ISchemaItemCollection_itemByQName(This,name,namespaceURI,item) (This)->lpVtbl->itemByQName(This,name,namespaceURI,item)
#define ISchemaItemCollection_get_length(This,length) (This)->lpVtbl->get_length(This,length)
#define ISchemaItemCollection_get__newEnum(This,ppunk) (This)->lpVtbl->get__newEnum(This,ppunk)
#endif

#endif

HRESULT STDMETHODCALLTYPE ISchemaItemCollection_get_item_Proxy(
    ISchemaItemCollection* This,
    LONG index,
    ISchemaItem **item);
void __RPC_STUB ISchemaItemCollection_get_item_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaItemCollection_itemByName_Proxy(
    ISchemaItemCollection* This,
    BSTR name,
    ISchemaItem **item);
void __RPC_STUB ISchemaItemCollection_itemByName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaItemCollection_itemByQName_Proxy(
    ISchemaItemCollection* This,
    BSTR name,
    BSTR namespaceURI,
    ISchemaItem **item);
void __RPC_STUB ISchemaItemCollection_itemByQName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaItemCollection_get_length_Proxy(
    ISchemaItemCollection* This,
    LONG *length);
void __RPC_STUB ISchemaItemCollection_get_length_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaItemCollection_get__newEnum_Proxy(
    ISchemaItemCollection* This,
    IUnknown **ppunk);
void __RPC_STUB ISchemaItemCollection_get__newEnum_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ISchemaItemCollection_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ISchemaItem interface
 */
#ifndef __ISchemaItem_INTERFACE_DEFINED__
#define __ISchemaItem_INTERFACE_DEFINED__

DEFINE_GUID(IID_ISchemaItem, 0x50ea08b3, 0xdd1b, 0x4664, 0x9a,0x50, 0xc2,0xf4,0x0f,0x4b,0xd7,0x9a);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface ISchemaItem : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_name(
        BSTR *name) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_namespaceURI(
        BSTR *namespaceURI) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_schema(
        ISchema **schema) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_id(
        BSTR *id) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_itemType(
        SOMITEMTYPE *itemType) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_unhandledAttributes(
        IVBSAXAttributes **attributes) = 0;

    virtual HRESULT STDMETHODCALLTYPE writeAnnotation(
        IUnknown *annotationSink,
        VARIANT_BOOL *isWritten) = 0;

};
#else
typedef struct ISchemaItemVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ISchemaItem* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ISchemaItem* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ISchemaItem* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        ISchemaItem* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        ISchemaItem* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        ISchemaItem* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        ISchemaItem* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** ISchemaItem methods ***/
    HRESULT (STDMETHODCALLTYPE *get_name)(
        ISchemaItem* This,
        BSTR *name);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        ISchemaItem* This,
        BSTR *namespaceURI);

    HRESULT (STDMETHODCALLTYPE *get_schema)(
        ISchemaItem* This,
        ISchema **schema);

    HRESULT (STDMETHODCALLTYPE *get_id)(
        ISchemaItem* This,
        BSTR *id);

    HRESULT (STDMETHODCALLTYPE *get_itemType)(
        ISchemaItem* This,
        SOMITEMTYPE *itemType);

    HRESULT (STDMETHODCALLTYPE *get_unhandledAttributes)(
        ISchemaItem* This,
        IVBSAXAttributes **attributes);

    HRESULT (STDMETHODCALLTYPE *writeAnnotation)(
        ISchemaItem* This,
        IUnknown *annotationSink,
        VARIANT_BOOL *isWritten);

    END_INTERFACE
} ISchemaItemVtbl;
interface ISchemaItem {
    CONST_VTBL ISchemaItemVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISchemaItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ISchemaItem_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ISchemaItem_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define ISchemaItem_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define ISchemaItem_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ISchemaItem_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ISchemaItem_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** ISchemaItem methods ***/
#define ISchemaItem_get_name(This,name) (This)->lpVtbl->get_name(This,name)
#define ISchemaItem_get_namespaceURI(This,namespaceURI) (This)->lpVtbl->get_namespaceURI(This,namespaceURI)
#define ISchemaItem_get_schema(This,schema) (This)->lpVtbl->get_schema(This,schema)
#define ISchemaItem_get_id(This,id) (This)->lpVtbl->get_id(This,id)
#define ISchemaItem_get_itemType(This,itemType) (This)->lpVtbl->get_itemType(This,itemType)
#define ISchemaItem_get_unhandledAttributes(This,attributes) (This)->lpVtbl->get_unhandledAttributes(This,attributes)
#define ISchemaItem_writeAnnotation(This,annotationSink,isWritten) (This)->lpVtbl->writeAnnotation(This,annotationSink,isWritten)
#endif

#endif

HRESULT STDMETHODCALLTYPE ISchemaItem_get_name_Proxy(
    ISchemaItem* This,
    BSTR *name);
void __RPC_STUB ISchemaItem_get_name_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaItem_get_namespaceURI_Proxy(
    ISchemaItem* This,
    BSTR *namespaceURI);
void __RPC_STUB ISchemaItem_get_namespaceURI_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaItem_get_schema_Proxy(
    ISchemaItem* This,
    ISchema **schema);
void __RPC_STUB ISchemaItem_get_schema_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaItem_get_id_Proxy(
    ISchemaItem* This,
    BSTR *id);
void __RPC_STUB ISchemaItem_get_id_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaItem_get_itemType_Proxy(
    ISchemaItem* This,
    SOMITEMTYPE *itemType);
void __RPC_STUB ISchemaItem_get_itemType_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaItem_get_unhandledAttributes_Proxy(
    ISchemaItem* This,
    IVBSAXAttributes **attributes);
void __RPC_STUB ISchemaItem_get_unhandledAttributes_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaItem_writeAnnotation_Proxy(
    ISchemaItem* This,
    IUnknown *annotationSink,
    VARIANT_BOOL *isWritten);
void __RPC_STUB ISchemaItem_writeAnnotation_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ISchemaItem_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ISchema interface
 */
#ifndef __ISchema_INTERFACE_DEFINED__
#define __ISchema_INTERFACE_DEFINED__

DEFINE_GUID(IID_ISchema, 0x50ea08b4, 0xdd1b, 0x4664, 0x9a,0x50, 0xc2,0xf4,0x0f,0x4b,0xd7,0x9a);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface ISchema : public ISchemaItem
{
    virtual HRESULT STDMETHODCALLTYPE get_targetNamespace(
        BSTR *targetNamespace) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_version(
        BSTR *version) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_types(
        ISchemaItemCollection **types) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_elements(
        ISchemaItemCollection **elements) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_attributes(
        ISchemaItemCollection **attributes) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_attributeGroups(
        ISchemaItemCollection **attributeGroups) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_modelGroups(
        ISchemaItemCollection **modelGroups) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_notations(
        ISchemaItemCollection **notations) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_schemaLocations(
        ISchemaStringCollection **schemaLocations) = 0;

};
#else
typedef struct ISchemaVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ISchema* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ISchema* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ISchema* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        ISchema* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        ISchema* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        ISchema* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        ISchema* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** ISchemaItem methods ***/
    HRESULT (STDMETHODCALLTYPE *get_name)(
        ISchema* This,
        BSTR *name);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        ISchema* This,
        BSTR *namespaceURI);

    HRESULT (STDMETHODCALLTYPE *get_schema)(
        ISchema* This,
        ISchema **schema);

    HRESULT (STDMETHODCALLTYPE *get_id)(
        ISchema* This,
        BSTR *id);

    HRESULT (STDMETHODCALLTYPE *get_itemType)(
        ISchema* This,
        SOMITEMTYPE *itemType);

    HRESULT (STDMETHODCALLTYPE *get_unhandledAttributes)(
        ISchema* This,
        IVBSAXAttributes **attributes);

    HRESULT (STDMETHODCALLTYPE *writeAnnotation)(
        ISchema* This,
        IUnknown *annotationSink,
        VARIANT_BOOL *isWritten);

    /*** ISchema methods ***/
    HRESULT (STDMETHODCALLTYPE *get_targetNamespace)(
        ISchema* This,
        BSTR *targetNamespace);

    HRESULT (STDMETHODCALLTYPE *get_version)(
        ISchema* This,
        BSTR *version);

    HRESULT (STDMETHODCALLTYPE *get_types)(
        ISchema* This,
        ISchemaItemCollection **types);

    HRESULT (STDMETHODCALLTYPE *get_elements)(
        ISchema* This,
        ISchemaItemCollection **elements);

    HRESULT (STDMETHODCALLTYPE *get_attributes)(
        ISchema* This,
        ISchemaItemCollection **attributes);

    HRESULT (STDMETHODCALLTYPE *get_attributeGroups)(
        ISchema* This,
        ISchemaItemCollection **attributeGroups);

    HRESULT (STDMETHODCALLTYPE *get_modelGroups)(
        ISchema* This,
        ISchemaItemCollection **modelGroups);

    HRESULT (STDMETHODCALLTYPE *get_notations)(
        ISchema* This,
        ISchemaItemCollection **notations);

    HRESULT (STDMETHODCALLTYPE *get_schemaLocations)(
        ISchema* This,
        ISchemaStringCollection **schemaLocations);

    END_INTERFACE
} ISchemaVtbl;
interface ISchema {
    CONST_VTBL ISchemaVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISchema_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ISchema_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ISchema_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define ISchema_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define ISchema_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ISchema_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ISchema_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** ISchemaItem methods ***/
#define ISchema_get_name(This,name) (This)->lpVtbl->get_name(This,name)
#define ISchema_get_namespaceURI(This,namespaceURI) (This)->lpVtbl->get_namespaceURI(This,namespaceURI)
#define ISchema_get_schema(This,schema) (This)->lpVtbl->get_schema(This,schema)
#define ISchema_get_id(This,id) (This)->lpVtbl->get_id(This,id)
#define ISchema_get_itemType(This,itemType) (This)->lpVtbl->get_itemType(This,itemType)
#define ISchema_get_unhandledAttributes(This,attributes) (This)->lpVtbl->get_unhandledAttributes(This,attributes)
#define ISchema_writeAnnotation(This,annotationSink,isWritten) (This)->lpVtbl->writeAnnotation(This,annotationSink,isWritten)
/*** ISchema methods ***/
#define ISchema_get_targetNamespace(This,targetNamespace) (This)->lpVtbl->get_targetNamespace(This,targetNamespace)
#define ISchema_get_version(This,version) (This)->lpVtbl->get_version(This,version)
#define ISchema_get_types(This,types) (This)->lpVtbl->get_types(This,types)
#define ISchema_get_elements(This,elements) (This)->lpVtbl->get_elements(This,elements)
#define ISchema_get_attributes(This,attributes) (This)->lpVtbl->get_attributes(This,attributes)
#define ISchema_get_attributeGroups(This,attributeGroups) (This)->lpVtbl->get_attributeGroups(This,attributeGroups)
#define ISchema_get_modelGroups(This,modelGroups) (This)->lpVtbl->get_modelGroups(This,modelGroups)
#define ISchema_get_notations(This,notations) (This)->lpVtbl->get_notations(This,notations)
#define ISchema_get_schemaLocations(This,schemaLocations) (This)->lpVtbl->get_schemaLocations(This,schemaLocations)
#endif

#endif

HRESULT STDMETHODCALLTYPE ISchema_get_targetNamespace_Proxy(
    ISchema* This,
    BSTR *targetNamespace);
void __RPC_STUB ISchema_get_targetNamespace_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchema_get_version_Proxy(
    ISchema* This,
    BSTR *version);
void __RPC_STUB ISchema_get_version_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchema_get_types_Proxy(
    ISchema* This,
    ISchemaItemCollection **types);
void __RPC_STUB ISchema_get_types_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchema_get_elements_Proxy(
    ISchema* This,
    ISchemaItemCollection **elements);
void __RPC_STUB ISchema_get_elements_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchema_get_attributes_Proxy(
    ISchema* This,
    ISchemaItemCollection **attributes);
void __RPC_STUB ISchema_get_attributes_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchema_get_attributeGroups_Proxy(
    ISchema* This,
    ISchemaItemCollection **attributeGroups);
void __RPC_STUB ISchema_get_attributeGroups_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchema_get_modelGroups_Proxy(
    ISchema* This,
    ISchemaItemCollection **modelGroups);
void __RPC_STUB ISchema_get_modelGroups_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchema_get_notations_Proxy(
    ISchema* This,
    ISchemaItemCollection **notations);
void __RPC_STUB ISchema_get_notations_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchema_get_schemaLocations_Proxy(
    ISchema* This,
    ISchemaStringCollection **schemaLocations);
void __RPC_STUB ISchema_get_schemaLocations_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ISchema_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ISchemaParticle interface
 */
#ifndef __ISchemaParticle_INTERFACE_DEFINED__
#define __ISchemaParticle_INTERFACE_DEFINED__

DEFINE_GUID(IID_ISchemaParticle, 0x50ea08b5, 0xdd1b, 0x4664, 0x9a,0x50, 0xc2,0xf4,0x0f,0x4b,0xd7,0x9a);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface ISchemaParticle : public ISchemaItem
{
    virtual HRESULT STDMETHODCALLTYPE get_minOccurs(
        VARIANT *minOccurs) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_maxOccurs(
        VARIANT *maxOccurs) = 0;

};
#else
typedef struct ISchemaParticleVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ISchemaParticle* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ISchemaParticle* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ISchemaParticle* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        ISchemaParticle* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        ISchemaParticle* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        ISchemaParticle* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        ISchemaParticle* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** ISchemaItem methods ***/
    HRESULT (STDMETHODCALLTYPE *get_name)(
        ISchemaParticle* This,
        BSTR *name);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        ISchemaParticle* This,
        BSTR *namespaceURI);

    HRESULT (STDMETHODCALLTYPE *get_schema)(
        ISchemaParticle* This,
        ISchema **schema);

    HRESULT (STDMETHODCALLTYPE *get_id)(
        ISchemaParticle* This,
        BSTR *id);

    HRESULT (STDMETHODCALLTYPE *get_itemType)(
        ISchemaParticle* This,
        SOMITEMTYPE *itemType);

    HRESULT (STDMETHODCALLTYPE *get_unhandledAttributes)(
        ISchemaParticle* This,
        IVBSAXAttributes **attributes);

    HRESULT (STDMETHODCALLTYPE *writeAnnotation)(
        ISchemaParticle* This,
        IUnknown *annotationSink,
        VARIANT_BOOL *isWritten);

    /*** ISchemaParticle methods ***/
    HRESULT (STDMETHODCALLTYPE *get_minOccurs)(
        ISchemaParticle* This,
        VARIANT *minOccurs);

    HRESULT (STDMETHODCALLTYPE *get_maxOccurs)(
        ISchemaParticle* This,
        VARIANT *maxOccurs);

    END_INTERFACE
} ISchemaParticleVtbl;
interface ISchemaParticle {
    CONST_VTBL ISchemaParticleVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISchemaParticle_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ISchemaParticle_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ISchemaParticle_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define ISchemaParticle_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define ISchemaParticle_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ISchemaParticle_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ISchemaParticle_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** ISchemaItem methods ***/
#define ISchemaParticle_get_name(This,name) (This)->lpVtbl->get_name(This,name)
#define ISchemaParticle_get_namespaceURI(This,namespaceURI) (This)->lpVtbl->get_namespaceURI(This,namespaceURI)
#define ISchemaParticle_get_schema(This,schema) (This)->lpVtbl->get_schema(This,schema)
#define ISchemaParticle_get_id(This,id) (This)->lpVtbl->get_id(This,id)
#define ISchemaParticle_get_itemType(This,itemType) (This)->lpVtbl->get_itemType(This,itemType)
#define ISchemaParticle_get_unhandledAttributes(This,attributes) (This)->lpVtbl->get_unhandledAttributes(This,attributes)
#define ISchemaParticle_writeAnnotation(This,annotationSink,isWritten) (This)->lpVtbl->writeAnnotation(This,annotationSink,isWritten)
/*** ISchemaParticle methods ***/
#define ISchemaParticle_get_minOccurs(This,minOccurs) (This)->lpVtbl->get_minOccurs(This,minOccurs)
#define ISchemaParticle_get_maxOccurs(This,maxOccurs) (This)->lpVtbl->get_maxOccurs(This,maxOccurs)
#endif

#endif

HRESULT STDMETHODCALLTYPE ISchemaParticle_get_minOccurs_Proxy(
    ISchemaParticle* This,
    VARIANT *minOccurs);
void __RPC_STUB ISchemaParticle_get_minOccurs_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaParticle_get_maxOccurs_Proxy(
    ISchemaParticle* This,
    VARIANT *maxOccurs);
void __RPC_STUB ISchemaParticle_get_maxOccurs_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ISchemaParticle_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ISchemaAttribute interface
 */
#ifndef __ISchemaAttribute_INTERFACE_DEFINED__
#define __ISchemaAttribute_INTERFACE_DEFINED__

DEFINE_GUID(IID_ISchemaAttribute, 0x50ea08b6, 0xdd1b, 0x4664, 0x9a,0x50, 0xc2,0xf4,0x0f,0x4b,0xd7,0x9a);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface ISchemaAttribute : public ISchemaItem
{
    virtual HRESULT STDMETHODCALLTYPE get_type(
        ISchemaType **type) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_scope(
        ISchemaComplexType **scope) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_defaultValue(
        BSTR *defaultValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_fixedValue(
        BSTR *fixedValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_use(
        SCHEMAUSE *use) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_isReference(
        VARIANT_BOOL *reference) = 0;

};
#else
typedef struct ISchemaAttributeVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ISchemaAttribute* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ISchemaAttribute* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ISchemaAttribute* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        ISchemaAttribute* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        ISchemaAttribute* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        ISchemaAttribute* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        ISchemaAttribute* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** ISchemaItem methods ***/
    HRESULT (STDMETHODCALLTYPE *get_name)(
        ISchemaAttribute* This,
        BSTR *name);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        ISchemaAttribute* This,
        BSTR *namespaceURI);

    HRESULT (STDMETHODCALLTYPE *get_schema)(
        ISchemaAttribute* This,
        ISchema **schema);

    HRESULT (STDMETHODCALLTYPE *get_id)(
        ISchemaAttribute* This,
        BSTR *id);

    HRESULT (STDMETHODCALLTYPE *get_itemType)(
        ISchemaAttribute* This,
        SOMITEMTYPE *itemType);

    HRESULT (STDMETHODCALLTYPE *get_unhandledAttributes)(
        ISchemaAttribute* This,
        IVBSAXAttributes **attributes);

    HRESULT (STDMETHODCALLTYPE *writeAnnotation)(
        ISchemaAttribute* This,
        IUnknown *annotationSink,
        VARIANT_BOOL *isWritten);

    /*** ISchemaAttribute methods ***/
    HRESULT (STDMETHODCALLTYPE *get_type)(
        ISchemaAttribute* This,
        ISchemaType **type);

    HRESULT (STDMETHODCALLTYPE *get_scope)(
        ISchemaAttribute* This,
        ISchemaComplexType **scope);

    HRESULT (STDMETHODCALLTYPE *get_defaultValue)(
        ISchemaAttribute* This,
        BSTR *defaultValue);

    HRESULT (STDMETHODCALLTYPE *get_fixedValue)(
        ISchemaAttribute* This,
        BSTR *fixedValue);

    HRESULT (STDMETHODCALLTYPE *get_use)(
        ISchemaAttribute* This,
        SCHEMAUSE *use);

    HRESULT (STDMETHODCALLTYPE *get_isReference)(
        ISchemaAttribute* This,
        VARIANT_BOOL *reference);

    END_INTERFACE
} ISchemaAttributeVtbl;
interface ISchemaAttribute {
    CONST_VTBL ISchemaAttributeVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISchemaAttribute_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ISchemaAttribute_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ISchemaAttribute_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define ISchemaAttribute_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define ISchemaAttribute_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ISchemaAttribute_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ISchemaAttribute_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** ISchemaItem methods ***/
#define ISchemaAttribute_get_name(This,name) (This)->lpVtbl->get_name(This,name)
#define ISchemaAttribute_get_namespaceURI(This,namespaceURI) (This)->lpVtbl->get_namespaceURI(This,namespaceURI)
#define ISchemaAttribute_get_schema(This,schema) (This)->lpVtbl->get_schema(This,schema)
#define ISchemaAttribute_get_id(This,id) (This)->lpVtbl->get_id(This,id)
#define ISchemaAttribute_get_itemType(This,itemType) (This)->lpVtbl->get_itemType(This,itemType)
#define ISchemaAttribute_get_unhandledAttributes(This,attributes) (This)->lpVtbl->get_unhandledAttributes(This,attributes)
#define ISchemaAttribute_writeAnnotation(This,annotationSink,isWritten) (This)->lpVtbl->writeAnnotation(This,annotationSink,isWritten)
/*** ISchemaAttribute methods ***/
#define ISchemaAttribute_get_type(This,type) (This)->lpVtbl->get_type(This,type)
#define ISchemaAttribute_get_scope(This,scope) (This)->lpVtbl->get_scope(This,scope)
#define ISchemaAttribute_get_defaultValue(This,defaultValue) (This)->lpVtbl->get_defaultValue(This,defaultValue)
#define ISchemaAttribute_get_fixedValue(This,fixedValue) (This)->lpVtbl->get_fixedValue(This,fixedValue)
#define ISchemaAttribute_get_use(This,use) (This)->lpVtbl->get_use(This,use)
#define ISchemaAttribute_get_isReference(This,reference) (This)->lpVtbl->get_isReference(This,reference)
#endif

#endif

HRESULT STDMETHODCALLTYPE ISchemaAttribute_get_type_Proxy(
    ISchemaAttribute* This,
    ISchemaType **type);
void __RPC_STUB ISchemaAttribute_get_type_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaAttribute_get_scope_Proxy(
    ISchemaAttribute* This,
    ISchemaComplexType **scope);
void __RPC_STUB ISchemaAttribute_get_scope_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaAttribute_get_defaultValue_Proxy(
    ISchemaAttribute* This,
    BSTR *defaultValue);
void __RPC_STUB ISchemaAttribute_get_defaultValue_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaAttribute_get_fixedValue_Proxy(
    ISchemaAttribute* This,
    BSTR *fixedValue);
void __RPC_STUB ISchemaAttribute_get_fixedValue_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaAttribute_get_use_Proxy(
    ISchemaAttribute* This,
    SCHEMAUSE *use);
void __RPC_STUB ISchemaAttribute_get_use_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaAttribute_get_isReference_Proxy(
    ISchemaAttribute* This,
    VARIANT_BOOL *reference);
void __RPC_STUB ISchemaAttribute_get_isReference_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ISchemaAttribute_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ISchemaElement interface
 */
#ifndef __ISchemaElement_INTERFACE_DEFINED__
#define __ISchemaElement_INTERFACE_DEFINED__

DEFINE_GUID(IID_ISchemaElement, 0x50ea08b7, 0xdd1b, 0x4664, 0x9a,0x50, 0xc2,0xf4,0x0f,0x4b,0xd7,0x9a);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface ISchemaElement : public ISchemaParticle
{
    virtual HRESULT STDMETHODCALLTYPE get_type(
        ISchemaType **type) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_scope(
        ISchemaComplexType **scope) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_defaultValue(
        BSTR *defaultValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_fixedValue(
        BSTR *fixedValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_isNillable(
        VARIANT_BOOL *nillable) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_identityConstraints(
        ISchemaItemCollection **constraints) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_substitutionGroup(
        ISchemaElement **element) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_substitutionGroupExclusions(
        SCHEMADERIVATIONMETHOD *exclusions) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_disallowedSubstitutions(
        SCHEMADERIVATIONMETHOD *disallowed) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_isAbstract(
        VARIANT_BOOL *abstract) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_isReference(
        VARIANT_BOOL *reference) = 0;

};
#else
typedef struct ISchemaElementVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ISchemaElement* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ISchemaElement* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ISchemaElement* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        ISchemaElement* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        ISchemaElement* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        ISchemaElement* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        ISchemaElement* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** ISchemaItem methods ***/
    HRESULT (STDMETHODCALLTYPE *get_name)(
        ISchemaElement* This,
        BSTR *name);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        ISchemaElement* This,
        BSTR *namespaceURI);

    HRESULT (STDMETHODCALLTYPE *get_schema)(
        ISchemaElement* This,
        ISchema **schema);

    HRESULT (STDMETHODCALLTYPE *get_id)(
        ISchemaElement* This,
        BSTR *id);

    HRESULT (STDMETHODCALLTYPE *get_itemType)(
        ISchemaElement* This,
        SOMITEMTYPE *itemType);

    HRESULT (STDMETHODCALLTYPE *get_unhandledAttributes)(
        ISchemaElement* This,
        IVBSAXAttributes **attributes);

    HRESULT (STDMETHODCALLTYPE *writeAnnotation)(
        ISchemaElement* This,
        IUnknown *annotationSink,
        VARIANT_BOOL *isWritten);

    /*** ISchemaParticle methods ***/
    HRESULT (STDMETHODCALLTYPE *get_minOccurs)(
        ISchemaElement* This,
        VARIANT *minOccurs);

    HRESULT (STDMETHODCALLTYPE *get_maxOccurs)(
        ISchemaElement* This,
        VARIANT *maxOccurs);

    /*** ISchemaElement methods ***/
    HRESULT (STDMETHODCALLTYPE *get_type)(
        ISchemaElement* This,
        ISchemaType **type);

    HRESULT (STDMETHODCALLTYPE *get_scope)(
        ISchemaElement* This,
        ISchemaComplexType **scope);

    HRESULT (STDMETHODCALLTYPE *get_defaultValue)(
        ISchemaElement* This,
        BSTR *defaultValue);

    HRESULT (STDMETHODCALLTYPE *get_fixedValue)(
        ISchemaElement* This,
        BSTR *fixedValue);

    HRESULT (STDMETHODCALLTYPE *get_isNillable)(
        ISchemaElement* This,
        VARIANT_BOOL *nillable);

    HRESULT (STDMETHODCALLTYPE *get_identityConstraints)(
        ISchemaElement* This,
        ISchemaItemCollection **constraints);

    HRESULT (STDMETHODCALLTYPE *get_substitutionGroup)(
        ISchemaElement* This,
        ISchemaElement **element);

    HRESULT (STDMETHODCALLTYPE *get_substitutionGroupExclusions)(
        ISchemaElement* This,
        SCHEMADERIVATIONMETHOD *exclusions);

    HRESULT (STDMETHODCALLTYPE *get_disallowedSubstitutions)(
        ISchemaElement* This,
        SCHEMADERIVATIONMETHOD *disallowed);

    HRESULT (STDMETHODCALLTYPE *get_isAbstract)(
        ISchemaElement* This,
        VARIANT_BOOL *abstract);

    HRESULT (STDMETHODCALLTYPE *get_isReference)(
        ISchemaElement* This,
        VARIANT_BOOL *reference);

    END_INTERFACE
} ISchemaElementVtbl;
interface ISchemaElement {
    CONST_VTBL ISchemaElementVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISchemaElement_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ISchemaElement_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ISchemaElement_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define ISchemaElement_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define ISchemaElement_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ISchemaElement_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ISchemaElement_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** ISchemaItem methods ***/
#define ISchemaElement_get_name(This,name) (This)->lpVtbl->get_name(This,name)
#define ISchemaElement_get_namespaceURI(This,namespaceURI) (This)->lpVtbl->get_namespaceURI(This,namespaceURI)
#define ISchemaElement_get_schema(This,schema) (This)->lpVtbl->get_schema(This,schema)
#define ISchemaElement_get_id(This,id) (This)->lpVtbl->get_id(This,id)
#define ISchemaElement_get_itemType(This,itemType) (This)->lpVtbl->get_itemType(This,itemType)
#define ISchemaElement_get_unhandledAttributes(This,attributes) (This)->lpVtbl->get_unhandledAttributes(This,attributes)
#define ISchemaElement_writeAnnotation(This,annotationSink,isWritten) (This)->lpVtbl->writeAnnotation(This,annotationSink,isWritten)
/*** ISchemaParticle methods ***/
#define ISchemaElement_get_minOccurs(This,minOccurs) (This)->lpVtbl->get_minOccurs(This,minOccurs)
#define ISchemaElement_get_maxOccurs(This,maxOccurs) (This)->lpVtbl->get_maxOccurs(This,maxOccurs)
/*** ISchemaElement methods ***/
#define ISchemaElement_get_type(This,type) (This)->lpVtbl->get_type(This,type)
#define ISchemaElement_get_scope(This,scope) (This)->lpVtbl->get_scope(This,scope)
#define ISchemaElement_get_defaultValue(This,defaultValue) (This)->lpVtbl->get_defaultValue(This,defaultValue)
#define ISchemaElement_get_fixedValue(This,fixedValue) (This)->lpVtbl->get_fixedValue(This,fixedValue)
#define ISchemaElement_get_isNillable(This,nillable) (This)->lpVtbl->get_isNillable(This,nillable)
#define ISchemaElement_get_identityConstraints(This,constraints) (This)->lpVtbl->get_identityConstraints(This,constraints)
#define ISchemaElement_get_substitutionGroup(This,element) (This)->lpVtbl->get_substitutionGroup(This,element)
#define ISchemaElement_get_substitutionGroupExclusions(This,exclusions) (This)->lpVtbl->get_substitutionGroupExclusions(This,exclusions)
#define ISchemaElement_get_disallowedSubstitutions(This,disallowed) (This)->lpVtbl->get_disallowedSubstitutions(This,disallowed)
#define ISchemaElement_get_isAbstract(This,abstract) (This)->lpVtbl->get_isAbstract(This,abstract)
#define ISchemaElement_get_isReference(This,reference) (This)->lpVtbl->get_isReference(This,reference)
#endif

#endif

HRESULT STDMETHODCALLTYPE ISchemaElement_get_type_Proxy(
    ISchemaElement* This,
    ISchemaType **type);
void __RPC_STUB ISchemaElement_get_type_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaElement_get_scope_Proxy(
    ISchemaElement* This,
    ISchemaComplexType **scope);
void __RPC_STUB ISchemaElement_get_scope_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaElement_get_defaultValue_Proxy(
    ISchemaElement* This,
    BSTR *defaultValue);
void __RPC_STUB ISchemaElement_get_defaultValue_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaElement_get_fixedValue_Proxy(
    ISchemaElement* This,
    BSTR *fixedValue);
void __RPC_STUB ISchemaElement_get_fixedValue_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaElement_get_isNillable_Proxy(
    ISchemaElement* This,
    VARIANT_BOOL *nillable);
void __RPC_STUB ISchemaElement_get_isNillable_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaElement_get_identityConstraints_Proxy(
    ISchemaElement* This,
    ISchemaItemCollection **constraints);
void __RPC_STUB ISchemaElement_get_identityConstraints_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaElement_get_substitutionGroup_Proxy(
    ISchemaElement* This,
    ISchemaElement **element);
void __RPC_STUB ISchemaElement_get_substitutionGroup_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaElement_get_substitutionGroupExclusions_Proxy(
    ISchemaElement* This,
    SCHEMADERIVATIONMETHOD *exclusions);
void __RPC_STUB ISchemaElement_get_substitutionGroupExclusions_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaElement_get_disallowedSubstitutions_Proxy(
    ISchemaElement* This,
    SCHEMADERIVATIONMETHOD *disallowed);
void __RPC_STUB ISchemaElement_get_disallowedSubstitutions_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaElement_get_isAbstract_Proxy(
    ISchemaElement* This,
    VARIANT_BOOL *abstract);
void __RPC_STUB ISchemaElement_get_isAbstract_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaElement_get_isReference_Proxy(
    ISchemaElement* This,
    VARIANT_BOOL *reference);
void __RPC_STUB ISchemaElement_get_isReference_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ISchemaElement_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ISchemaType interface
 */
#ifndef __ISchemaType_INTERFACE_DEFINED__
#define __ISchemaType_INTERFACE_DEFINED__

DEFINE_GUID(IID_ISchemaType, 0x50ea08b8, 0xdd1b, 0x4664, 0x9a,0x50, 0xc2,0xf4,0x0f,0x4b,0xd7,0x9a);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface ISchemaType : public ISchemaItem
{
    virtual HRESULT STDMETHODCALLTYPE get_baseTypes(
        ISchemaItemCollection **baseTypes) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_final(
        SCHEMADERIVATIONMETHOD *final) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_variety(
        SCHEMATYPEVARIETY *variety) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_derivedBy(
        SCHEMADERIVATIONMETHOD *derivedBy) = 0;

    virtual HRESULT STDMETHODCALLTYPE isValid(
        BSTR data,
        VARIANT_BOOL *valid) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_minExclusive(
        BSTR *minExclusive) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_minInclusive(
        BSTR *minInclusive) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_maxExclusive(
        BSTR *maxExclusive) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_maxInclusive(
        BSTR *maxInclusive) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_totalDigits(
        VARIANT *totalDigits) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_fractionDigits(
        VARIANT *fractionDigits) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_length(
        VARIANT *length) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_minLength(
        VARIANT *minLength) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_maxLength(
        VARIANT *maxLength) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_enumeration(
        ISchemaStringCollection **enumeration) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_whitespace(
        SCHEMAWHITESPACE *whitespace) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_patterns(
        ISchemaStringCollection **patterns) = 0;

};
#else
typedef struct ISchemaTypeVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ISchemaType* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ISchemaType* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ISchemaType* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        ISchemaType* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        ISchemaType* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        ISchemaType* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        ISchemaType* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** ISchemaItem methods ***/
    HRESULT (STDMETHODCALLTYPE *get_name)(
        ISchemaType* This,
        BSTR *name);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        ISchemaType* This,
        BSTR *namespaceURI);

    HRESULT (STDMETHODCALLTYPE *get_schema)(
        ISchemaType* This,
        ISchema **schema);

    HRESULT (STDMETHODCALLTYPE *get_id)(
        ISchemaType* This,
        BSTR *id);

    HRESULT (STDMETHODCALLTYPE *get_itemType)(
        ISchemaType* This,
        SOMITEMTYPE *itemType);

    HRESULT (STDMETHODCALLTYPE *get_unhandledAttributes)(
        ISchemaType* This,
        IVBSAXAttributes **attributes);

    HRESULT (STDMETHODCALLTYPE *writeAnnotation)(
        ISchemaType* This,
        IUnknown *annotationSink,
        VARIANT_BOOL *isWritten);

    /*** ISchemaType methods ***/
    HRESULT (STDMETHODCALLTYPE *get_baseTypes)(
        ISchemaType* This,
        ISchemaItemCollection **baseTypes);

    HRESULT (STDMETHODCALLTYPE *get_final)(
        ISchemaType* This,
        SCHEMADERIVATIONMETHOD *final);

    HRESULT (STDMETHODCALLTYPE *get_variety)(
        ISchemaType* This,
        SCHEMATYPEVARIETY *variety);

    HRESULT (STDMETHODCALLTYPE *get_derivedBy)(
        ISchemaType* This,
        SCHEMADERIVATIONMETHOD *derivedBy);

    HRESULT (STDMETHODCALLTYPE *isValid)(
        ISchemaType* This,
        BSTR data,
        VARIANT_BOOL *valid);

    HRESULT (STDMETHODCALLTYPE *get_minExclusive)(
        ISchemaType* This,
        BSTR *minExclusive);

    HRESULT (STDMETHODCALLTYPE *get_minInclusive)(
        ISchemaType* This,
        BSTR *minInclusive);

    HRESULT (STDMETHODCALLTYPE *get_maxExclusive)(
        ISchemaType* This,
        BSTR *maxExclusive);

    HRESULT (STDMETHODCALLTYPE *get_maxInclusive)(
        ISchemaType* This,
        BSTR *maxInclusive);

    HRESULT (STDMETHODCALLTYPE *get_totalDigits)(
        ISchemaType* This,
        VARIANT *totalDigits);

    HRESULT (STDMETHODCALLTYPE *get_fractionDigits)(
        ISchemaType* This,
        VARIANT *fractionDigits);

    HRESULT (STDMETHODCALLTYPE *get_length)(
        ISchemaType* This,
        VARIANT *length);

    HRESULT (STDMETHODCALLTYPE *get_minLength)(
        ISchemaType* This,
        VARIANT *minLength);

    HRESULT (STDMETHODCALLTYPE *get_maxLength)(
        ISchemaType* This,
        VARIANT *maxLength);

    HRESULT (STDMETHODCALLTYPE *get_enumeration)(
        ISchemaType* This,
        ISchemaStringCollection **enumeration);

    HRESULT (STDMETHODCALLTYPE *get_whitespace)(
        ISchemaType* This,
        SCHEMAWHITESPACE *whitespace);

    HRESULT (STDMETHODCALLTYPE *get_patterns)(
        ISchemaType* This,
        ISchemaStringCollection **patterns);

    END_INTERFACE
} ISchemaTypeVtbl;
interface ISchemaType {
    CONST_VTBL ISchemaTypeVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISchemaType_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ISchemaType_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ISchemaType_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define ISchemaType_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define ISchemaType_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ISchemaType_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ISchemaType_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** ISchemaItem methods ***/
#define ISchemaType_get_name(This,name) (This)->lpVtbl->get_name(This,name)
#define ISchemaType_get_namespaceURI(This,namespaceURI) (This)->lpVtbl->get_namespaceURI(This,namespaceURI)
#define ISchemaType_get_schema(This,schema) (This)->lpVtbl->get_schema(This,schema)
#define ISchemaType_get_id(This,id) (This)->lpVtbl->get_id(This,id)
#define ISchemaType_get_itemType(This,itemType) (This)->lpVtbl->get_itemType(This,itemType)
#define ISchemaType_get_unhandledAttributes(This,attributes) (This)->lpVtbl->get_unhandledAttributes(This,attributes)
#define ISchemaType_writeAnnotation(This,annotationSink,isWritten) (This)->lpVtbl->writeAnnotation(This,annotationSink,isWritten)
/*** ISchemaType methods ***/
#define ISchemaType_get_baseTypes(This,baseTypes) (This)->lpVtbl->get_baseTypes(This,baseTypes)
#define ISchemaType_get_final(This,final) (This)->lpVtbl->get_final(This,final)
#define ISchemaType_get_variety(This,variety) (This)->lpVtbl->get_variety(This,variety)
#define ISchemaType_get_derivedBy(This,derivedBy) (This)->lpVtbl->get_derivedBy(This,derivedBy)
#define ISchemaType_isValid(This,data,valid) (This)->lpVtbl->isValid(This,data,valid)
#define ISchemaType_get_minExclusive(This,minExclusive) (This)->lpVtbl->get_minExclusive(This,minExclusive)
#define ISchemaType_get_minInclusive(This,minInclusive) (This)->lpVtbl->get_minInclusive(This,minInclusive)
#define ISchemaType_get_maxExclusive(This,maxExclusive) (This)->lpVtbl->get_maxExclusive(This,maxExclusive)
#define ISchemaType_get_maxInclusive(This,maxInclusive) (This)->lpVtbl->get_maxInclusive(This,maxInclusive)
#define ISchemaType_get_totalDigits(This,totalDigits) (This)->lpVtbl->get_totalDigits(This,totalDigits)
#define ISchemaType_get_fractionDigits(This,fractionDigits) (This)->lpVtbl->get_fractionDigits(This,fractionDigits)
#define ISchemaType_get_length(This,length) (This)->lpVtbl->get_length(This,length)
#define ISchemaType_get_minLength(This,minLength) (This)->lpVtbl->get_minLength(This,minLength)
#define ISchemaType_get_maxLength(This,maxLength) (This)->lpVtbl->get_maxLength(This,maxLength)
#define ISchemaType_get_enumeration(This,enumeration) (This)->lpVtbl->get_enumeration(This,enumeration)
#define ISchemaType_get_whitespace(This,whitespace) (This)->lpVtbl->get_whitespace(This,whitespace)
#define ISchemaType_get_patterns(This,patterns) (This)->lpVtbl->get_patterns(This,patterns)
#endif

#endif

HRESULT STDMETHODCALLTYPE ISchemaType_get_baseTypes_Proxy(
    ISchemaType* This,
    ISchemaItemCollection **baseTypes);
void __RPC_STUB ISchemaType_get_baseTypes_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaType_get_final_Proxy(
    ISchemaType* This,
    SCHEMADERIVATIONMETHOD *final);
void __RPC_STUB ISchemaType_get_final_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaType_get_variety_Proxy(
    ISchemaType* This,
    SCHEMATYPEVARIETY *variety);
void __RPC_STUB ISchemaType_get_variety_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaType_get_derivedBy_Proxy(
    ISchemaType* This,
    SCHEMADERIVATIONMETHOD *derivedBy);
void __RPC_STUB ISchemaType_get_derivedBy_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaType_isValid_Proxy(
    ISchemaType* This,
    BSTR data,
    VARIANT_BOOL *valid);
void __RPC_STUB ISchemaType_isValid_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaType_get_minExclusive_Proxy(
    ISchemaType* This,
    BSTR *minExclusive);
void __RPC_STUB ISchemaType_get_minExclusive_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaType_get_minInclusive_Proxy(
    ISchemaType* This,
    BSTR *minInclusive);
void __RPC_STUB ISchemaType_get_minInclusive_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaType_get_maxExclusive_Proxy(
    ISchemaType* This,
    BSTR *maxExclusive);
void __RPC_STUB ISchemaType_get_maxExclusive_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaType_get_maxInclusive_Proxy(
    ISchemaType* This,
    BSTR *maxInclusive);
void __RPC_STUB ISchemaType_get_maxInclusive_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaType_get_totalDigits_Proxy(
    ISchemaType* This,
    VARIANT *totalDigits);
void __RPC_STUB ISchemaType_get_totalDigits_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaType_get_fractionDigits_Proxy(
    ISchemaType* This,
    VARIANT *fractionDigits);
void __RPC_STUB ISchemaType_get_fractionDigits_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaType_get_length_Proxy(
    ISchemaType* This,
    VARIANT *length);
void __RPC_STUB ISchemaType_get_length_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaType_get_minLength_Proxy(
    ISchemaType* This,
    VARIANT *minLength);
void __RPC_STUB ISchemaType_get_minLength_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaType_get_maxLength_Proxy(
    ISchemaType* This,
    VARIANT *maxLength);
void __RPC_STUB ISchemaType_get_maxLength_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaType_get_enumeration_Proxy(
    ISchemaType* This,
    ISchemaStringCollection **enumeration);
void __RPC_STUB ISchemaType_get_enumeration_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaType_get_whitespace_Proxy(
    ISchemaType* This,
    SCHEMAWHITESPACE *whitespace);
void __RPC_STUB ISchemaType_get_whitespace_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaType_get_patterns_Proxy(
    ISchemaType* This,
    ISchemaStringCollection **patterns);
void __RPC_STUB ISchemaType_get_patterns_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ISchemaType_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ISchemaComplexType interface
 */
#ifndef __ISchemaComplexType_INTERFACE_DEFINED__
#define __ISchemaComplexType_INTERFACE_DEFINED__

DEFINE_GUID(IID_ISchemaComplexType, 0x50ea08b9, 0xdd1b, 0x4664, 0x9a,0x50, 0xc2,0xf4,0x0f,0x4b,0xd7,0x9a);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface ISchemaComplexType : public ISchemaType
{
    virtual HRESULT STDMETHODCALLTYPE get_isAbstract(
        VARIANT_BOOL *abstract) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_anyAttribute(
        ISchemaAny **anyAttribute) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_attributes(
        ISchemaItemCollection **attributes) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_contentType(
        SCHEMACONTENTTYPE *contentType) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_contentModel(
        ISchemaModelGroup **contentModel) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_prohibitedSubstitutions(
        SCHEMADERIVATIONMETHOD *prohibited) = 0;

};
#else
typedef struct ISchemaComplexTypeVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ISchemaComplexType* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ISchemaComplexType* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ISchemaComplexType* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        ISchemaComplexType* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        ISchemaComplexType* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        ISchemaComplexType* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        ISchemaComplexType* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** ISchemaItem methods ***/
    HRESULT (STDMETHODCALLTYPE *get_name)(
        ISchemaComplexType* This,
        BSTR *name);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        ISchemaComplexType* This,
        BSTR *namespaceURI);

    HRESULT (STDMETHODCALLTYPE *get_schema)(
        ISchemaComplexType* This,
        ISchema **schema);

    HRESULT (STDMETHODCALLTYPE *get_id)(
        ISchemaComplexType* This,
        BSTR *id);

    HRESULT (STDMETHODCALLTYPE *get_itemType)(
        ISchemaComplexType* This,
        SOMITEMTYPE *itemType);

    HRESULT (STDMETHODCALLTYPE *get_unhandledAttributes)(
        ISchemaComplexType* This,
        IVBSAXAttributes **attributes);

    HRESULT (STDMETHODCALLTYPE *writeAnnotation)(
        ISchemaComplexType* This,
        IUnknown *annotationSink,
        VARIANT_BOOL *isWritten);

    /*** ISchemaType methods ***/
    HRESULT (STDMETHODCALLTYPE *get_baseTypes)(
        ISchemaComplexType* This,
        ISchemaItemCollection **baseTypes);

    HRESULT (STDMETHODCALLTYPE *get_final)(
        ISchemaComplexType* This,
        SCHEMADERIVATIONMETHOD *final);

    HRESULT (STDMETHODCALLTYPE *get_variety)(
        ISchemaComplexType* This,
        SCHEMATYPEVARIETY *variety);

    HRESULT (STDMETHODCALLTYPE *get_derivedBy)(
        ISchemaComplexType* This,
        SCHEMADERIVATIONMETHOD *derivedBy);

    HRESULT (STDMETHODCALLTYPE *isValid)(
        ISchemaComplexType* This,
        BSTR data,
        VARIANT_BOOL *valid);

    HRESULT (STDMETHODCALLTYPE *get_minExclusive)(
        ISchemaComplexType* This,
        BSTR *minExclusive);

    HRESULT (STDMETHODCALLTYPE *get_minInclusive)(
        ISchemaComplexType* This,
        BSTR *minInclusive);

    HRESULT (STDMETHODCALLTYPE *get_maxExclusive)(
        ISchemaComplexType* This,
        BSTR *maxExclusive);

    HRESULT (STDMETHODCALLTYPE *get_maxInclusive)(
        ISchemaComplexType* This,
        BSTR *maxInclusive);

    HRESULT (STDMETHODCALLTYPE *get_totalDigits)(
        ISchemaComplexType* This,
        VARIANT *totalDigits);

    HRESULT (STDMETHODCALLTYPE *get_fractionDigits)(
        ISchemaComplexType* This,
        VARIANT *fractionDigits);

    HRESULT (STDMETHODCALLTYPE *get_length)(
        ISchemaComplexType* This,
        VARIANT *length);

    HRESULT (STDMETHODCALLTYPE *get_minLength)(
        ISchemaComplexType* This,
        VARIANT *minLength);

    HRESULT (STDMETHODCALLTYPE *get_maxLength)(
        ISchemaComplexType* This,
        VARIANT *maxLength);

    HRESULT (STDMETHODCALLTYPE *get_enumeration)(
        ISchemaComplexType* This,
        ISchemaStringCollection **enumeration);

    HRESULT (STDMETHODCALLTYPE *get_whitespace)(
        ISchemaComplexType* This,
        SCHEMAWHITESPACE *whitespace);

    HRESULT (STDMETHODCALLTYPE *get_patterns)(
        ISchemaComplexType* This,
        ISchemaStringCollection **patterns);

    /*** ISchemaComplexType methods ***/
    HRESULT (STDMETHODCALLTYPE *get_isAbstract)(
        ISchemaComplexType* This,
        VARIANT_BOOL *abstract);

    HRESULT (STDMETHODCALLTYPE *get_anyAttribute)(
        ISchemaComplexType* This,
        ISchemaAny **anyAttribute);

    HRESULT (STDMETHODCALLTYPE *get_attributes)(
        ISchemaComplexType* This,
        ISchemaItemCollection **attributes);

    HRESULT (STDMETHODCALLTYPE *get_contentType)(
        ISchemaComplexType* This,
        SCHEMACONTENTTYPE *contentType);

    HRESULT (STDMETHODCALLTYPE *get_contentModel)(
        ISchemaComplexType* This,
        ISchemaModelGroup **contentModel);

    HRESULT (STDMETHODCALLTYPE *get_prohibitedSubstitutions)(
        ISchemaComplexType* This,
        SCHEMADERIVATIONMETHOD *prohibited);

    END_INTERFACE
} ISchemaComplexTypeVtbl;
interface ISchemaComplexType {
    CONST_VTBL ISchemaComplexTypeVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISchemaComplexType_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ISchemaComplexType_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ISchemaComplexType_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define ISchemaComplexType_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define ISchemaComplexType_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ISchemaComplexType_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ISchemaComplexType_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** ISchemaItem methods ***/
#define ISchemaComplexType_get_name(This,name) (This)->lpVtbl->get_name(This,name)
#define ISchemaComplexType_get_namespaceURI(This,namespaceURI) (This)->lpVtbl->get_namespaceURI(This,namespaceURI)
#define ISchemaComplexType_get_schema(This,schema) (This)->lpVtbl->get_schema(This,schema)
#define ISchemaComplexType_get_id(This,id) (This)->lpVtbl->get_id(This,id)
#define ISchemaComplexType_get_itemType(This,itemType) (This)->lpVtbl->get_itemType(This,itemType)
#define ISchemaComplexType_get_unhandledAttributes(This,attributes) (This)->lpVtbl->get_unhandledAttributes(This,attributes)
#define ISchemaComplexType_writeAnnotation(This,annotationSink,isWritten) (This)->lpVtbl->writeAnnotation(This,annotationSink,isWritten)
/*** ISchemaType methods ***/
#define ISchemaComplexType_get_baseTypes(This,baseTypes) (This)->lpVtbl->get_baseTypes(This,baseTypes)
#define ISchemaComplexType_get_final(This,final) (This)->lpVtbl->get_final(This,final)
#define ISchemaComplexType_get_variety(This,variety) (This)->lpVtbl->get_variety(This,variety)
#define ISchemaComplexType_get_derivedBy(This,derivedBy) (This)->lpVtbl->get_derivedBy(This,derivedBy)
#define ISchemaComplexType_isValid(This,data,valid) (This)->lpVtbl->isValid(This,data,valid)
#define ISchemaComplexType_get_minExclusive(This,minExclusive) (This)->lpVtbl->get_minExclusive(This,minExclusive)
#define ISchemaComplexType_get_minInclusive(This,minInclusive) (This)->lpVtbl->get_minInclusive(This,minInclusive)
#define ISchemaComplexType_get_maxExclusive(This,maxExclusive) (This)->lpVtbl->get_maxExclusive(This,maxExclusive)
#define ISchemaComplexType_get_maxInclusive(This,maxInclusive) (This)->lpVtbl->get_maxInclusive(This,maxInclusive)
#define ISchemaComplexType_get_totalDigits(This,totalDigits) (This)->lpVtbl->get_totalDigits(This,totalDigits)
#define ISchemaComplexType_get_fractionDigits(This,fractionDigits) (This)->lpVtbl->get_fractionDigits(This,fractionDigits)
#define ISchemaComplexType_get_length(This,length) (This)->lpVtbl->get_length(This,length)
#define ISchemaComplexType_get_minLength(This,minLength) (This)->lpVtbl->get_minLength(This,minLength)
#define ISchemaComplexType_get_maxLength(This,maxLength) (This)->lpVtbl->get_maxLength(This,maxLength)
#define ISchemaComplexType_get_enumeration(This,enumeration) (This)->lpVtbl->get_enumeration(This,enumeration)
#define ISchemaComplexType_get_whitespace(This,whitespace) (This)->lpVtbl->get_whitespace(This,whitespace)
#define ISchemaComplexType_get_patterns(This,patterns) (This)->lpVtbl->get_patterns(This,patterns)
/*** ISchemaComplexType methods ***/
#define ISchemaComplexType_get_isAbstract(This,abstract) (This)->lpVtbl->get_isAbstract(This,abstract)
#define ISchemaComplexType_get_anyAttribute(This,anyAttribute) (This)->lpVtbl->get_anyAttribute(This,anyAttribute)
#define ISchemaComplexType_get_attributes(This,attributes) (This)->lpVtbl->get_attributes(This,attributes)
#define ISchemaComplexType_get_contentType(This,contentType) (This)->lpVtbl->get_contentType(This,contentType)
#define ISchemaComplexType_get_contentModel(This,contentModel) (This)->lpVtbl->get_contentModel(This,contentModel)
#define ISchemaComplexType_get_prohibitedSubstitutions(This,prohibited) (This)->lpVtbl->get_prohibitedSubstitutions(This,prohibited)
#endif

#endif

HRESULT STDMETHODCALLTYPE ISchemaComplexType_get_isAbstract_Proxy(
    ISchemaComplexType* This,
    VARIANT_BOOL *abstract);
void __RPC_STUB ISchemaComplexType_get_isAbstract_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaComplexType_get_anyAttribute_Proxy(
    ISchemaComplexType* This,
    ISchemaAny **anyAttribute);
void __RPC_STUB ISchemaComplexType_get_anyAttribute_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaComplexType_get_attributes_Proxy(
    ISchemaComplexType* This,
    ISchemaItemCollection **attributes);
void __RPC_STUB ISchemaComplexType_get_attributes_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaComplexType_get_contentType_Proxy(
    ISchemaComplexType* This,
    SCHEMACONTENTTYPE *contentType);
void __RPC_STUB ISchemaComplexType_get_contentType_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaComplexType_get_contentModel_Proxy(
    ISchemaComplexType* This,
    ISchemaModelGroup **contentModel);
void __RPC_STUB ISchemaComplexType_get_contentModel_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaComplexType_get_prohibitedSubstitutions_Proxy(
    ISchemaComplexType* This,
    SCHEMADERIVATIONMETHOD *prohibited);
void __RPC_STUB ISchemaComplexType_get_prohibitedSubstitutions_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ISchemaComplexType_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ISchemaAttributeGroup interface
 */
#ifndef __ISchemaAttributeGroup_INTERFACE_DEFINED__
#define __ISchemaAttributeGroup_INTERFACE_DEFINED__

DEFINE_GUID(IID_ISchemaAttributeGroup, 0x50ea08ba, 0xdd1b, 0x4664, 0x9a,0x50, 0xc2,0xf4,0x0f,0x4b,0xd7,0x9a);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface ISchemaAttributeGroup : public ISchemaItem
{
    virtual HRESULT STDMETHODCALLTYPE get_anyAttribute(
        ISchemaAny **anyAttribute) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_attributes(
        ISchemaItemCollection **attributes) = 0;

};
#else
typedef struct ISchemaAttributeGroupVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ISchemaAttributeGroup* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ISchemaAttributeGroup* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ISchemaAttributeGroup* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        ISchemaAttributeGroup* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        ISchemaAttributeGroup* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        ISchemaAttributeGroup* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        ISchemaAttributeGroup* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** ISchemaItem methods ***/
    HRESULT (STDMETHODCALLTYPE *get_name)(
        ISchemaAttributeGroup* This,
        BSTR *name);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        ISchemaAttributeGroup* This,
        BSTR *namespaceURI);

    HRESULT (STDMETHODCALLTYPE *get_schema)(
        ISchemaAttributeGroup* This,
        ISchema **schema);

    HRESULT (STDMETHODCALLTYPE *get_id)(
        ISchemaAttributeGroup* This,
        BSTR *id);

    HRESULT (STDMETHODCALLTYPE *get_itemType)(
        ISchemaAttributeGroup* This,
        SOMITEMTYPE *itemType);

    HRESULT (STDMETHODCALLTYPE *get_unhandledAttributes)(
        ISchemaAttributeGroup* This,
        IVBSAXAttributes **attributes);

    HRESULT (STDMETHODCALLTYPE *writeAnnotation)(
        ISchemaAttributeGroup* This,
        IUnknown *annotationSink,
        VARIANT_BOOL *isWritten);

    /*** ISchemaAttributeGroup methods ***/
    HRESULT (STDMETHODCALLTYPE *get_anyAttribute)(
        ISchemaAttributeGroup* This,
        ISchemaAny **anyAttribute);

    HRESULT (STDMETHODCALLTYPE *get_attributes)(
        ISchemaAttributeGroup* This,
        ISchemaItemCollection **attributes);

    END_INTERFACE
} ISchemaAttributeGroupVtbl;
interface ISchemaAttributeGroup {
    CONST_VTBL ISchemaAttributeGroupVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISchemaAttributeGroup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ISchemaAttributeGroup_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ISchemaAttributeGroup_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define ISchemaAttributeGroup_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define ISchemaAttributeGroup_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ISchemaAttributeGroup_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ISchemaAttributeGroup_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** ISchemaItem methods ***/
#define ISchemaAttributeGroup_get_name(This,name) (This)->lpVtbl->get_name(This,name)
#define ISchemaAttributeGroup_get_namespaceURI(This,namespaceURI) (This)->lpVtbl->get_namespaceURI(This,namespaceURI)
#define ISchemaAttributeGroup_get_schema(This,schema) (This)->lpVtbl->get_schema(This,schema)
#define ISchemaAttributeGroup_get_id(This,id) (This)->lpVtbl->get_id(This,id)
#define ISchemaAttributeGroup_get_itemType(This,itemType) (This)->lpVtbl->get_itemType(This,itemType)
#define ISchemaAttributeGroup_get_unhandledAttributes(This,attributes) (This)->lpVtbl->get_unhandledAttributes(This,attributes)
#define ISchemaAttributeGroup_writeAnnotation(This,annotationSink,isWritten) (This)->lpVtbl->writeAnnotation(This,annotationSink,isWritten)
/*** ISchemaAttributeGroup methods ***/
#define ISchemaAttributeGroup_get_anyAttribute(This,anyAttribute) (This)->lpVtbl->get_anyAttribute(This,anyAttribute)
#define ISchemaAttributeGroup_get_attributes(This,attributes) (This)->lpVtbl->get_attributes(This,attributes)
#endif

#endif

HRESULT STDMETHODCALLTYPE ISchemaAttributeGroup_get_anyAttribute_Proxy(
    ISchemaAttributeGroup* This,
    ISchemaAny **anyAttribute);
void __RPC_STUB ISchemaAttributeGroup_get_anyAttribute_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaAttributeGroup_get_attributes_Proxy(
    ISchemaAttributeGroup* This,
    ISchemaItemCollection **attributes);
void __RPC_STUB ISchemaAttributeGroup_get_attributes_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ISchemaAttributeGroup_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ISchemaModelGroup interface
 */
#ifndef __ISchemaModelGroup_INTERFACE_DEFINED__
#define __ISchemaModelGroup_INTERFACE_DEFINED__

DEFINE_GUID(IID_ISchemaModelGroup, 0x50ea08bb, 0xdd1b, 0x4664, 0x9a,0x50, 0xc2,0xf4,0x0f,0x4b,0xd7,0x9a);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface ISchemaModelGroup : public ISchemaParticle
{
    virtual HRESULT STDMETHODCALLTYPE get_particles(
        ISchemaItemCollection **particles) = 0;

};
#else
typedef struct ISchemaModelGroupVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ISchemaModelGroup* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ISchemaModelGroup* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ISchemaModelGroup* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        ISchemaModelGroup* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        ISchemaModelGroup* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        ISchemaModelGroup* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        ISchemaModelGroup* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** ISchemaItem methods ***/
    HRESULT (STDMETHODCALLTYPE *get_name)(
        ISchemaModelGroup* This,
        BSTR *name);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        ISchemaModelGroup* This,
        BSTR *namespaceURI);

    HRESULT (STDMETHODCALLTYPE *get_schema)(
        ISchemaModelGroup* This,
        ISchema **schema);

    HRESULT (STDMETHODCALLTYPE *get_id)(
        ISchemaModelGroup* This,
        BSTR *id);

    HRESULT (STDMETHODCALLTYPE *get_itemType)(
        ISchemaModelGroup* This,
        SOMITEMTYPE *itemType);

    HRESULT (STDMETHODCALLTYPE *get_unhandledAttributes)(
        ISchemaModelGroup* This,
        IVBSAXAttributes **attributes);

    HRESULT (STDMETHODCALLTYPE *writeAnnotation)(
        ISchemaModelGroup* This,
        IUnknown *annotationSink,
        VARIANT_BOOL *isWritten);

    /*** ISchemaParticle methods ***/
    HRESULT (STDMETHODCALLTYPE *get_minOccurs)(
        ISchemaModelGroup* This,
        VARIANT *minOccurs);

    HRESULT (STDMETHODCALLTYPE *get_maxOccurs)(
        ISchemaModelGroup* This,
        VARIANT *maxOccurs);

    /*** ISchemaModelGroup methods ***/
    HRESULT (STDMETHODCALLTYPE *get_particles)(
        ISchemaModelGroup* This,
        ISchemaItemCollection **particles);

    END_INTERFACE
} ISchemaModelGroupVtbl;
interface ISchemaModelGroup {
    CONST_VTBL ISchemaModelGroupVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISchemaModelGroup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ISchemaModelGroup_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ISchemaModelGroup_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define ISchemaModelGroup_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define ISchemaModelGroup_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ISchemaModelGroup_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ISchemaModelGroup_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** ISchemaItem methods ***/
#define ISchemaModelGroup_get_name(This,name) (This)->lpVtbl->get_name(This,name)
#define ISchemaModelGroup_get_namespaceURI(This,namespaceURI) (This)->lpVtbl->get_namespaceURI(This,namespaceURI)
#define ISchemaModelGroup_get_schema(This,schema) (This)->lpVtbl->get_schema(This,schema)
#define ISchemaModelGroup_get_id(This,id) (This)->lpVtbl->get_id(This,id)
#define ISchemaModelGroup_get_itemType(This,itemType) (This)->lpVtbl->get_itemType(This,itemType)
#define ISchemaModelGroup_get_unhandledAttributes(This,attributes) (This)->lpVtbl->get_unhandledAttributes(This,attributes)
#define ISchemaModelGroup_writeAnnotation(This,annotationSink,isWritten) (This)->lpVtbl->writeAnnotation(This,annotationSink,isWritten)
/*** ISchemaParticle methods ***/
#define ISchemaModelGroup_get_minOccurs(This,minOccurs) (This)->lpVtbl->get_minOccurs(This,minOccurs)
#define ISchemaModelGroup_get_maxOccurs(This,maxOccurs) (This)->lpVtbl->get_maxOccurs(This,maxOccurs)
/*** ISchemaModelGroup methods ***/
#define ISchemaModelGroup_get_particles(This,particles) (This)->lpVtbl->get_particles(This,particles)
#endif

#endif

HRESULT STDMETHODCALLTYPE ISchemaModelGroup_get_particles_Proxy(
    ISchemaModelGroup* This,
    ISchemaItemCollection **particles);
void __RPC_STUB ISchemaModelGroup_get_particles_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ISchemaModelGroup_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ISchemaAny interface
 */
#ifndef __ISchemaAny_INTERFACE_DEFINED__
#define __ISchemaAny_INTERFACE_DEFINED__

DEFINE_GUID(IID_ISchemaAny, 0x50ea08bc, 0xdd1b, 0x4664, 0x9a,0x50, 0xc2,0xf4,0x0f,0x4b,0xd7,0x9a);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface ISchemaAny : public ISchemaParticle
{
    virtual HRESULT STDMETHODCALLTYPE get_namespaces(
        ISchemaStringCollection **namespaces) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_processContents(
        SCHEMAPROCESSCONTENTS *processContents) = 0;

};
#else
typedef struct ISchemaAnyVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ISchemaAny* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ISchemaAny* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ISchemaAny* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        ISchemaAny* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        ISchemaAny* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        ISchemaAny* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        ISchemaAny* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** ISchemaItem methods ***/
    HRESULT (STDMETHODCALLTYPE *get_name)(
        ISchemaAny* This,
        BSTR *name);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        ISchemaAny* This,
        BSTR *namespaceURI);

    HRESULT (STDMETHODCALLTYPE *get_schema)(
        ISchemaAny* This,
        ISchema **schema);

    HRESULT (STDMETHODCALLTYPE *get_id)(
        ISchemaAny* This,
        BSTR *id);

    HRESULT (STDMETHODCALLTYPE *get_itemType)(
        ISchemaAny* This,
        SOMITEMTYPE *itemType);

    HRESULT (STDMETHODCALLTYPE *get_unhandledAttributes)(
        ISchemaAny* This,
        IVBSAXAttributes **attributes);

    HRESULT (STDMETHODCALLTYPE *writeAnnotation)(
        ISchemaAny* This,
        IUnknown *annotationSink,
        VARIANT_BOOL *isWritten);

    /*** ISchemaParticle methods ***/
    HRESULT (STDMETHODCALLTYPE *get_minOccurs)(
        ISchemaAny* This,
        VARIANT *minOccurs);

    HRESULT (STDMETHODCALLTYPE *get_maxOccurs)(
        ISchemaAny* This,
        VARIANT *maxOccurs);

    /*** ISchemaAny methods ***/
    HRESULT (STDMETHODCALLTYPE *get_namespaces)(
        ISchemaAny* This,
        ISchemaStringCollection **namespaces);

    HRESULT (STDMETHODCALLTYPE *get_processContents)(
        ISchemaAny* This,
        SCHEMAPROCESSCONTENTS *processContents);

    END_INTERFACE
} ISchemaAnyVtbl;
interface ISchemaAny {
    CONST_VTBL ISchemaAnyVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISchemaAny_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ISchemaAny_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ISchemaAny_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define ISchemaAny_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define ISchemaAny_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ISchemaAny_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ISchemaAny_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** ISchemaItem methods ***/
#define ISchemaAny_get_name(This,name) (This)->lpVtbl->get_name(This,name)
#define ISchemaAny_get_namespaceURI(This,namespaceURI) (This)->lpVtbl->get_namespaceURI(This,namespaceURI)
#define ISchemaAny_get_schema(This,schema) (This)->lpVtbl->get_schema(This,schema)
#define ISchemaAny_get_id(This,id) (This)->lpVtbl->get_id(This,id)
#define ISchemaAny_get_itemType(This,itemType) (This)->lpVtbl->get_itemType(This,itemType)
#define ISchemaAny_get_unhandledAttributes(This,attributes) (This)->lpVtbl->get_unhandledAttributes(This,attributes)
#define ISchemaAny_writeAnnotation(This,annotationSink,isWritten) (This)->lpVtbl->writeAnnotation(This,annotationSink,isWritten)
/*** ISchemaParticle methods ***/
#define ISchemaAny_get_minOccurs(This,minOccurs) (This)->lpVtbl->get_minOccurs(This,minOccurs)
#define ISchemaAny_get_maxOccurs(This,maxOccurs) (This)->lpVtbl->get_maxOccurs(This,maxOccurs)
/*** ISchemaAny methods ***/
#define ISchemaAny_get_namespaces(This,namespaces) (This)->lpVtbl->get_namespaces(This,namespaces)
#define ISchemaAny_get_processContents(This,processContents) (This)->lpVtbl->get_processContents(This,processContents)
#endif

#endif

HRESULT STDMETHODCALLTYPE ISchemaAny_get_namespaces_Proxy(
    ISchemaAny* This,
    ISchemaStringCollection **namespaces);
void __RPC_STUB ISchemaAny_get_namespaces_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaAny_get_processContents_Proxy(
    ISchemaAny* This,
    SCHEMAPROCESSCONTENTS *processContents);
void __RPC_STUB ISchemaAny_get_processContents_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ISchemaAny_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ISchemaIdentityConstraint interface
 */
#ifndef __ISchemaIdentityConstraint_INTERFACE_DEFINED__
#define __ISchemaIdentityConstraint_INTERFACE_DEFINED__

DEFINE_GUID(IID_ISchemaIdentityConstraint, 0x50ea08bd, 0xdd1b, 0x4664, 0x9a,0x50, 0xc2,0xf4,0x0f,0x4b,0xd7,0x9a);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface ISchemaIdentityConstraint : public ISchemaItem
{
    virtual HRESULT STDMETHODCALLTYPE get_selector(
        BSTR *selector) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_fields(
        ISchemaStringCollection **fields) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_referencedKey(
        ISchemaIdentityConstraint **key) = 0;

};
#else
typedef struct ISchemaIdentityConstraintVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ISchemaIdentityConstraint* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ISchemaIdentityConstraint* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ISchemaIdentityConstraint* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        ISchemaIdentityConstraint* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        ISchemaIdentityConstraint* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        ISchemaIdentityConstraint* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        ISchemaIdentityConstraint* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** ISchemaItem methods ***/
    HRESULT (STDMETHODCALLTYPE *get_name)(
        ISchemaIdentityConstraint* This,
        BSTR *name);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        ISchemaIdentityConstraint* This,
        BSTR *namespaceURI);

    HRESULT (STDMETHODCALLTYPE *get_schema)(
        ISchemaIdentityConstraint* This,
        ISchema **schema);

    HRESULT (STDMETHODCALLTYPE *get_id)(
        ISchemaIdentityConstraint* This,
        BSTR *id);

    HRESULT (STDMETHODCALLTYPE *get_itemType)(
        ISchemaIdentityConstraint* This,
        SOMITEMTYPE *itemType);

    HRESULT (STDMETHODCALLTYPE *get_unhandledAttributes)(
        ISchemaIdentityConstraint* This,
        IVBSAXAttributes **attributes);

    HRESULT (STDMETHODCALLTYPE *writeAnnotation)(
        ISchemaIdentityConstraint* This,
        IUnknown *annotationSink,
        VARIANT_BOOL *isWritten);

    /*** ISchemaIdentityConstraint methods ***/
    HRESULT (STDMETHODCALLTYPE *get_selector)(
        ISchemaIdentityConstraint* This,
        BSTR *selector);

    HRESULT (STDMETHODCALLTYPE *get_fields)(
        ISchemaIdentityConstraint* This,
        ISchemaStringCollection **fields);

    HRESULT (STDMETHODCALLTYPE *get_referencedKey)(
        ISchemaIdentityConstraint* This,
        ISchemaIdentityConstraint **key);

    END_INTERFACE
} ISchemaIdentityConstraintVtbl;
interface ISchemaIdentityConstraint {
    CONST_VTBL ISchemaIdentityConstraintVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISchemaIdentityConstraint_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ISchemaIdentityConstraint_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ISchemaIdentityConstraint_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define ISchemaIdentityConstraint_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define ISchemaIdentityConstraint_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ISchemaIdentityConstraint_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ISchemaIdentityConstraint_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** ISchemaItem methods ***/
#define ISchemaIdentityConstraint_get_name(This,name) (This)->lpVtbl->get_name(This,name)
#define ISchemaIdentityConstraint_get_namespaceURI(This,namespaceURI) (This)->lpVtbl->get_namespaceURI(This,namespaceURI)
#define ISchemaIdentityConstraint_get_schema(This,schema) (This)->lpVtbl->get_schema(This,schema)
#define ISchemaIdentityConstraint_get_id(This,id) (This)->lpVtbl->get_id(This,id)
#define ISchemaIdentityConstraint_get_itemType(This,itemType) (This)->lpVtbl->get_itemType(This,itemType)
#define ISchemaIdentityConstraint_get_unhandledAttributes(This,attributes) (This)->lpVtbl->get_unhandledAttributes(This,attributes)
#define ISchemaIdentityConstraint_writeAnnotation(This,annotationSink,isWritten) (This)->lpVtbl->writeAnnotation(This,annotationSink,isWritten)
/*** ISchemaIdentityConstraint methods ***/
#define ISchemaIdentityConstraint_get_selector(This,selector) (This)->lpVtbl->get_selector(This,selector)
#define ISchemaIdentityConstraint_get_fields(This,fields) (This)->lpVtbl->get_fields(This,fields)
#define ISchemaIdentityConstraint_get_referencedKey(This,key) (This)->lpVtbl->get_referencedKey(This,key)
#endif

#endif

HRESULT STDMETHODCALLTYPE ISchemaIdentityConstraint_get_selector_Proxy(
    ISchemaIdentityConstraint* This,
    BSTR *selector);
void __RPC_STUB ISchemaIdentityConstraint_get_selector_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaIdentityConstraint_get_fields_Proxy(
    ISchemaIdentityConstraint* This,
    ISchemaStringCollection **fields);
void __RPC_STUB ISchemaIdentityConstraint_get_fields_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaIdentityConstraint_get_referencedKey_Proxy(
    ISchemaIdentityConstraint* This,
    ISchemaIdentityConstraint **key);
void __RPC_STUB ISchemaIdentityConstraint_get_referencedKey_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ISchemaIdentityConstraint_INTERFACE_DEFINED__ */

/*****************************************************************************
 * ISchemaNotation interface
 */
#ifndef __ISchemaNotation_INTERFACE_DEFINED__
#define __ISchemaNotation_INTERFACE_DEFINED__

DEFINE_GUID(IID_ISchemaNotation, 0x50ea08be, 0xdd1b, 0x4664, 0x9a,0x50, 0xc2,0xf4,0x0f,0x4b,0xd7,0x9a);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface ISchemaNotation : public ISchemaItem
{
    virtual HRESULT STDMETHODCALLTYPE get_systemIdentifier(
        BSTR *uri) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_publicIdentifier(
        BSTR *uri) = 0;

};
#else
typedef struct ISchemaNotationVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        ISchemaNotation* This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        ISchemaNotation* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        ISchemaNotation* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        ISchemaNotation* This,
        UINT *pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        ISchemaNotation* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo **ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        ISchemaNotation* This,
        REFIID riid,
        LPOLESTR *rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID *rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        ISchemaNotation* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS *pDispParams,
        VARIANT *pVarResult,
        EXCEPINFO *pExcepInfo,
        UINT *puArgErr);

    /*** ISchemaItem methods ***/
    HRESULT (STDMETHODCALLTYPE *get_name)(
        ISchemaNotation* This,
        BSTR *name);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        ISchemaNotation* This,
        BSTR *namespaceURI);

    HRESULT (STDMETHODCALLTYPE *get_schema)(
        ISchemaNotation* This,
        ISchema **schema);

    HRESULT (STDMETHODCALLTYPE *get_id)(
        ISchemaNotation* This,
        BSTR *id);

    HRESULT (STDMETHODCALLTYPE *get_itemType)(
        ISchemaNotation* This,
        SOMITEMTYPE *itemType);

    HRESULT (STDMETHODCALLTYPE *get_unhandledAttributes)(
        ISchemaNotation* This,
        IVBSAXAttributes **attributes);

    HRESULT (STDMETHODCALLTYPE *writeAnnotation)(
        ISchemaNotation* This,
        IUnknown *annotationSink,
        VARIANT_BOOL *isWritten);

    /*** ISchemaNotation methods ***/
    HRESULT (STDMETHODCALLTYPE *get_systemIdentifier)(
        ISchemaNotation* This,
        BSTR *uri);

    HRESULT (STDMETHODCALLTYPE *get_publicIdentifier)(
        ISchemaNotation* This,
        BSTR *uri);

    END_INTERFACE
} ISchemaNotationVtbl;
interface ISchemaNotation {
    CONST_VTBL ISchemaNotationVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define ISchemaNotation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define ISchemaNotation_AddRef(This) (This)->lpVtbl->AddRef(This)
#define ISchemaNotation_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define ISchemaNotation_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define ISchemaNotation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define ISchemaNotation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define ISchemaNotation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** ISchemaItem methods ***/
#define ISchemaNotation_get_name(This,name) (This)->lpVtbl->get_name(This,name)
#define ISchemaNotation_get_namespaceURI(This,namespaceURI) (This)->lpVtbl->get_namespaceURI(This,namespaceURI)
#define ISchemaNotation_get_schema(This,schema) (This)->lpVtbl->get_schema(This,schema)
#define ISchemaNotation_get_id(This,id) (This)->lpVtbl->get_id(This,id)
#define ISchemaNotation_get_itemType(This,itemType) (This)->lpVtbl->get_itemType(This,itemType)
#define ISchemaNotation_get_unhandledAttributes(This,attributes) (This)->lpVtbl->get_unhandledAttributes(This,attributes)
#define ISchemaNotation_writeAnnotation(This,annotationSink,isWritten) (This)->lpVtbl->writeAnnotation(This,annotationSink,isWritten)
/*** ISchemaNotation methods ***/
#define ISchemaNotation_get_systemIdentifier(This,uri) (This)->lpVtbl->get_systemIdentifier(This,uri)
#define ISchemaNotation_get_publicIdentifier(This,uri) (This)->lpVtbl->get_publicIdentifier(This,uri)
#endif

#endif

HRESULT STDMETHODCALLTYPE ISchemaNotation_get_systemIdentifier_Proxy(
    ISchemaNotation* This,
    BSTR *uri);
void __RPC_STUB ISchemaNotation_get_systemIdentifier_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE ISchemaNotation_get_publicIdentifier_Proxy(
    ISchemaNotation* This,
    BSTR *uri);
void __RPC_STUB ISchemaNotation_get_publicIdentifier_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __ISchemaNotation_INTERFACE_DEFINED__ */

/*****************************************************************************
 * SAXXMLReader30 coclass
 */

DEFINE_GUID(CLSID_SAXXMLReader30, 0x3124c396, 0xfb13, 0x4836, 0xa6,0xad, 0x13,0x17,0xf1,0x71,0x36,0x88);

/*****************************************************************************
 * SAXXMLReader40 coclass
 */

DEFINE_GUID(CLSID_SAXXMLReader40, 0x7c6e29bc, 0x8b8b, 0x4c3d, 0x85,0x9e, 0xaf,0x6c,0xd1,0x58,0xbe,0x0f);

/*****************************************************************************
 * SAXXMLReader60 coclass
 */

DEFINE_GUID(CLSID_SAXXMLReader60, 0x88d96a0c, 0xf192, 0x11d4, 0xa6,0x5f, 0x00,0x40,0x96,0x32,0x51,0xe5);

/*****************************************************************************
 * SAXXMLReader coclass
 */

DEFINE_GUID(CLSID_SAXXMLReader, 0x079aa557, 0x4a18, 0x424a, 0x8e,0xee, 0xe3,0x9f,0x0a,0x8d,0x41,0xb9);

/*****************************************************************************
 * MXHTMLWriter coclass
 */

DEFINE_GUID(CLSID_MXHTMLWriter, 0xa4c23ec3, 0x6b70, 0x4466, 0x91,0x27, 0x55,0x00,0x77,0x23,0x99,0x78);

/*****************************************************************************
 * MXHTMLWriter30 coclass
 */

DEFINE_GUID(CLSID_MXHTMLWriter30, 0x853d1540, 0xc1a7, 0x4aa9, 0xa2,0x26, 0x4d,0x3b,0xd3,0x01,0x14,0x6d);

/*****************************************************************************
 * MXHTMLWriter40 coclass
 */

DEFINE_GUID(CLSID_MXHTMLWriter40, 0x88d969c9, 0xf192, 0x11d4, 0xa6,0x5f, 0x00,0x40,0x96,0x32,0x51,0xe5);

/*****************************************************************************
 * MXHTMLWriter60 coclass
 */

DEFINE_GUID(CLSID_MXHTMLWriter60, 0x88d96a10, 0xf192, 0x11d4, 0xa6,0x5f, 0x00,0x40,0x96,0x32,0x51,0xe5);

/*****************************************************************************
 * MXXMLWriter30 coclass
 */

DEFINE_GUID(CLSID_MXXMLWriter30, 0x3d813dfe, 0x6c91, 0x4a4e, 0x8f,0x41, 0x04,0x34,0x6a,0x84,0x1d,0x9c);

/*****************************************************************************
 * MXXMLWriter40 coclass
 */

DEFINE_GUID(CLSID_MXXMLWriter40, 0x88d969c8, 0xf192, 0x11d4, 0xa6,0x5f, 0x00,0x40,0x96,0x32,0x51,0xe5);

/*****************************************************************************
 * MXXMLWriter60 coclass
 */

DEFINE_GUID(CLSID_MXXMLWriter60, 0x88d96a0f, 0xf192, 0x11d4, 0xa6,0x5f, 0x00,0x40,0x96,0x32,0x51,0xe5);

/*****************************************************************************
 * MXXMLWriter coclass
 */

DEFINE_GUID(CLSID_MXXMLWriter, 0xfc220ad8, 0xa72a, 0x4ee8, 0x92,0x6e, 0x0b,0x7a,0xd1,0x52,0xa0,0x20);

/*****************************************************************************
 * MXNamespaceManager coclass
 */

DEFINE_GUID(CLSID_MXNamespaceManager, 0x88d969d5, 0xf192, 0x11d4, 0xa6,0x5f, 0x00,0x40,0x96,0x32,0x51,0xe5);

/*****************************************************************************
 * MXNamespaceManager40 coclass
 */

DEFINE_GUID(CLSID_MXNamespaceManager40, 0x88d969d6, 0xf192, 0x11d4, 0xa6,0x5f, 0x00,0x40,0x96,0x32,0x51,0xe5);

/*****************************************************************************
 * MXNamespaceManager60 coclass
 */

DEFINE_GUID(CLSID_MXNamespaceManager60, 0x88d96a11, 0xf192, 0x11d4, 0xa6,0x5f, 0x00,0x40,0x96,0x32,0x51,0xe5);

/*****************************************************************************
 * SAXAttributes30 coclass
 */

DEFINE_GUID(CLSID_SAXAttributes30, 0x3e784a01, 0xf3ae, 0x4dc0, 0x93,0x54, 0x95,0x26,0xb9,0x37,0x0e,0xba);

/*****************************************************************************
 * SAXAttributes40 coclass
 */

DEFINE_GUID(CLSID_SAXAttributes40, 0x88d969ca, 0xf192, 0x11d4, 0xa6,0x5f, 0x00,0x40,0x96,0x32,0x51,0xe5);

/*****************************************************************************
 * SAXAttributes60 coclass
 */

DEFINE_GUID(CLSID_SAXAttributes60, 0x88d96a0e, 0xf192, 0x11d4, 0xa6,0x5f, 0x00,0x40,0x96,0x32,0x51,0xe5);

/*****************************************************************************
 * SAXAttributes coclass
 */

DEFINE_GUID(CLSID_SAXAttributes, 0x4dd441ad, 0x526d, 0x4a77, 0x9f,0x1b, 0x98,0x41,0xed,0x80,0x2f,0xb0);

#define E_XML_NOTWF              0xC00CE223
#define E_XML_NODTD              0xC00CE224
#define E_XML_INVALID            0xC00CE225
#define E_XML_BUFFERTOOSMALL     0xC00CE226
/* Begin additional prototypes for all interfaces */

ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);

/* End additional prototypes */

#ifdef __cplusplus
}
#endif

#endif /* __WIDL_MSXML2_H */
