/*** Autogenerated by WIDL 1.4.1 from msxml.idl - Do not edit ***/

#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif

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

#ifndef COM_NO_WINDOWS_H
#include <windows.h>
#include <ole2.h>
#endif

#ifndef __msxml_h__
#define __msxml_h__

/* Forward declarations */

#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 __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 __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 __IXMLDOMParseError_FWD_DEFINED__
#define __IXMLDOMParseError_FWD_DEFINED__
typedef interface IXMLDOMParseError IXMLDOMParseError;
#endif

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

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

#ifndef __DOMFreeThreadedDocument_FWD_DEFINED__
#define __DOMFreeThreadedDocument_FWD_DEFINED__
typedef struct DOMFreeThreadedDocument DOMFreeThreadedDocument;
#endif /* defined __DOMFreeThreadedDocument_FWD_DEFINED__ */

#ifndef __IXMLHttpRequest_FWD_DEFINED__
#define __IXMLHttpRequest_FWD_DEFINED__
typedef interface IXMLHttpRequest IXMLHttpRequest;
#endif

#ifndef __XMLHTTPRequest_FWD_DEFINED__
#define __XMLHTTPRequest_FWD_DEFINED__
typedef struct XMLHTTPRequest XMLHTTPRequest;
#endif /* defined __XMLHTTPRequest_FWD_DEFINED__ */

#ifndef __IXMLDSOControl_FWD_DEFINED__
#define __IXMLDSOControl_FWD_DEFINED__
typedef interface IXMLDSOControl IXMLDSOControl;
#endif

#ifndef __XMLDSOControl_FWD_DEFINED__
#define __XMLDSOControl_FWD_DEFINED__
typedef struct XMLDSOControl XMLDSOControl;
#endif /* defined __XMLDSOControl_FWD_DEFINED__ */

#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 __IXMLDocument_FWD_DEFINED__
#define __IXMLDocument_FWD_DEFINED__
typedef interface IXMLDocument IXMLDocument;
#endif

#ifndef __IXMLElement2_FWD_DEFINED__
#define __IXMLElement2_FWD_DEFINED__
typedef interface IXMLElement2 IXMLElement2;
#endif

#ifndef __IXMLDocument2_FWD_DEFINED__
#define __IXMLDocument2_FWD_DEFINED__
typedef interface IXMLDocument2 IXMLDocument2;
#endif

#ifndef __IXMLAttribute_FWD_DEFINED__
#define __IXMLAttribute_FWD_DEFINED__
typedef interface IXMLAttribute IXMLAttribute;
#endif

#ifndef __IXMLError_FWD_DEFINED__
#define __IXMLError_FWD_DEFINED__
typedef interface IXMLError IXMLError;
#endif

#ifndef __IXMLElementNotificationSink_FWD_DEFINED__
#define __IXMLElementNotificationSink_FWD_DEFINED__
typedef interface IXMLElementNotificationSink IXMLElementNotificationSink;
#endif

#ifndef __XMLDocument_FWD_DEFINED__
#define __XMLDocument_FWD_DEFINED__
typedef struct XMLDocument XMLDocument;
#endif /* defined __XMLDocument_FWD_DEFINED__ */

/* Headers for imported files */

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

#ifdef __cplusplus
extern "C" {
#endif


DEFINE_GUID(LIBID_MSXML, 0xd63e0ce2, 0xa0a2, 0x11d0, 0x9c,0x02, 0x00,0xc0,0x4f,0xc9,0x9c,0x8e);

#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 __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 __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
/*****************************************************************************
 * 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)
MIDL_INTERFACE("2933bf80-7b36-11d2-b20e-00c04f983e60")
IXMLDOMNode : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_nodeName(
        BSTR *name) = 0;

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

    virtual HRESULT STDMETHODCALLTYPE put_nodeValue(
        VARIANT value) = 0;

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

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

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

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

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

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

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

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

    virtual HRESULT STDMETHODCALLTYPE insertBefore(
        IXMLDOMNode *newChild,
        VARIANT refChild,
        IXMLDOMNode **outNewChild) = 0;

    virtual HRESULT STDMETHODCALLTYPE replaceChild(
        IXMLDOMNode *newChild,
        IXMLDOMNode *oldChild,
        IXMLDOMNode **outOldChild) = 0;

    virtual HRESULT STDMETHODCALLTYPE removeChild(
        IXMLDOMNode *childNode,
        IXMLDOMNode **oldChild) = 0;

    virtual HRESULT STDMETHODCALLTYPE appendChild(
        IXMLDOMNode *newChild,
        IXMLDOMNode **outNewChild) = 0;

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

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

    virtual HRESULT STDMETHODCALLTYPE cloneNode(
        VARIANT_BOOL deep,
        IXMLDOMNode **cloneRoot) = 0;

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

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

    virtual HRESULT STDMETHODCALLTYPE put_text(
        BSTR text) = 0;

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

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

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

    virtual HRESULT STDMETHODCALLTYPE put_nodeTypedValue(
        VARIANT typedValue) = 0;

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

    virtual HRESULT STDMETHODCALLTYPE put_dataType(
        BSTR dataTypeName) = 0;

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

    virtual HRESULT STDMETHODCALLTYPE transformNode(
        IXMLDOMNode *styleSheet,
        BSTR *xmlString) = 0;

    virtual HRESULT STDMETHODCALLTYPE selectNodes(
        BSTR queryString,
        IXMLDOMNodeList **resultList) = 0;

    virtual HRESULT STDMETHODCALLTYPE selectSingleNode(
        BSTR queryString,
        IXMLDOMNode **resultNode) = 0;

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

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

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

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

    virtual HRESULT STDMETHODCALLTYPE transformNodeToObject(
        IXMLDOMNode *stylesheet,
        VARIANT outputObject) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IXMLDOMNode, 0x2933bf80, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60)
#endif
#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 *name);

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

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

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

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

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

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

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

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

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

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

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXMLDOMNode* This,
        IXMLDOMNode *newChild,
        VARIANT refChild,
        IXMLDOMNode **outNewChild);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXMLDOMNode* This,
        IXMLDOMNode *newChild,
        IXMLDOMNode *oldChild,
        IXMLDOMNode **outOldChild);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXMLDOMNode* This,
        IXMLDOMNode *childNode,
        IXMLDOMNode **oldChild);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXMLDOMNode* This,
        IXMLDOMNode *newChild,
        IXMLDOMNode **outNewChild);

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

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

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXMLDOMNode* This,
        VARIANT_BOOL deep,
        IXMLDOMNode **cloneRoot);

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

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

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

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

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

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

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

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

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

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

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXMLDOMNode* This,
        IXMLDOMNode *styleSheet,
        BSTR *xmlString);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXMLDOMNode* This,
        BSTR queryString,
        IXMLDOMNodeList **resultList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXMLDOMNode* This,
        BSTR queryString,
        IXMLDOMNode **resultNode);

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

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

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

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

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXMLDOMNode* This,
        IXMLDOMNode *stylesheet,
        VARIANT outputObject);

    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,name) (This)->lpVtbl->get_nodeName(This,name)
#define IXMLDOMNode_get_nodeValue(This,value) (This)->lpVtbl->get_nodeValue(This,value)
#define IXMLDOMNode_put_nodeValue(This,value) (This)->lpVtbl->put_nodeValue(This,value)
#define IXMLDOMNode_get_nodeType(This,type) (This)->lpVtbl->get_nodeType(This,type)
#define IXMLDOMNode_get_parentNode(This,parent) (This)->lpVtbl->get_parentNode(This,parent)
#define IXMLDOMNode_get_childNodes(This,childList) (This)->lpVtbl->get_childNodes(This,childList)
#define IXMLDOMNode_get_firstChild(This,firstChild) (This)->lpVtbl->get_firstChild(This,firstChild)
#define IXMLDOMNode_get_lastChild(This,lastChild) (This)->lpVtbl->get_lastChild(This,lastChild)
#define IXMLDOMNode_get_previousSibling(This,previousSibling) (This)->lpVtbl->get_previousSibling(This,previousSibling)
#define IXMLDOMNode_get_nextSibling(This,nextSibling) (This)->lpVtbl->get_nextSibling(This,nextSibling)
#define IXMLDOMNode_get_attributes(This,attributeMap) (This)->lpVtbl->get_attributes(This,attributeMap)
#define IXMLDOMNode_insertBefore(This,newChild,refChild,outNewChild) (This)->lpVtbl->insertBefore(This,newChild,refChild,outNewChild)
#define IXMLDOMNode_replaceChild(This,newChild,oldChild,outOldChild) (This)->lpVtbl->replaceChild(This,newChild,oldChild,outOldChild)
#define IXMLDOMNode_removeChild(This,childNode,oldChild) (This)->lpVtbl->removeChild(This,childNode,oldChild)
#define IXMLDOMNode_appendChild(This,newChild,outNewChild) (This)->lpVtbl->appendChild(This,newChild,outNewChild)
#define IXMLDOMNode_hasChildNodes(This,hasChild) (This)->lpVtbl->hasChildNodes(This,hasChild)
#define IXMLDOMNode_get_ownerDocument(This,DOMDocument) (This)->lpVtbl->get_ownerDocument(This,DOMDocument)
#define IXMLDOMNode_cloneNode(This,deep,cloneRoot) (This)->lpVtbl->cloneNode(This,deep,cloneRoot)
#define IXMLDOMNode_get_nodeTypeString(This,nodeType) (This)->lpVtbl->get_nodeTypeString(This,nodeType)
#define IXMLDOMNode_get_text(This,text) (This)->lpVtbl->get_text(This,text)
#define IXMLDOMNode_put_text(This,text) (This)->lpVtbl->put_text(This,text)
#define IXMLDOMNode_get_specified(This,isSpecified) (This)->lpVtbl->get_specified(This,isSpecified)
#define IXMLDOMNode_get_definition(This,definitionNode) (This)->lpVtbl->get_definition(This,definitionNode)
#define IXMLDOMNode_get_nodeTypedValue(This,typedValue) (This)->lpVtbl->get_nodeTypedValue(This,typedValue)
#define IXMLDOMNode_put_nodeTypedValue(This,typedValue) (This)->lpVtbl->put_nodeTypedValue(This,typedValue)
#define IXMLDOMNode_get_dataType(This,dataTypeName) (This)->lpVtbl->get_dataType(This,dataTypeName)
#define IXMLDOMNode_put_dataType(This,dataTypeName) (This)->lpVtbl->put_dataType(This,dataTypeName)
#define IXMLDOMNode_get_xml(This,xmlString) (This)->lpVtbl->get_xml(This,xmlString)
#define IXMLDOMNode_transformNode(This,styleSheet,xmlString) (This)->lpVtbl->transformNode(This,styleSheet,xmlString)
#define IXMLDOMNode_selectNodes(This,queryString,resultList) (This)->lpVtbl->selectNodes(This,queryString,resultList)
#define IXMLDOMNode_selectSingleNode(This,queryString,resultNode) (This)->lpVtbl->selectSingleNode(This,queryString,resultNode)
#define IXMLDOMNode_get_parsed(This,isParsed) (This)->lpVtbl->get_parsed(This,isParsed)
#define IXMLDOMNode_get_namespaceURI(This,namespaceURI) (This)->lpVtbl->get_namespaceURI(This,namespaceURI)
#define IXMLDOMNode_get_prefix(This,prefixString) (This)->lpVtbl->get_prefix(This,prefixString)
#define IXMLDOMNode_get_baseName(This,nameString) (This)->lpVtbl->get_baseName(This,nameString)
#define IXMLDOMNode_transformNodeToObject(This,stylesheet,outputObject) (This)->lpVtbl->transformNodeToObject(This,stylesheet,outputObject)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_nodeName_Proxy(
    IXMLDOMNode* This,
    BSTR *name);
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 *value);
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 value);
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 *type);
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 **childList);
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 **firstChild);
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 **lastChild);
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 **previousSibling);
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 **nextSibling);
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 *newChild,
    VARIANT refChild,
    IXMLDOMNode **outNewChild);
void __RPC_STUB IXMLDOMNode_insertBefore_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_replaceChild_Proxy(
    IXMLDOMNode* This,
    IXMLDOMNode *newChild,
    IXMLDOMNode *oldChild,
    IXMLDOMNode **outOldChild);
void __RPC_STUB IXMLDOMNode_replaceChild_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_removeChild_Proxy(
    IXMLDOMNode* This,
    IXMLDOMNode *childNode,
    IXMLDOMNode **oldChild);
void __RPC_STUB IXMLDOMNode_removeChild_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_appendChild_Proxy(
    IXMLDOMNode* This,
    IXMLDOMNode *newChild,
    IXMLDOMNode **outNewChild);
void __RPC_STUB IXMLDOMNode_appendChild_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_hasChildNodes_Proxy(
    IXMLDOMNode* This,
    VARIANT_BOOL *hasChild);
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 deep,
    IXMLDOMNode **cloneRoot);
void __RPC_STUB IXMLDOMNode_cloneNode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_get_nodeTypeString_Proxy(
    IXMLDOMNode* This,
    BSTR *nodeType);
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 *text);
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 text);
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 *isSpecified);
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 **definitionNode);
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 *typedValue);
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 typedValue);
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 *dataTypeName);
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 dataTypeName);
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 *xmlString);
void __RPC_STUB IXMLDOMNode_get_xml_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_transformNode_Proxy(
    IXMLDOMNode* This,
    IXMLDOMNode *styleSheet,
    BSTR *xmlString);
void __RPC_STUB IXMLDOMNode_transformNode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_selectNodes_Proxy(
    IXMLDOMNode* This,
    BSTR queryString,
    IXMLDOMNodeList **resultList);
void __RPC_STUB IXMLDOMNode_selectNodes_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_selectSingleNode_Proxy(
    IXMLDOMNode* This,
    BSTR queryString,
    IXMLDOMNode **resultNode);
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 *isParsed);
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 *namespaceURI);
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 *prefixString);
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 *nameString);
void __RPC_STUB IXMLDOMNode_get_baseName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNode_transformNodeToObject_Proxy(
    IXMLDOMNode* This,
    IXMLDOMNode *stylesheet,
    VARIANT outputObject);
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)
MIDL_INTERFACE("2933bf81-7b36-11d2-b20e-00c04f983e60")
IXMLDOMDocument : public IXMLDOMNode
{
    virtual HRESULT STDMETHODCALLTYPE get_doctype(
        IXMLDOMDocumentType **documentType) = 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 tagname,
        IXMLDOMElement **element) = 0;

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

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

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

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

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

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

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

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

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

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

    virtual HRESULT STDMETHODCALLTYPE load(
        VARIANT xmlSource,
        VARIANT_BOOL *isSuccessful) = 0;

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

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

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

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

    virtual HRESULT STDMETHODCALLTYPE put_async(
        VARIANT_BOOL isAsync) = 0;

    virtual HRESULT STDMETHODCALLTYPE abort(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE loadXML(
        BSTR bstrXML,
        VARIANT_BOOL *isSuccessful) = 0;

    virtual HRESULT STDMETHODCALLTYPE save(
        VARIANT destination) = 0;

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

    virtual HRESULT STDMETHODCALLTYPE put_validateOnParse(
        VARIANT_BOOL isValidating) = 0;

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

    virtual HRESULT STDMETHODCALLTYPE put_resolveExternals(
        VARIANT_BOOL isValidating) = 0;

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

    virtual HRESULT STDMETHODCALLTYPE put_preserveWhiteSpace(
        VARIANT_BOOL isPreserving) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_onreadystatechange(
        VARIANT readystatechangeSink) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_ondataavailable(
        VARIANT ondataavailableSink) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_ontransformnode(
        VARIANT ontransformnodeSink) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IXMLDOMDocument, 0x2933bf81, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60)
#endif
#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 *name);

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

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

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

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

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

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

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

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

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

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

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXMLDOMDocument* This,
        IXMLDOMNode *newChild,
        VARIANT refChild,
        IXMLDOMNode **outNewChild);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXMLDOMDocument* This,
        IXMLDOMNode *newChild,
        IXMLDOMNode *oldChild,
        IXMLDOMNode **outOldChild);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXMLDOMDocument* This,
        IXMLDOMNode *childNode,
        IXMLDOMNode **oldChild);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXMLDOMDocument* This,
        IXMLDOMNode *newChild,
        IXMLDOMNode **outNewChild);

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

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

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXMLDOMDocument* This,
        VARIANT_BOOL deep,
        IXMLDOMNode **cloneRoot);

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

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

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

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

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

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

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

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

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

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

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXMLDOMDocument* This,
        IXMLDOMNode *styleSheet,
        BSTR *xmlString);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXMLDOMDocument* This,
        BSTR queryString,
        IXMLDOMNodeList **resultList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXMLDOMDocument* This,
        BSTR queryString,
        IXMLDOMNode **resultNode);

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

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

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

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

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXMLDOMDocument* This,
        IXMLDOMNode *stylesheet,
        VARIANT outputObject);

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

    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 tagname,
        IXMLDOMElement **element);

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

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

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

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

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

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

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

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

    HRESULT (STDMETHODCALLTYPE *createNode)(
        IXMLDOMDocument* This,
        VARIANT Type,
        BSTR name,
        BSTR namespaceURI,
        IXMLDOMNode **node);

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

    HRESULT (STDMETHODCALLTYPE *load)(
        IXMLDOMDocument* This,
        VARIANT xmlSource,
        VARIANT_BOOL *isSuccessful);

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

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

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

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

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

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

    HRESULT (STDMETHODCALLTYPE *loadXML)(
        IXMLDOMDocument* This,
        BSTR bstrXML,
        VARIANT_BOOL *isSuccessful);

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

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

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

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

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

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

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

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

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

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

    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,name) (This)->lpVtbl->get_nodeName(This,name)
#define IXMLDOMDocument_get_nodeValue(This,value) (This)->lpVtbl->get_nodeValue(This,value)
#define IXMLDOMDocument_put_nodeValue(This,value) (This)->lpVtbl->put_nodeValue(This,value)
#define IXMLDOMDocument_get_nodeType(This,type) (This)->lpVtbl->get_nodeType(This,type)
#define IXMLDOMDocument_get_parentNode(This,parent) (This)->lpVtbl->get_parentNode(This,parent)
#define IXMLDOMDocument_get_childNodes(This,childList) (This)->lpVtbl->get_childNodes(This,childList)
#define IXMLDOMDocument_get_firstChild(This,firstChild) (This)->lpVtbl->get_firstChild(This,firstChild)
#define IXMLDOMDocument_get_lastChild(This,lastChild) (This)->lpVtbl->get_lastChild(This,lastChild)
#define IXMLDOMDocument_get_previousSibling(This,previousSibling) (This)->lpVtbl->get_previousSibling(This,previousSibling)
#define IXMLDOMDocument_get_nextSibling(This,nextSibling) (This)->lpVtbl->get_nextSibling(This,nextSibling)
#define IXMLDOMDocument_get_attributes(This,attributeMap) (This)->lpVtbl->get_attributes(This,attributeMap)
#define IXMLDOMDocument_insertBefore(This,newChild,refChild,outNewChild) (This)->lpVtbl->insertBefore(This,newChild,refChild,outNewChild)
#define IXMLDOMDocument_replaceChild(This,newChild,oldChild,outOldChild) (This)->lpVtbl->replaceChild(This,newChild,oldChild,outOldChild)
#define IXMLDOMDocument_removeChild(This,childNode,oldChild) (This)->lpVtbl->removeChild(This,childNode,oldChild)
#define IXMLDOMDocument_appendChild(This,newChild,outNewChild) (This)->lpVtbl->appendChild(This,newChild,outNewChild)
#define IXMLDOMDocument_hasChildNodes(This,hasChild) (This)->lpVtbl->hasChildNodes(This,hasChild)
#define IXMLDOMDocument_get_ownerDocument(This,DOMDocument) (This)->lpVtbl->get_ownerDocument(This,DOMDocument)
#define IXMLDOMDocument_cloneNode(This,deep,cloneRoot) (This)->lpVtbl->cloneNode(This,deep,cloneRoot)
#define IXMLDOMDocument_get_nodeTypeString(This,nodeType) (This)->lpVtbl->get_nodeTypeString(This,nodeType)
#define IXMLDOMDocument_get_text(This,text) (This)->lpVtbl->get_text(This,text)
#define IXMLDOMDocument_put_text(This,text) (This)->lpVtbl->put_text(This,text)
#define IXMLDOMDocument_get_specified(This,isSpecified) (This)->lpVtbl->get_specified(This,isSpecified)
#define IXMLDOMDocument_get_definition(This,definitionNode) (This)->lpVtbl->get_definition(This,definitionNode)
#define IXMLDOMDocument_get_nodeTypedValue(This,typedValue) (This)->lpVtbl->get_nodeTypedValue(This,typedValue)
#define IXMLDOMDocument_put_nodeTypedValue(This,typedValue) (This)->lpVtbl->put_nodeTypedValue(This,typedValue)
#define IXMLDOMDocument_get_dataType(This,dataTypeName) (This)->lpVtbl->get_dataType(This,dataTypeName)
#define IXMLDOMDocument_put_dataType(This,dataTypeName) (This)->lpVtbl->put_dataType(This,dataTypeName)
#define IXMLDOMDocument_get_xml(This,xmlString) (This)->lpVtbl->get_xml(This,xmlString)
#define IXMLDOMDocument_transformNode(This,styleSheet,xmlString) (This)->lpVtbl->transformNode(This,styleSheet,xmlString)
#define IXMLDOMDocument_selectNodes(This,queryString,resultList) (This)->lpVtbl->selectNodes(This,queryString,resultList)
#define IXMLDOMDocument_selectSingleNode(This,queryString,resultNode) (This)->lpVtbl->selectSingleNode(This,queryString,resultNode)
#define IXMLDOMDocument_get_parsed(This,isParsed) (This)->lpVtbl->get_parsed(This,isParsed)
#define IXMLDOMDocument_get_namespaceURI(This,namespaceURI) (This)->lpVtbl->get_namespaceURI(This,namespaceURI)
#define IXMLDOMDocument_get_prefix(This,prefixString) (This)->lpVtbl->get_prefix(This,prefixString)
#define IXMLDOMDocument_get_baseName(This,nameString) (This)->lpVtbl->get_baseName(This,nameString)
#define IXMLDOMDocument_transformNodeToObject(This,stylesheet,outputObject) (This)->lpVtbl->transformNodeToObject(This,stylesheet,outputObject)
/*** IXMLDOMDocument methods ***/
#define IXMLDOMDocument_get_doctype(This,documentType) (This)->lpVtbl->get_doctype(This,documentType)
#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,tagname,element) (This)->lpVtbl->createElement(This,tagname,element)
#define IXMLDOMDocument_createDocumentFragment(This,docFrag) (This)->lpVtbl->createDocumentFragment(This,docFrag)
#define IXMLDOMDocument_createTextNode(This,data,text) (This)->lpVtbl->createTextNode(This,data,text)
#define IXMLDOMDocument_createComment(This,data,comment) (This)->lpVtbl->createComment(This,data,comment)
#define IXMLDOMDocument_createCDATASection(This,data,cdata) (This)->lpVtbl->createCDATASection(This,data,cdata)
#define IXMLDOMDocument_createProcessingInstruction(This,target,data,pi) (This)->lpVtbl->createProcessingInstruction(This,target,data,pi)
#define IXMLDOMDocument_createAttribute(This,name,attribute) (This)->lpVtbl->createAttribute(This,name,attribute)
#define IXMLDOMDocument_createEntityReference(This,name,entityRef) (This)->lpVtbl->createEntityReference(This,name,entityRef)
#define IXMLDOMDocument_getElementsByTagName(This,tagName,resultList) (This)->lpVtbl->getElementsByTagName(This,tagName,resultList)
#define IXMLDOMDocument_createNode(This,Type,name,namespaceURI,node) (This)->lpVtbl->createNode(This,Type,name,namespaceURI,node)
#define IXMLDOMDocument_nodeFromID(This,idString,node) (This)->lpVtbl->nodeFromID(This,idString,node)
#define IXMLDOMDocument_load(This,xmlSource,isSuccessful) (This)->lpVtbl->load(This,xmlSource,isSuccessful)
#define IXMLDOMDocument_get_readyState(This,value) (This)->lpVtbl->get_readyState(This,value)
#define IXMLDOMDocument_get_parseError(This,errorObj) (This)->lpVtbl->get_parseError(This,errorObj)
#define IXMLDOMDocument_get_url(This,urlString) (This)->lpVtbl->get_url(This,urlString)
#define IXMLDOMDocument_get_async(This,isAsync) (This)->lpVtbl->get_async(This,isAsync)
#define IXMLDOMDocument_put_async(This,isAsync) (This)->lpVtbl->put_async(This,isAsync)
#define IXMLDOMDocument_abort(This) (This)->lpVtbl->abort(This)
#define IXMLDOMDocument_loadXML(This,bstrXML,isSuccessful) (This)->lpVtbl->loadXML(This,bstrXML,isSuccessful)
#define IXMLDOMDocument_save(This,destination) (This)->lpVtbl->save(This,destination)
#define IXMLDOMDocument_get_validateOnParse(This,isValidating) (This)->lpVtbl->get_validateOnParse(This,isValidating)
#define IXMLDOMDocument_put_validateOnParse(This,isValidating) (This)->lpVtbl->put_validateOnParse(This,isValidating)
#define IXMLDOMDocument_get_resolveExternals(This,isResolving) (This)->lpVtbl->get_resolveExternals(This,isResolving)
#define IXMLDOMDocument_put_resolveExternals(This,isValidating) (This)->lpVtbl->put_resolveExternals(This,isValidating)
#define IXMLDOMDocument_get_preserveWhiteSpace(This,isPreserving) (This)->lpVtbl->get_preserveWhiteSpace(This,isPreserving)
#define IXMLDOMDocument_put_preserveWhiteSpace(This,isPreserving) (This)->lpVtbl->put_preserveWhiteSpace(This,isPreserving)
#define IXMLDOMDocument_put_onreadystatechange(This,readystatechangeSink) (This)->lpVtbl->put_onreadystatechange(This,readystatechangeSink)
#define IXMLDOMDocument_put_ondataavailable(This,ondataavailableSink) (This)->lpVtbl->put_ondataavailable(This,ondataavailableSink)
#define IXMLDOMDocument_put_ontransformnode(This,ontransformnodeSink) (This)->lpVtbl->put_ontransformnode(This,ontransformnodeSink)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLDOMDocument_get_doctype_Proxy(
    IXMLDOMDocument* This,
    IXMLDOMDocumentType **documentType);
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 tagname,
    IXMLDOMElement **element);
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 data,
    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 data,
    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 data,
    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 name,
    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 name,
    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 tagName,
    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 Type,
    BSTR name,
    BSTR namespaceURI,
    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 idString,
    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 xmlSource,
    VARIANT_BOOL *isSuccessful);
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 **errorObj);
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 *urlString);
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 *isAsync);
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 isAsync);
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 bstrXML,
    VARIANT_BOOL *isSuccessful);
void __RPC_STUB IXMLDOMDocument_loadXML_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMDocument_save_Proxy(
    IXMLDOMDocument* This,
    VARIANT destination);
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 *isValidating);
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 isValidating);
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 *isResolving);
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 isValidating);
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 *isPreserving);
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 isPreserving);
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 readystatechangeSink);
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 ondataavailableSink);
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 ontransformnodeSink);
void __RPC_STUB IXMLDOMDocument_put_ontransformnode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMDocument_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)
MIDL_INTERFACE("2933bf82-7b36-11d2-b20e-00c04f983e60")
IXMLDOMNodeList : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_item(
        LONG index,
        IXMLDOMNode **listItem) = 0;

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

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

    virtual HRESULT STDMETHODCALLTYPE reset(
        ) = 0;

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

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IXMLDOMNodeList, 0x2933bf82, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60)
#endif
#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 index,
        IXMLDOMNode **listItem);

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

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

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

    HRESULT (STDMETHODCALLTYPE *_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,index,listItem) (This)->lpVtbl->get_item(This,index,listItem)
#define IXMLDOMNodeList_get_length(This,listLength) (This)->lpVtbl->get_length(This,listLength)
#define IXMLDOMNodeList_nextNode(This,nextItem) (This)->lpVtbl->nextNode(This,nextItem)
#define IXMLDOMNodeList_reset(This) (This)->lpVtbl->reset(This)
#define IXMLDOMNodeList__newEnum(This,ppUnk) (This)->lpVtbl->_newEnum(This,ppUnk)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLDOMNodeList_get_item_Proxy(
    IXMLDOMNodeList* This,
    LONG index,
    IXMLDOMNode **listItem);
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 *listLength);
void __RPC_STUB IXMLDOMNodeList_get_length_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNodeList_nextNode_Proxy(
    IXMLDOMNodeList* This,
    IXMLDOMNode **nextItem);
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__newEnum_Proxy(
    IXMLDOMNodeList* This,
    IUnknown **ppUnk);
void __RPC_STUB IXMLDOMNodeList__newEnum_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMNodeList_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)
MIDL_INTERFACE("2933bf83-7b36-11d2-b20e-00c04f983e60")
IXMLDOMNamedNodeMap : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE getNamedItem(
        BSTR name,
        IXMLDOMNode **namedItem) = 0;

    virtual HRESULT STDMETHODCALLTYPE setNamedItem(
        IXMLDOMNode *newItem,
        IXMLDOMNode **namedItem) = 0;

    virtual HRESULT STDMETHODCALLTYPE removeNamedItem(
        BSTR name,
        IXMLDOMNode **namedItem) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_item(
        LONG index,
        IXMLDOMNode **listItem) = 0;

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

    virtual HRESULT STDMETHODCALLTYPE getQualifiedItem(
        BSTR baseName,
        BSTR namespaceURI,
        IXMLDOMNode **qualifiedItem) = 0;

    virtual HRESULT STDMETHODCALLTYPE removeQualifiedItem(
        BSTR baseName,
        BSTR namespaceURI,
        IXMLDOMNode **qualifiedItem) = 0;

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

    virtual HRESULT STDMETHODCALLTYPE reset(
        ) = 0;

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

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IXMLDOMNamedNodeMap, 0x2933bf83, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60)
#endif
#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 name,
        IXMLDOMNode **namedItem);

    HRESULT (STDMETHODCALLTYPE *setNamedItem)(
        IXMLDOMNamedNodeMap* This,
        IXMLDOMNode *newItem,
        IXMLDOMNode **namedItem);

    HRESULT (STDMETHODCALLTYPE *removeNamedItem)(
        IXMLDOMNamedNodeMap* This,
        BSTR name,
        IXMLDOMNode **namedItem);

    HRESULT (STDMETHODCALLTYPE *get_item)(
        IXMLDOMNamedNodeMap* This,
        LONG index,
        IXMLDOMNode **listItem);

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

    HRESULT (STDMETHODCALLTYPE *getQualifiedItem)(
        IXMLDOMNamedNodeMap* This,
        BSTR baseName,
        BSTR namespaceURI,
        IXMLDOMNode **qualifiedItem);

    HRESULT (STDMETHODCALLTYPE *removeQualifiedItem)(
        IXMLDOMNamedNodeMap* This,
        BSTR baseName,
        BSTR namespaceURI,
        IXMLDOMNode **qualifiedItem);

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

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

    HRESULT (STDMETHODCALLTYPE *_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,name,namedItem) (This)->lpVtbl->getNamedItem(This,name,namedItem)
#define IXMLDOMNamedNodeMap_setNamedItem(This,newItem,namedItem) (This)->lpVtbl->setNamedItem(This,newItem,namedItem)
#define IXMLDOMNamedNodeMap_removeNamedItem(This,name,namedItem) (This)->lpVtbl->removeNamedItem(This,name,namedItem)
#define IXMLDOMNamedNodeMap_get_item(This,index,listItem) (This)->lpVtbl->get_item(This,index,listItem)
#define IXMLDOMNamedNodeMap_get_length(This,listLength) (This)->lpVtbl->get_length(This,listLength)
#define IXMLDOMNamedNodeMap_getQualifiedItem(This,baseName,namespaceURI,qualifiedItem) (This)->lpVtbl->getQualifiedItem(This,baseName,namespaceURI,qualifiedItem)
#define IXMLDOMNamedNodeMap_removeQualifiedItem(This,baseName,namespaceURI,qualifiedItem) (This)->lpVtbl->removeQualifiedItem(This,baseName,namespaceURI,qualifiedItem)
#define IXMLDOMNamedNodeMap_nextNode(This,nextItem) (This)->lpVtbl->nextNode(This,nextItem)
#define IXMLDOMNamedNodeMap_reset(This) (This)->lpVtbl->reset(This)
#define IXMLDOMNamedNodeMap__newEnum(This,ppUnk) (This)->lpVtbl->_newEnum(This,ppUnk)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLDOMNamedNodeMap_getNamedItem_Proxy(
    IXMLDOMNamedNodeMap* This,
    BSTR name,
    IXMLDOMNode **namedItem);
void __RPC_STUB IXMLDOMNamedNodeMap_getNamedItem_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNamedNodeMap_setNamedItem_Proxy(
    IXMLDOMNamedNodeMap* This,
    IXMLDOMNode *newItem,
    IXMLDOMNode **namedItem);
void __RPC_STUB IXMLDOMNamedNodeMap_setNamedItem_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNamedNodeMap_removeNamedItem_Proxy(
    IXMLDOMNamedNodeMap* This,
    BSTR name,
    IXMLDOMNode **namedItem);
void __RPC_STUB IXMLDOMNamedNodeMap_removeNamedItem_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNamedNodeMap_get_item_Proxy(
    IXMLDOMNamedNodeMap* This,
    LONG index,
    IXMLDOMNode **listItem);
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 *listLength);
void __RPC_STUB IXMLDOMNamedNodeMap_get_length_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNamedNodeMap_getQualifiedItem_Proxy(
    IXMLDOMNamedNodeMap* This,
    BSTR baseName,
    BSTR namespaceURI,
    IXMLDOMNode **qualifiedItem);
void __RPC_STUB IXMLDOMNamedNodeMap_getQualifiedItem_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNamedNodeMap_removeQualifiedItem_Proxy(
    IXMLDOMNamedNodeMap* This,
    BSTR baseName,
    BSTR namespaceURI,
    IXMLDOMNode **qualifiedItem);
void __RPC_STUB IXMLDOMNamedNodeMap_removeQualifiedItem_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMNamedNodeMap_nextNode_Proxy(
    IXMLDOMNamedNodeMap* This,
    IXMLDOMNode **nextItem);
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__newEnum_Proxy(
    IXMLDOMNamedNodeMap* This,
    IUnknown **ppUnk);
void __RPC_STUB IXMLDOMNamedNodeMap__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)
MIDL_INTERFACE("3efaa413-272f-11d2-836f-0000f87a7782")
IXMLDOMDocumentFragment : public IXMLDOMNode
{
};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IXMLDOMDocumentFragment, 0x3efaa413, 0x272f, 0x11d2, 0x83,0x6f, 0x00,0x00,0xf8,0x7a,0x77,0x82)
#endif
#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 *name);

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

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

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

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

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

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

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

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

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

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

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXMLDOMDocumentFragment* This,
        IXMLDOMNode *newChild,
        VARIANT refChild,
        IXMLDOMNode **outNewChild);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXMLDOMDocumentFragment* This,
        IXMLDOMNode *newChild,
        IXMLDOMNode *oldChild,
        IXMLDOMNode **outOldChild);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXMLDOMDocumentFragment* This,
        IXMLDOMNode *childNode,
        IXMLDOMNode **oldChild);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXMLDOMDocumentFragment* This,
        IXMLDOMNode *newChild,
        IXMLDOMNode **outNewChild);

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

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

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXMLDOMDocumentFragment* This,
        VARIANT_BOOL deep,
        IXMLDOMNode **cloneRoot);

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

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

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

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

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

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

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

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

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

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

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXMLDOMDocumentFragment* This,
        IXMLDOMNode *styleSheet,
        BSTR *xmlString);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXMLDOMDocumentFragment* This,
        BSTR queryString,
        IXMLDOMNodeList **resultList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXMLDOMDocumentFragment* This,
        BSTR queryString,
        IXMLDOMNode **resultNode);

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

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

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

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

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXMLDOMDocumentFragment* This,
        IXMLDOMNode *stylesheet,
        VARIANT outputObject);

    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,name) (This)->lpVtbl->get_nodeName(This,name)
#define IXMLDOMDocumentFragment_get_nodeValue(This,value) (This)->lpVtbl->get_nodeValue(This,value)
#define IXMLDOMDocumentFragment_put_nodeValue(This,value) (This)->lpVtbl->put_nodeValue(This,value)
#define IXMLDOMDocumentFragment_get_nodeType(This,type) (This)->lpVtbl->get_nodeType(This,type)
#define IXMLDOMDocumentFragment_get_parentNode(This,parent) (This)->lpVtbl->get_parentNode(This,parent)
#define IXMLDOMDocumentFragment_get_childNodes(This,childList) (This)->lpVtbl->get_childNodes(This,childList)
#define IXMLDOMDocumentFragment_get_firstChild(This,firstChild) (This)->lpVtbl->get_firstChild(This,firstChild)
#define IXMLDOMDocumentFragment_get_lastChild(This,lastChild) (This)->lpVtbl->get_lastChild(This,lastChild)
#define IXMLDOMDocumentFragment_get_previousSibling(This,previousSibling) (This)->lpVtbl->get_previousSibling(This,previousSibling)
#define IXMLDOMDocumentFragment_get_nextSibling(This,nextSibling) (This)->lpVtbl->get_nextSibling(This,nextSibling)
#define IXMLDOMDocumentFragment_get_attributes(This,attributeMap) (This)->lpVtbl->get_attributes(This,attributeMap)
#define IXMLDOMDocumentFragment_insertBefore(This,newChild,refChild,outNewChild) (This)->lpVtbl->insertBefore(This,newChild,refChild,outNewChild)
#define IXMLDOMDocumentFragment_replaceChild(This,newChild,oldChild,outOldChild) (This)->lpVtbl->replaceChild(This,newChild,oldChild,outOldChild)
#define IXMLDOMDocumentFragment_removeChild(This,childNode,oldChild) (This)->lpVtbl->removeChild(This,childNode,oldChild)
#define IXMLDOMDocumentFragment_appendChild(This,newChild,outNewChild) (This)->lpVtbl->appendChild(This,newChild,outNewChild)
#define IXMLDOMDocumentFragment_hasChildNodes(This,hasChild) (This)->lpVtbl->hasChildNodes(This,hasChild)
#define IXMLDOMDocumentFragment_get_ownerDocument(This,DOMDocument) (This)->lpVtbl->get_ownerDocument(This,DOMDocument)
#define IXMLDOMDocumentFragment_cloneNode(This,deep,cloneRoot) (This)->lpVtbl->cloneNode(This,deep,cloneRoot)
#define IXMLDOMDocumentFragment_get_nodeTypeString(This,nodeType) (This)->lpVtbl->get_nodeTypeString(This,nodeType)
#define IXMLDOMDocumentFragment_get_text(This,text) (This)->lpVtbl->get_text(This,text)
#define IXMLDOMDocumentFragment_put_text(This,text) (This)->lpVtbl->put_text(This,text)
#define IXMLDOMDocumentFragment_get_specified(This,isSpecified) (This)->lpVtbl->get_specified(This,isSpecified)
#define IXMLDOMDocumentFragment_get_definition(This,definitionNode) (This)->lpVtbl->get_definition(This,definitionNode)
#define IXMLDOMDocumentFragment_get_nodeTypedValue(This,typedValue) (This)->lpVtbl->get_nodeTypedValue(This,typedValue)
#define IXMLDOMDocumentFragment_put_nodeTypedValue(This,typedValue) (This)->lpVtbl->put_nodeTypedValue(This,typedValue)
#define IXMLDOMDocumentFragment_get_dataType(This,dataTypeName) (This)->lpVtbl->get_dataType(This,dataTypeName)
#define IXMLDOMDocumentFragment_put_dataType(This,dataTypeName) (This)->lpVtbl->put_dataType(This,dataTypeName)
#define IXMLDOMDocumentFragment_get_xml(This,xmlString) (This)->lpVtbl->get_xml(This,xmlString)
#define IXMLDOMDocumentFragment_transformNode(This,styleSheet,xmlString) (This)->lpVtbl->transformNode(This,styleSheet,xmlString)
#define IXMLDOMDocumentFragment_selectNodes(This,queryString,resultList) (This)->lpVtbl->selectNodes(This,queryString,resultList)
#define IXMLDOMDocumentFragment_selectSingleNode(This,queryString,resultNode) (This)->lpVtbl->selectSingleNode(This,queryString,resultNode)
#define IXMLDOMDocumentFragment_get_parsed(This,isParsed) (This)->lpVtbl->get_parsed(This,isParsed)
#define IXMLDOMDocumentFragment_get_namespaceURI(This,namespaceURI) (This)->lpVtbl->get_namespaceURI(This,namespaceURI)
#define IXMLDOMDocumentFragment_get_prefix(This,prefixString) (This)->lpVtbl->get_prefix(This,prefixString)
#define IXMLDOMDocumentFragment_get_baseName(This,nameString) (This)->lpVtbl->get_baseName(This,nameString)
#define IXMLDOMDocumentFragment_transformNodeToObject(This,stylesheet,outputObject) (This)->lpVtbl->transformNodeToObject(This,stylesheet,outputObject)
#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)
MIDL_INTERFACE("2933bf84-7b36-11d2-b20e-00c04f983e60")
IXMLDOMCharacterData : public IXMLDOMNode
{
    virtual HRESULT STDMETHODCALLTYPE get_data(
        BSTR *data) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_data(
        BSTR data) = 0;

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

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

    virtual HRESULT STDMETHODCALLTYPE appendData(
        BSTR data) = 0;

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

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

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

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IXMLDOMCharacterData, 0x2933bf84, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60)
#endif
#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 *name);

    HRESULT (STDMETHODCALLTYPE *get_nodeValue)(
        IXMLDOMCharacterData* This,
        VARIANT *value);

    HRESULT (STDMETHODCALLTYPE *put_nodeValue)(
        IXMLDOMCharacterData* This,
        VARIANT value);

    HRESULT (STDMETHODCALLTYPE *get_nodeType)(
        IXMLDOMCharacterData* This,
        DOMNodeType *type);

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

    HRESULT (STDMETHODCALLTYPE *get_childNodes)(
        IXMLDOMCharacterData* This,
        IXMLDOMNodeList **childList);

    HRESULT (STDMETHODCALLTYPE *get_firstChild)(
        IXMLDOMCharacterData* This,
        IXMLDOMNode **firstChild);

    HRESULT (STDMETHODCALLTYPE *get_lastChild)(
        IXMLDOMCharacterData* This,
        IXMLDOMNode **lastChild);

    HRESULT (STDMETHODCALLTYPE *get_previousSibling)(
        IXMLDOMCharacterData* This,
        IXMLDOMNode **previousSibling);

    HRESULT (STDMETHODCALLTYPE *get_nextSibling)(
        IXMLDOMCharacterData* This,
        IXMLDOMNode **nextSibling);

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

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXMLDOMCharacterData* This,
        IXMLDOMNode *newChild,
        VARIANT refChild,
        IXMLDOMNode **outNewChild);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXMLDOMCharacterData* This,
        IXMLDOMNode *newChild,
        IXMLDOMNode *oldChild,
        IXMLDOMNode **outOldChild);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXMLDOMCharacterData* This,
        IXMLDOMNode *childNode,
        IXMLDOMNode **oldChild);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXMLDOMCharacterData* This,
        IXMLDOMNode *newChild,
        IXMLDOMNode **outNewChild);

    HRESULT (STDMETHODCALLTYPE *hasChildNodes)(
        IXMLDOMCharacterData* This,
        VARIANT_BOOL *hasChild);

    HRESULT (STDMETHODCALLTYPE *get_ownerDocument)(
        IXMLDOMCharacterData* This,
        IXMLDOMDocument **DOMDocument);

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXMLDOMCharacterData* This,
        VARIANT_BOOL deep,
        IXMLDOMNode **cloneRoot);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypeString)(
        IXMLDOMCharacterData* This,
        BSTR *nodeType);

    HRESULT (STDMETHODCALLTYPE *get_text)(
        IXMLDOMCharacterData* This,
        BSTR *text);

    HRESULT (STDMETHODCALLTYPE *put_text)(
        IXMLDOMCharacterData* This,
        BSTR text);

    HRESULT (STDMETHODCALLTYPE *get_specified)(
        IXMLDOMCharacterData* This,
        VARIANT_BOOL *isSpecified);

    HRESULT (STDMETHODCALLTYPE *get_definition)(
        IXMLDOMCharacterData* This,
        IXMLDOMNode **definitionNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypedValue)(
        IXMLDOMCharacterData* This,
        VARIANT *typedValue);

    HRESULT (STDMETHODCALLTYPE *put_nodeTypedValue)(
        IXMLDOMCharacterData* This,
        VARIANT typedValue);

    HRESULT (STDMETHODCALLTYPE *get_dataType)(
        IXMLDOMCharacterData* This,
        VARIANT *dataTypeName);

    HRESULT (STDMETHODCALLTYPE *put_dataType)(
        IXMLDOMCharacterData* This,
        BSTR dataTypeName);

    HRESULT (STDMETHODCALLTYPE *get_xml)(
        IXMLDOMCharacterData* This,
        BSTR *xmlString);

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXMLDOMCharacterData* This,
        IXMLDOMNode *styleSheet,
        BSTR *xmlString);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXMLDOMCharacterData* This,
        BSTR queryString,
        IXMLDOMNodeList **resultList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXMLDOMCharacterData* This,
        BSTR queryString,
        IXMLDOMNode **resultNode);

    HRESULT (STDMETHODCALLTYPE *get_parsed)(
        IXMLDOMCharacterData* This,
        VARIANT_BOOL *isParsed);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        IXMLDOMCharacterData* This,
        BSTR *namespaceURI);

    HRESULT (STDMETHODCALLTYPE *get_prefix)(
        IXMLDOMCharacterData* This,
        BSTR *prefixString);

    HRESULT (STDMETHODCALLTYPE *get_baseName)(
        IXMLDOMCharacterData* This,
        BSTR *nameString);

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXMLDOMCharacterData* This,
        IXMLDOMNode *stylesheet,
        VARIANT outputObject);

    /*** IXMLDOMCharacterData methods ***/
    HRESULT (STDMETHODCALLTYPE *get_data)(
        IXMLDOMCharacterData* This,
        BSTR *data);

    HRESULT (STDMETHODCALLTYPE *put_data)(
        IXMLDOMCharacterData* This,
        BSTR data);

    HRESULT (STDMETHODCALLTYPE *get_length)(
        IXMLDOMCharacterData* This,
        LONG *dataLength);

    HRESULT (STDMETHODCALLTYPE *substringData)(
        IXMLDOMCharacterData* This,
        LONG offset,
        LONG count,
        BSTR *data);

    HRESULT (STDMETHODCALLTYPE *appendData)(
        IXMLDOMCharacterData* This,
        BSTR data);

    HRESULT (STDMETHODCALLTYPE *insertData)(
        IXMLDOMCharacterData* This,
        LONG offset,
        BSTR data);

    HRESULT (STDMETHODCALLTYPE *deleteData)(
        IXMLDOMCharacterData* This,
        LONG offset,
        LONG count);

    HRESULT (STDMETHODCALLTYPE *replaceData)(
        IXMLDOMCharacterData* This,
        LONG offset,
        LONG count,
        BSTR data);

    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,name) (This)->lpVtbl->get_nodeName(This,name)
#define IXMLDOMCharacterData_get_nodeValue(This,value) (This)->lpVtbl->get_nodeValue(This,value)
#define IXMLDOMCharacterData_put_nodeValue(This,value) (This)->lpVtbl->put_nodeValue(This,value)
#define IXMLDOMCharacterData_get_nodeType(This,type) (This)->lpVtbl->get_nodeType(This,type)
#define IXMLDOMCharacterData_get_parentNode(This,parent) (This)->lpVtbl->get_parentNode(This,parent)
#define IXMLDOMCharacterData_get_childNodes(This,childList) (This)->lpVtbl->get_childNodes(This,childList)
#define IXMLDOMCharacterData_get_firstChild(This,firstChild) (This)->lpVtbl->get_firstChild(This,firstChild)
#define IXMLDOMCharacterData_get_lastChild(This,lastChild) (This)->lpVtbl->get_lastChild(This,lastChild)
#define IXMLDOMCharacterData_get_previousSibling(This,previousSibling) (This)->lpVtbl->get_previousSibling(This,previousSibling)
#define IXMLDOMCharacterData_get_nextSibling(This,nextSibling) (This)->lpVtbl->get_nextSibling(This,nextSibling)
#define IXMLDOMCharacterData_get_attributes(This,attributeMap) (This)->lpVtbl->get_attributes(This,attributeMap)
#define IXMLDOMCharacterData_insertBefore(This,newChild,refChild,outNewChild) (This)->lpVtbl->insertBefore(This,newChild,refChild,outNewChild)
#define IXMLDOMCharacterData_replaceChild(This,newChild,oldChild,outOldChild) (This)->lpVtbl->replaceChild(This,newChild,oldChild,outOldChild)
#define IXMLDOMCharacterData_removeChild(This,childNode,oldChild) (This)->lpVtbl->removeChild(This,childNode,oldChild)
#define IXMLDOMCharacterData_appendChild(This,newChild,outNewChild) (This)->lpVtbl->appendChild(This,newChild,outNewChild)
#define IXMLDOMCharacterData_hasChildNodes(This,hasChild) (This)->lpVtbl->hasChildNodes(This,hasChild)
#define IXMLDOMCharacterData_get_ownerDocument(This,DOMDocument) (This)->lpVtbl->get_ownerDocument(This,DOMDocument)
#define IXMLDOMCharacterData_cloneNode(This,deep,cloneRoot) (This)->lpVtbl->cloneNode(This,deep,cloneRoot)
#define IXMLDOMCharacterData_get_nodeTypeString(This,nodeType) (This)->lpVtbl->get_nodeTypeString(This,nodeType)
#define IXMLDOMCharacterData_get_text(This,text) (This)->lpVtbl->get_text(This,text)
#define IXMLDOMCharacterData_put_text(This,text) (This)->lpVtbl->put_text(This,text)
#define IXMLDOMCharacterData_get_specified(This,isSpecified) (This)->lpVtbl->get_specified(This,isSpecified)
#define IXMLDOMCharacterData_get_definition(This,definitionNode) (This)->lpVtbl->get_definition(This,definitionNode)
#define IXMLDOMCharacterData_get_nodeTypedValue(This,typedValue) (This)->lpVtbl->get_nodeTypedValue(This,typedValue)
#define IXMLDOMCharacterData_put_nodeTypedValue(This,typedValue) (This)->lpVtbl->put_nodeTypedValue(This,typedValue)
#define IXMLDOMCharacterData_get_dataType(This,dataTypeName) (This)->lpVtbl->get_dataType(This,dataTypeName)
#define IXMLDOMCharacterData_put_dataType(This,dataTypeName) (This)->lpVtbl->put_dataType(This,dataTypeName)
#define IXMLDOMCharacterData_get_xml(This,xmlString) (This)->lpVtbl->get_xml(This,xmlString)
#define IXMLDOMCharacterData_transformNode(This,styleSheet,xmlString) (This)->lpVtbl->transformNode(This,styleSheet,xmlString)
#define IXMLDOMCharacterData_selectNodes(This,queryString,resultList) (This)->lpVtbl->selectNodes(This,queryString,resultList)
#define IXMLDOMCharacterData_selectSingleNode(This,queryString,resultNode) (This)->lpVtbl->selectSingleNode(This,queryString,resultNode)
#define IXMLDOMCharacterData_get_parsed(This,isParsed) (This)->lpVtbl->get_parsed(This,isParsed)
#define IXMLDOMCharacterData_get_namespaceURI(This,namespaceURI) (This)->lpVtbl->get_namespaceURI(This,namespaceURI)
#define IXMLDOMCharacterData_get_prefix(This,prefixString) (This)->lpVtbl->get_prefix(This,prefixString)
#define IXMLDOMCharacterData_get_baseName(This,nameString) (This)->lpVtbl->get_baseName(This,nameString)
#define IXMLDOMCharacterData_transformNodeToObject(This,stylesheet,outputObject) (This)->lpVtbl->transformNodeToObject(This,stylesheet,outputObject)
/*** IXMLDOMCharacterData methods ***/
#define IXMLDOMCharacterData_get_data(This,data) (This)->lpVtbl->get_data(This,data)
#define IXMLDOMCharacterData_put_data(This,data) (This)->lpVtbl->put_data(This,data)
#define IXMLDOMCharacterData_get_length(This,dataLength) (This)->lpVtbl->get_length(This,dataLength)
#define IXMLDOMCharacterData_substringData(This,offset,count,data) (This)->lpVtbl->substringData(This,offset,count,data)
#define IXMLDOMCharacterData_appendData(This,data) (This)->lpVtbl->appendData(This,data)
#define IXMLDOMCharacterData_insertData(This,offset,data) (This)->lpVtbl->insertData(This,offset,data)
#define IXMLDOMCharacterData_deleteData(This,offset,count) (This)->lpVtbl->deleteData(This,offset,count)
#define IXMLDOMCharacterData_replaceData(This,offset,count,data) (This)->lpVtbl->replaceData(This,offset,count,data)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLDOMCharacterData_get_data_Proxy(
    IXMLDOMCharacterData* This,
    BSTR *data);
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 *dataLength);
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 *data);
void __RPC_STUB IXMLDOMCharacterData_substringData_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMCharacterData_appendData_Proxy(
    IXMLDOMCharacterData* This,
    BSTR data);
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 data);
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 data);
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)
MIDL_INTERFACE("2933bf85-7b36-11d2-b20e-00c04f983e60")
IXMLDOMAttribute : public IXMLDOMNode
{
    virtual HRESULT STDMETHODCALLTYPE get_name(
        BSTR *attributeName) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_value(
        VARIANT *attributeValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_value(
        VARIANT attributeValue) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IXMLDOMAttribute, 0x2933bf85, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60)
#endif
#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 *name);

    HRESULT (STDMETHODCALLTYPE *get_nodeValue)(
        IXMLDOMAttribute* This,
        VARIANT *value);

    HRESULT (STDMETHODCALLTYPE *put_nodeValue)(
        IXMLDOMAttribute* This,
        VARIANT value);

    HRESULT (STDMETHODCALLTYPE *get_nodeType)(
        IXMLDOMAttribute* This,
        DOMNodeType *type);

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

    HRESULT (STDMETHODCALLTYPE *get_childNodes)(
        IXMLDOMAttribute* This,
        IXMLDOMNodeList **childList);

    HRESULT (STDMETHODCALLTYPE *get_firstChild)(
        IXMLDOMAttribute* This,
        IXMLDOMNode **firstChild);

    HRESULT (STDMETHODCALLTYPE *get_lastChild)(
        IXMLDOMAttribute* This,
        IXMLDOMNode **lastChild);

    HRESULT (STDMETHODCALLTYPE *get_previousSibling)(
        IXMLDOMAttribute* This,
        IXMLDOMNode **previousSibling);

    HRESULT (STDMETHODCALLTYPE *get_nextSibling)(
        IXMLDOMAttribute* This,
        IXMLDOMNode **nextSibling);

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

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXMLDOMAttribute* This,
        IXMLDOMNode *newChild,
        VARIANT refChild,
        IXMLDOMNode **outNewChild);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXMLDOMAttribute* This,
        IXMLDOMNode *newChild,
        IXMLDOMNode *oldChild,
        IXMLDOMNode **outOldChild);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXMLDOMAttribute* This,
        IXMLDOMNode *childNode,
        IXMLDOMNode **oldChild);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXMLDOMAttribute* This,
        IXMLDOMNode *newChild,
        IXMLDOMNode **outNewChild);

    HRESULT (STDMETHODCALLTYPE *hasChildNodes)(
        IXMLDOMAttribute* This,
        VARIANT_BOOL *hasChild);

    HRESULT (STDMETHODCALLTYPE *get_ownerDocument)(
        IXMLDOMAttribute* This,
        IXMLDOMDocument **DOMDocument);

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXMLDOMAttribute* This,
        VARIANT_BOOL deep,
        IXMLDOMNode **cloneRoot);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypeString)(
        IXMLDOMAttribute* This,
        BSTR *nodeType);

    HRESULT (STDMETHODCALLTYPE *get_text)(
        IXMLDOMAttribute* This,
        BSTR *text);

    HRESULT (STDMETHODCALLTYPE *put_text)(
        IXMLDOMAttribute* This,
        BSTR text);

    HRESULT (STDMETHODCALLTYPE *get_specified)(
        IXMLDOMAttribute* This,
        VARIANT_BOOL *isSpecified);

    HRESULT (STDMETHODCALLTYPE *get_definition)(
        IXMLDOMAttribute* This,
        IXMLDOMNode **definitionNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypedValue)(
        IXMLDOMAttribute* This,
        VARIANT *typedValue);

    HRESULT (STDMETHODCALLTYPE *put_nodeTypedValue)(
        IXMLDOMAttribute* This,
        VARIANT typedValue);

    HRESULT (STDMETHODCALLTYPE *get_dataType)(
        IXMLDOMAttribute* This,
        VARIANT *dataTypeName);

    HRESULT (STDMETHODCALLTYPE *put_dataType)(
        IXMLDOMAttribute* This,
        BSTR dataTypeName);

    HRESULT (STDMETHODCALLTYPE *get_xml)(
        IXMLDOMAttribute* This,
        BSTR *xmlString);

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXMLDOMAttribute* This,
        IXMLDOMNode *styleSheet,
        BSTR *xmlString);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXMLDOMAttribute* This,
        BSTR queryString,
        IXMLDOMNodeList **resultList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXMLDOMAttribute* This,
        BSTR queryString,
        IXMLDOMNode **resultNode);

    HRESULT (STDMETHODCALLTYPE *get_parsed)(
        IXMLDOMAttribute* This,
        VARIANT_BOOL *isParsed);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        IXMLDOMAttribute* This,
        BSTR *namespaceURI);

    HRESULT (STDMETHODCALLTYPE *get_prefix)(
        IXMLDOMAttribute* This,
        BSTR *prefixString);

    HRESULT (STDMETHODCALLTYPE *get_baseName)(
        IXMLDOMAttribute* This,
        BSTR *nameString);

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXMLDOMAttribute* This,
        IXMLDOMNode *stylesheet,
        VARIANT outputObject);

    /*** IXMLDOMAttribute methods ***/
    HRESULT (STDMETHODCALLTYPE *get_name)(
        IXMLDOMAttribute* This,
        BSTR *attributeName);

    HRESULT (STDMETHODCALLTYPE *get_value)(
        IXMLDOMAttribute* This,
        VARIANT *attributeValue);

    HRESULT (STDMETHODCALLTYPE *put_value)(
        IXMLDOMAttribute* This,
        VARIANT attributeValue);

    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,name) (This)->lpVtbl->get_nodeName(This,name)
#define IXMLDOMAttribute_get_nodeValue(This,value) (This)->lpVtbl->get_nodeValue(This,value)
#define IXMLDOMAttribute_put_nodeValue(This,value) (This)->lpVtbl->put_nodeValue(This,value)
#define IXMLDOMAttribute_get_nodeType(This,type) (This)->lpVtbl->get_nodeType(This,type)
#define IXMLDOMAttribute_get_parentNode(This,parent) (This)->lpVtbl->get_parentNode(This,parent)
#define IXMLDOMAttribute_get_childNodes(This,childList) (This)->lpVtbl->get_childNodes(This,childList)
#define IXMLDOMAttribute_get_firstChild(This,firstChild) (This)->lpVtbl->get_firstChild(This,firstChild)
#define IXMLDOMAttribute_get_lastChild(This,lastChild) (This)->lpVtbl->get_lastChild(This,lastChild)
#define IXMLDOMAttribute_get_previousSibling(This,previousSibling) (This)->lpVtbl->get_previousSibling(This,previousSibling)
#define IXMLDOMAttribute_get_nextSibling(This,nextSibling) (This)->lpVtbl->get_nextSibling(This,nextSibling)
#define IXMLDOMAttribute_get_attributes(This,attributeMap) (This)->lpVtbl->get_attributes(This,attributeMap)
#define IXMLDOMAttribute_insertBefore(This,newChild,refChild,outNewChild) (This)->lpVtbl->insertBefore(This,newChild,refChild,outNewChild)
#define IXMLDOMAttribute_replaceChild(This,newChild,oldChild,outOldChild) (This)->lpVtbl->replaceChild(This,newChild,oldChild,outOldChild)
#define IXMLDOMAttribute_removeChild(This,childNode,oldChild) (This)->lpVtbl->removeChild(This,childNode,oldChild)
#define IXMLDOMAttribute_appendChild(This,newChild,outNewChild) (This)->lpVtbl->appendChild(This,newChild,outNewChild)
#define IXMLDOMAttribute_hasChildNodes(This,hasChild) (This)->lpVtbl->hasChildNodes(This,hasChild)
#define IXMLDOMAttribute_get_ownerDocument(This,DOMDocument) (This)->lpVtbl->get_ownerDocument(This,DOMDocument)
#define IXMLDOMAttribute_cloneNode(This,deep,cloneRoot) (This)->lpVtbl->cloneNode(This,deep,cloneRoot)
#define IXMLDOMAttribute_get_nodeTypeString(This,nodeType) (This)->lpVtbl->get_nodeTypeString(This,nodeType)
#define IXMLDOMAttribute_get_text(This,text) (This)->lpVtbl->get_text(This,text)
#define IXMLDOMAttribute_put_text(This,text) (This)->lpVtbl->put_text(This,text)
#define IXMLDOMAttribute_get_specified(This,isSpecified) (This)->lpVtbl->get_specified(This,isSpecified)
#define IXMLDOMAttribute_get_definition(This,definitionNode) (This)->lpVtbl->get_definition(This,definitionNode)
#define IXMLDOMAttribute_get_nodeTypedValue(This,typedValue) (This)->lpVtbl->get_nodeTypedValue(This,typedValue)
#define IXMLDOMAttribute_put_nodeTypedValue(This,typedValue) (This)->lpVtbl->put_nodeTypedValue(This,typedValue)
#define IXMLDOMAttribute_get_dataType(This,dataTypeName) (This)->lpVtbl->get_dataType(This,dataTypeName)
#define IXMLDOMAttribute_put_dataType(This,dataTypeName) (This)->lpVtbl->put_dataType(This,dataTypeName)
#define IXMLDOMAttribute_get_xml(This,xmlString) (This)->lpVtbl->get_xml(This,xmlString)
#define IXMLDOMAttribute_transformNode(This,styleSheet,xmlString) (This)->lpVtbl->transformNode(This,styleSheet,xmlString)
#define IXMLDOMAttribute_selectNodes(This,queryString,resultList) (This)->lpVtbl->selectNodes(This,queryString,resultList)
#define IXMLDOMAttribute_selectSingleNode(This,queryString,resultNode) (This)->lpVtbl->selectSingleNode(This,queryString,resultNode)
#define IXMLDOMAttribute_get_parsed(This,isParsed) (This)->lpVtbl->get_parsed(This,isParsed)
#define IXMLDOMAttribute_get_namespaceURI(This,namespaceURI) (This)->lpVtbl->get_namespaceURI(This,namespaceURI)
#define IXMLDOMAttribute_get_prefix(This,prefixString) (This)->lpVtbl->get_prefix(This,prefixString)
#define IXMLDOMAttribute_get_baseName(This,nameString) (This)->lpVtbl->get_baseName(This,nameString)
#define IXMLDOMAttribute_transformNodeToObject(This,stylesheet,outputObject) (This)->lpVtbl->transformNodeToObject(This,stylesheet,outputObject)
/*** IXMLDOMAttribute methods ***/
#define IXMLDOMAttribute_get_name(This,attributeName) (This)->lpVtbl->get_name(This,attributeName)
#define IXMLDOMAttribute_get_value(This,attributeValue) (This)->lpVtbl->get_value(This,attributeValue)
#define IXMLDOMAttribute_put_value(This,attributeValue) (This)->lpVtbl->put_value(This,attributeValue)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLDOMAttribute_get_name_Proxy(
    IXMLDOMAttribute* This,
    BSTR *attributeName);
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 *attributeValue);
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 attributeValue);
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)
MIDL_INTERFACE("2933bf86-7b36-11d2-b20e-00c04f983e60")
IXMLDOMElement : public IXMLDOMNode
{
    virtual HRESULT STDMETHODCALLTYPE get_tagName(
        BSTR *tagName) = 0;

    virtual HRESULT STDMETHODCALLTYPE getAttribute(
        BSTR name,
        VARIANT *value) = 0;

    virtual HRESULT STDMETHODCALLTYPE setAttribute(
        BSTR name,
        VARIANT value) = 0;

    virtual HRESULT STDMETHODCALLTYPE removeAttribute(
        BSTR name) = 0;

    virtual HRESULT STDMETHODCALLTYPE getAttributeNode(
        BSTR name,
        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 tagName,
        IXMLDOMNodeList **resultList) = 0;

    virtual HRESULT STDMETHODCALLTYPE normalize(
        ) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IXMLDOMElement, 0x2933bf86, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60)
#endif
#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 *name);

    HRESULT (STDMETHODCALLTYPE *get_nodeValue)(
        IXMLDOMElement* This,
        VARIANT *value);

    HRESULT (STDMETHODCALLTYPE *put_nodeValue)(
        IXMLDOMElement* This,
        VARIANT value);

    HRESULT (STDMETHODCALLTYPE *get_nodeType)(
        IXMLDOMElement* This,
        DOMNodeType *type);

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

    HRESULT (STDMETHODCALLTYPE *get_childNodes)(
        IXMLDOMElement* This,
        IXMLDOMNodeList **childList);

    HRESULT (STDMETHODCALLTYPE *get_firstChild)(
        IXMLDOMElement* This,
        IXMLDOMNode **firstChild);

    HRESULT (STDMETHODCALLTYPE *get_lastChild)(
        IXMLDOMElement* This,
        IXMLDOMNode **lastChild);

    HRESULT (STDMETHODCALLTYPE *get_previousSibling)(
        IXMLDOMElement* This,
        IXMLDOMNode **previousSibling);

    HRESULT (STDMETHODCALLTYPE *get_nextSibling)(
        IXMLDOMElement* This,
        IXMLDOMNode **nextSibling);

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

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXMLDOMElement* This,
        IXMLDOMNode *newChild,
        VARIANT refChild,
        IXMLDOMNode **outNewChild);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXMLDOMElement* This,
        IXMLDOMNode *newChild,
        IXMLDOMNode *oldChild,
        IXMLDOMNode **outOldChild);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXMLDOMElement* This,
        IXMLDOMNode *childNode,
        IXMLDOMNode **oldChild);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXMLDOMElement* This,
        IXMLDOMNode *newChild,
        IXMLDOMNode **outNewChild);

    HRESULT (STDMETHODCALLTYPE *hasChildNodes)(
        IXMLDOMElement* This,
        VARIANT_BOOL *hasChild);

    HRESULT (STDMETHODCALLTYPE *get_ownerDocument)(
        IXMLDOMElement* This,
        IXMLDOMDocument **DOMDocument);

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXMLDOMElement* This,
        VARIANT_BOOL deep,
        IXMLDOMNode **cloneRoot);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypeString)(
        IXMLDOMElement* This,
        BSTR *nodeType);

    HRESULT (STDMETHODCALLTYPE *get_text)(
        IXMLDOMElement* This,
        BSTR *text);

    HRESULT (STDMETHODCALLTYPE *put_text)(
        IXMLDOMElement* This,
        BSTR text);

    HRESULT (STDMETHODCALLTYPE *get_specified)(
        IXMLDOMElement* This,
        VARIANT_BOOL *isSpecified);

    HRESULT (STDMETHODCALLTYPE *get_definition)(
        IXMLDOMElement* This,
        IXMLDOMNode **definitionNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypedValue)(
        IXMLDOMElement* This,
        VARIANT *typedValue);

    HRESULT (STDMETHODCALLTYPE *put_nodeTypedValue)(
        IXMLDOMElement* This,
        VARIANT typedValue);

    HRESULT (STDMETHODCALLTYPE *get_dataType)(
        IXMLDOMElement* This,
        VARIANT *dataTypeName);

    HRESULT (STDMETHODCALLTYPE *put_dataType)(
        IXMLDOMElement* This,
        BSTR dataTypeName);

    HRESULT (STDMETHODCALLTYPE *get_xml)(
        IXMLDOMElement* This,
        BSTR *xmlString);

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXMLDOMElement* This,
        IXMLDOMNode *styleSheet,
        BSTR *xmlString);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXMLDOMElement* This,
        BSTR queryString,
        IXMLDOMNodeList **resultList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXMLDOMElement* This,
        BSTR queryString,
        IXMLDOMNode **resultNode);

    HRESULT (STDMETHODCALLTYPE *get_parsed)(
        IXMLDOMElement* This,
        VARIANT_BOOL *isParsed);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        IXMLDOMElement* This,
        BSTR *namespaceURI);

    HRESULT (STDMETHODCALLTYPE *get_prefix)(
        IXMLDOMElement* This,
        BSTR *prefixString);

    HRESULT (STDMETHODCALLTYPE *get_baseName)(
        IXMLDOMElement* This,
        BSTR *nameString);

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXMLDOMElement* This,
        IXMLDOMNode *stylesheet,
        VARIANT outputObject);

    /*** IXMLDOMElement methods ***/
    HRESULT (STDMETHODCALLTYPE *get_tagName)(
        IXMLDOMElement* This,
        BSTR *tagName);

    HRESULT (STDMETHODCALLTYPE *getAttribute)(
        IXMLDOMElement* This,
        BSTR name,
        VARIANT *value);

    HRESULT (STDMETHODCALLTYPE *setAttribute)(
        IXMLDOMElement* This,
        BSTR name,
        VARIANT value);

    HRESULT (STDMETHODCALLTYPE *removeAttribute)(
        IXMLDOMElement* This,
        BSTR name);

    HRESULT (STDMETHODCALLTYPE *getAttributeNode)(
        IXMLDOMElement* This,
        BSTR name,
        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 tagName,
        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,name) (This)->lpVtbl->get_nodeName(This,name)
#define IXMLDOMElement_get_nodeValue(This,value) (This)->lpVtbl->get_nodeValue(This,value)
#define IXMLDOMElement_put_nodeValue(This,value) (This)->lpVtbl->put_nodeValue(This,value)
#define IXMLDOMElement_get_nodeType(This,type) (This)->lpVtbl->get_nodeType(This,type)
#define IXMLDOMElement_get_parentNode(This,parent) (This)->lpVtbl->get_parentNode(This,parent)
#define IXMLDOMElement_get_childNodes(This,childList) (This)->lpVtbl->get_childNodes(This,childList)
#define IXMLDOMElement_get_firstChild(This,firstChild) (This)->lpVtbl->get_firstChild(This,firstChild)
#define IXMLDOMElement_get_lastChild(This,lastChild) (This)->lpVtbl->get_lastChild(This,lastChild)
#define IXMLDOMElement_get_previousSibling(This,previousSibling) (This)->lpVtbl->get_previousSibling(This,previousSibling)
#define IXMLDOMElement_get_nextSibling(This,nextSibling) (This)->lpVtbl->get_nextSibling(This,nextSibling)
#define IXMLDOMElement_get_attributes(This,attributeMap) (This)->lpVtbl->get_attributes(This,attributeMap)
#define IXMLDOMElement_insertBefore(This,newChild,refChild,outNewChild) (This)->lpVtbl->insertBefore(This,newChild,refChild,outNewChild)
#define IXMLDOMElement_replaceChild(This,newChild,oldChild,outOldChild) (This)->lpVtbl->replaceChild(This,newChild,oldChild,outOldChild)
#define IXMLDOMElement_removeChild(This,childNode,oldChild) (This)->lpVtbl->removeChild(This,childNode,oldChild)
#define IXMLDOMElement_appendChild(This,newChild,outNewChild) (This)->lpVtbl->appendChild(This,newChild,outNewChild)
#define IXMLDOMElement_hasChildNodes(This,hasChild) (This)->lpVtbl->hasChildNodes(This,hasChild)
#define IXMLDOMElement_get_ownerDocument(This,DOMDocument) (This)->lpVtbl->get_ownerDocument(This,DOMDocument)
#define IXMLDOMElement_cloneNode(This,deep,cloneRoot) (This)->lpVtbl->cloneNode(This,deep,cloneRoot)
#define IXMLDOMElement_get_nodeTypeString(This,nodeType) (This)->lpVtbl->get_nodeTypeString(This,nodeType)
#define IXMLDOMElement_get_text(This,text) (This)->lpVtbl->get_text(This,text)
#define IXMLDOMElement_put_text(This,text) (This)->lpVtbl->put_text(This,text)
#define IXMLDOMElement_get_specified(This,isSpecified) (This)->lpVtbl->get_specified(This,isSpecified)
#define IXMLDOMElement_get_definition(This,definitionNode) (This)->lpVtbl->get_definition(This,definitionNode)
#define IXMLDOMElement_get_nodeTypedValue(This,typedValue) (This)->lpVtbl->get_nodeTypedValue(This,typedValue)
#define IXMLDOMElement_put_nodeTypedValue(This,typedValue) (This)->lpVtbl->put_nodeTypedValue(This,typedValue)
#define IXMLDOMElement_get_dataType(This,dataTypeName) (This)->lpVtbl->get_dataType(This,dataTypeName)
#define IXMLDOMElement_put_dataType(This,dataTypeName) (This)->lpVtbl->put_dataType(This,dataTypeName)
#define IXMLDOMElement_get_xml(This,xmlString) (This)->lpVtbl->get_xml(This,xmlString)
#define IXMLDOMElement_transformNode(This,styleSheet,xmlString) (This)->lpVtbl->transformNode(This,styleSheet,xmlString)
#define IXMLDOMElement_selectNodes(This,queryString,resultList) (This)->lpVtbl->selectNodes(This,queryString,resultList)
#define IXMLDOMElement_selectSingleNode(This,queryString,resultNode) (This)->lpVtbl->selectSingleNode(This,queryString,resultNode)
#define IXMLDOMElement_get_parsed(This,isParsed) (This)->lpVtbl->get_parsed(This,isParsed)
#define IXMLDOMElement_get_namespaceURI(This,namespaceURI) (This)->lpVtbl->get_namespaceURI(This,namespaceURI)
#define IXMLDOMElement_get_prefix(This,prefixString) (This)->lpVtbl->get_prefix(This,prefixString)
#define IXMLDOMElement_get_baseName(This,nameString) (This)->lpVtbl->get_baseName(This,nameString)
#define IXMLDOMElement_transformNodeToObject(This,stylesheet,outputObject) (This)->lpVtbl->transformNodeToObject(This,stylesheet,outputObject)
/*** IXMLDOMElement methods ***/
#define IXMLDOMElement_get_tagName(This,tagName) (This)->lpVtbl->get_tagName(This,tagName)
#define IXMLDOMElement_getAttribute(This,name,value) (This)->lpVtbl->getAttribute(This,name,value)
#define IXMLDOMElement_setAttribute(This,name,value) (This)->lpVtbl->setAttribute(This,name,value)
#define IXMLDOMElement_removeAttribute(This,name) (This)->lpVtbl->removeAttribute(This,name)
#define IXMLDOMElement_getAttributeNode(This,name,attributeNode) (This)->lpVtbl->getAttributeNode(This,name,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,tagName,resultList) (This)->lpVtbl->getElementsByTagName(This,tagName,resultList)
#define IXMLDOMElement_normalize(This) (This)->lpVtbl->normalize(This)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLDOMElement_get_tagName_Proxy(
    IXMLDOMElement* This,
    BSTR *tagName);
void __RPC_STUB IXMLDOMElement_get_tagName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMElement_getAttribute_Proxy(
    IXMLDOMElement* This,
    BSTR name,
    VARIANT *value);
void __RPC_STUB IXMLDOMElement_getAttribute_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMElement_setAttribute_Proxy(
    IXMLDOMElement* This,
    BSTR name,
    VARIANT value);
void __RPC_STUB IXMLDOMElement_setAttribute_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMElement_removeAttribute_Proxy(
    IXMLDOMElement* This,
    BSTR name);
void __RPC_STUB IXMLDOMElement_removeAttribute_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDOMElement_getAttributeNode_Proxy(
    IXMLDOMElement* This,
    BSTR name,
    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 tagName,
    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)
MIDL_INTERFACE("2933bf87-7b36-11d2-b20e-00c04f983e60")
IXMLDOMText : public IXMLDOMCharacterData
{
    virtual HRESULT STDMETHODCALLTYPE splitText(
        LONG offset,
        IXMLDOMText **rightHandTextNode) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IXMLDOMText, 0x2933bf87, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60)
#endif
#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 *name);

    HRESULT (STDMETHODCALLTYPE *get_nodeValue)(
        IXMLDOMText* This,
        VARIANT *value);

    HRESULT (STDMETHODCALLTYPE *put_nodeValue)(
        IXMLDOMText* This,
        VARIANT value);

    HRESULT (STDMETHODCALLTYPE *get_nodeType)(
        IXMLDOMText* This,
        DOMNodeType *type);

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

    HRESULT (STDMETHODCALLTYPE *get_childNodes)(
        IXMLDOMText* This,
        IXMLDOMNodeList **childList);

    HRESULT (STDMETHODCALLTYPE *get_firstChild)(
        IXMLDOMText* This,
        IXMLDOMNode **firstChild);

    HRESULT (STDMETHODCALLTYPE *get_lastChild)(
        IXMLDOMText* This,
        IXMLDOMNode **lastChild);

    HRESULT (STDMETHODCALLTYPE *get_previousSibling)(
        IXMLDOMText* This,
        IXMLDOMNode **previousSibling);

    HRESULT (STDMETHODCALLTYPE *get_nextSibling)(
        IXMLDOMText* This,
        IXMLDOMNode **nextSibling);

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

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXMLDOMText* This,
        IXMLDOMNode *newChild,
        VARIANT refChild,
        IXMLDOMNode **outNewChild);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXMLDOMText* This,
        IXMLDOMNode *newChild,
        IXMLDOMNode *oldChild,
        IXMLDOMNode **outOldChild);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXMLDOMText* This,
        IXMLDOMNode *childNode,
        IXMLDOMNode **oldChild);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXMLDOMText* This,
        IXMLDOMNode *newChild,
        IXMLDOMNode **outNewChild);

    HRESULT (STDMETHODCALLTYPE *hasChildNodes)(
        IXMLDOMText* This,
        VARIANT_BOOL *hasChild);

    HRESULT (STDMETHODCALLTYPE *get_ownerDocument)(
        IXMLDOMText* This,
        IXMLDOMDocument **DOMDocument);

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXMLDOMText* This,
        VARIANT_BOOL deep,
        IXMLDOMNode **cloneRoot);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypeString)(
        IXMLDOMText* This,
        BSTR *nodeType);

    HRESULT (STDMETHODCALLTYPE *get_text)(
        IXMLDOMText* This,
        BSTR *text);

    HRESULT (STDMETHODCALLTYPE *put_text)(
        IXMLDOMText* This,
        BSTR text);

    HRESULT (STDMETHODCALLTYPE *get_specified)(
        IXMLDOMText* This,
        VARIANT_BOOL *isSpecified);

    HRESULT (STDMETHODCALLTYPE *get_definition)(
        IXMLDOMText* This,
        IXMLDOMNode **definitionNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypedValue)(
        IXMLDOMText* This,
        VARIANT *typedValue);

    HRESULT (STDMETHODCALLTYPE *put_nodeTypedValue)(
        IXMLDOMText* This,
        VARIANT typedValue);

    HRESULT (STDMETHODCALLTYPE *get_dataType)(
        IXMLDOMText* This,
        VARIANT *dataTypeName);

    HRESULT (STDMETHODCALLTYPE *put_dataType)(
        IXMLDOMText* This,
        BSTR dataTypeName);

    HRESULT (STDMETHODCALLTYPE *get_xml)(
        IXMLDOMText* This,
        BSTR *xmlString);

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXMLDOMText* This,
        IXMLDOMNode *styleSheet,
        BSTR *xmlString);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXMLDOMText* This,
        BSTR queryString,
        IXMLDOMNodeList **resultList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXMLDOMText* This,
        BSTR queryString,
        IXMLDOMNode **resultNode);

    HRESULT (STDMETHODCALLTYPE *get_parsed)(
        IXMLDOMText* This,
        VARIANT_BOOL *isParsed);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        IXMLDOMText* This,
        BSTR *namespaceURI);

    HRESULT (STDMETHODCALLTYPE *get_prefix)(
        IXMLDOMText* This,
        BSTR *prefixString);

    HRESULT (STDMETHODCALLTYPE *get_baseName)(
        IXMLDOMText* This,
        BSTR *nameString);

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXMLDOMText* This,
        IXMLDOMNode *stylesheet,
        VARIANT outputObject);

    /*** IXMLDOMCharacterData methods ***/
    HRESULT (STDMETHODCALLTYPE *get_data)(
        IXMLDOMText* This,
        BSTR *data);

    HRESULT (STDMETHODCALLTYPE *put_data)(
        IXMLDOMText* This,
        BSTR data);

    HRESULT (STDMETHODCALLTYPE *get_length)(
        IXMLDOMText* This,
        LONG *dataLength);

    HRESULT (STDMETHODCALLTYPE *substringData)(
        IXMLDOMText* This,
        LONG offset,
        LONG count,
        BSTR *data);

    HRESULT (STDMETHODCALLTYPE *appendData)(
        IXMLDOMText* This,
        BSTR data);

    HRESULT (STDMETHODCALLTYPE *insertData)(
        IXMLDOMText* This,
        LONG offset,
        BSTR data);

    HRESULT (STDMETHODCALLTYPE *deleteData)(
        IXMLDOMText* This,
        LONG offset,
        LONG count);

    HRESULT (STDMETHODCALLTYPE *replaceData)(
        IXMLDOMText* This,
        LONG offset,
        LONG count,
        BSTR data);

    /*** IXMLDOMText methods ***/
    HRESULT (STDMETHODCALLTYPE *splitText)(
        IXMLDOMText* This,
        LONG offset,
        IXMLDOMText **rightHandTextNode);

    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,name) (This)->lpVtbl->get_nodeName(This,name)
#define IXMLDOMText_get_nodeValue(This,value) (This)->lpVtbl->get_nodeValue(This,value)
#define IXMLDOMText_put_nodeValue(This,value) (This)->lpVtbl->put_nodeValue(This,value)
#define IXMLDOMText_get_nodeType(This,type) (This)->lpVtbl->get_nodeType(This,type)
#define IXMLDOMText_get_parentNode(This,parent) (This)->lpVtbl->get_parentNode(This,parent)
#define IXMLDOMText_get_childNodes(This,childList) (This)->lpVtbl->get_childNodes(This,childList)
#define IXMLDOMText_get_firstChild(This,firstChild) (This)->lpVtbl->get_firstChild(This,firstChild)
#define IXMLDOMText_get_lastChild(This,lastChild) (This)->lpVtbl->get_lastChild(This,lastChild)
#define IXMLDOMText_get_previousSibling(This,previousSibling) (This)->lpVtbl->get_previousSibling(This,previousSibling)
#define IXMLDOMText_get_nextSibling(This,nextSibling) (This)->lpVtbl->get_nextSibling(This,nextSibling)
#define IXMLDOMText_get_attributes(This,attributeMap) (This)->lpVtbl->get_attributes(This,attributeMap)
#define IXMLDOMText_insertBefore(This,newChild,refChild,outNewChild) (This)->lpVtbl->insertBefore(This,newChild,refChild,outNewChild)
#define IXMLDOMText_replaceChild(This,newChild,oldChild,outOldChild) (This)->lpVtbl->replaceChild(This,newChild,oldChild,outOldChild)
#define IXMLDOMText_removeChild(This,childNode,oldChild) (This)->lpVtbl->removeChild(This,childNode,oldChild)
#define IXMLDOMText_appendChild(This,newChild,outNewChild) (This)->lpVtbl->appendChild(This,newChild,outNewChild)
#define IXMLDOMText_hasChildNodes(This,hasChild) (This)->lpVtbl->hasChildNodes(This,hasChild)
#define IXMLDOMText_get_ownerDocument(This,DOMDocument) (This)->lpVtbl->get_ownerDocument(This,DOMDocument)
#define IXMLDOMText_cloneNode(This,deep,cloneRoot) (This)->lpVtbl->cloneNode(This,deep,cloneRoot)
#define IXMLDOMText_get_nodeTypeString(This,nodeType) (This)->lpVtbl->get_nodeTypeString(This,nodeType)
#define IXMLDOMText_get_text(This,text) (This)->lpVtbl->get_text(This,text)
#define IXMLDOMText_put_text(This,text) (This)->lpVtbl->put_text(This,text)
#define IXMLDOMText_get_specified(This,isSpecified) (This)->lpVtbl->get_specified(This,isSpecified)
#define IXMLDOMText_get_definition(This,definitionNode) (This)->lpVtbl->get_definition(This,definitionNode)
#define IXMLDOMText_get_nodeTypedValue(This,typedValue) (This)->lpVtbl->get_nodeTypedValue(This,typedValue)
#define IXMLDOMText_put_nodeTypedValue(This,typedValue) (This)->lpVtbl->put_nodeTypedValue(This,typedValue)
#define IXMLDOMText_get_dataType(This,dataTypeName) (This)->lpVtbl->get_dataType(This,dataTypeName)
#define IXMLDOMText_put_dataType(This,dataTypeName) (This)->lpVtbl->put_dataType(This,dataTypeName)
#define IXMLDOMText_get_xml(This,xmlString) (This)->lpVtbl->get_xml(This,xmlString)
#define IXMLDOMText_transformNode(This,styleSheet,xmlString) (This)->lpVtbl->transformNode(This,styleSheet,xmlString)
#define IXMLDOMText_selectNodes(This,queryString,resultList) (This)->lpVtbl->selectNodes(This,queryString,resultList)
#define IXMLDOMText_selectSingleNode(This,queryString,resultNode) (This)->lpVtbl->selectSingleNode(This,queryString,resultNode)
#define IXMLDOMText_get_parsed(This,isParsed) (This)->lpVtbl->get_parsed(This,isParsed)
#define IXMLDOMText_get_namespaceURI(This,namespaceURI) (This)->lpVtbl->get_namespaceURI(This,namespaceURI)
#define IXMLDOMText_get_prefix(This,prefixString) (This)->lpVtbl->get_prefix(This,prefixString)
#define IXMLDOMText_get_baseName(This,nameString) (This)->lpVtbl->get_baseName(This,nameString)
#define IXMLDOMText_transformNodeToObject(This,stylesheet,outputObject) (This)->lpVtbl->transformNodeToObject(This,stylesheet,outputObject)
/*** IXMLDOMCharacterData methods ***/
#define IXMLDOMText_get_data(This,data) (This)->lpVtbl->get_data(This,data)
#define IXMLDOMText_put_data(This,data) (This)->lpVtbl->put_data(This,data)
#define IXMLDOMText_get_length(This,dataLength) (This)->lpVtbl->get_length(This,dataLength)
#define IXMLDOMText_substringData(This,offset,count,data) (This)->lpVtbl->substringData(This,offset,count,data)
#define IXMLDOMText_appendData(This,data) (This)->lpVtbl->appendData(This,data)
#define IXMLDOMText_insertData(This,offset,data) (This)->lpVtbl->insertData(This,offset,data)
#define IXMLDOMText_deleteData(This,offset,count) (This)->lpVtbl->deleteData(This,offset,count)
#define IXMLDOMText_replaceData(This,offset,count,data) (This)->lpVtbl->replaceData(This,offset,count,data)
/*** IXMLDOMText methods ***/
#define IXMLDOMText_splitText(This,offset,rightHandTextNode) (This)->lpVtbl->splitText(This,offset,rightHandTextNode)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLDOMText_splitText_Proxy(
    IXMLDOMText* This,
    LONG offset,
    IXMLDOMText **rightHandTextNode);
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)
MIDL_INTERFACE("2933bf88-7b36-11d2-b20e-00c04f983e60")
IXMLDOMComment : public IXMLDOMCharacterData
{
};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IXMLDOMComment, 0x2933bf88, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60)
#endif
#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 *name);

    HRESULT (STDMETHODCALLTYPE *get_nodeValue)(
        IXMLDOMComment* This,
        VARIANT *value);

    HRESULT (STDMETHODCALLTYPE *put_nodeValue)(
        IXMLDOMComment* This,
        VARIANT value);

    HRESULT (STDMETHODCALLTYPE *get_nodeType)(
        IXMLDOMComment* This,
        DOMNodeType *type);

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

    HRESULT (STDMETHODCALLTYPE *get_childNodes)(
        IXMLDOMComment* This,
        IXMLDOMNodeList **childList);

    HRESULT (STDMETHODCALLTYPE *get_firstChild)(
        IXMLDOMComment* This,
        IXMLDOMNode **firstChild);

    HRESULT (STDMETHODCALLTYPE *get_lastChild)(
        IXMLDOMComment* This,
        IXMLDOMNode **lastChild);

    HRESULT (STDMETHODCALLTYPE *get_previousSibling)(
        IXMLDOMComment* This,
        IXMLDOMNode **previousSibling);

    HRESULT (STDMETHODCALLTYPE *get_nextSibling)(
        IXMLDOMComment* This,
        IXMLDOMNode **nextSibling);

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

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXMLDOMComment* This,
        IXMLDOMNode *newChild,
        VARIANT refChild,
        IXMLDOMNode **outNewChild);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXMLDOMComment* This,
        IXMLDOMNode *newChild,
        IXMLDOMNode *oldChild,
        IXMLDOMNode **outOldChild);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXMLDOMComment* This,
        IXMLDOMNode *childNode,
        IXMLDOMNode **oldChild);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXMLDOMComment* This,
        IXMLDOMNode *newChild,
        IXMLDOMNode **outNewChild);

    HRESULT (STDMETHODCALLTYPE *hasChildNodes)(
        IXMLDOMComment* This,
        VARIANT_BOOL *hasChild);

    HRESULT (STDMETHODCALLTYPE *get_ownerDocument)(
        IXMLDOMComment* This,
        IXMLDOMDocument **DOMDocument);

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXMLDOMComment* This,
        VARIANT_BOOL deep,
        IXMLDOMNode **cloneRoot);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypeString)(
        IXMLDOMComment* This,
        BSTR *nodeType);

    HRESULT (STDMETHODCALLTYPE *get_text)(
        IXMLDOMComment* This,
        BSTR *text);

    HRESULT (STDMETHODCALLTYPE *put_text)(
        IXMLDOMComment* This,
        BSTR text);

    HRESULT (STDMETHODCALLTYPE *get_specified)(
        IXMLDOMComment* This,
        VARIANT_BOOL *isSpecified);

    HRESULT (STDMETHODCALLTYPE *get_definition)(
        IXMLDOMComment* This,
        IXMLDOMNode **definitionNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypedValue)(
        IXMLDOMComment* This,
        VARIANT *typedValue);

    HRESULT (STDMETHODCALLTYPE *put_nodeTypedValue)(
        IXMLDOMComment* This,
        VARIANT typedValue);

    HRESULT (STDMETHODCALLTYPE *get_dataType)(
        IXMLDOMComment* This,
        VARIANT *dataTypeName);

    HRESULT (STDMETHODCALLTYPE *put_dataType)(
        IXMLDOMComment* This,
        BSTR dataTypeName);

    HRESULT (STDMETHODCALLTYPE *get_xml)(
        IXMLDOMComment* This,
        BSTR *xmlString);

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXMLDOMComment* This,
        IXMLDOMNode *styleSheet,
        BSTR *xmlString);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXMLDOMComment* This,
        BSTR queryString,
        IXMLDOMNodeList **resultList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXMLDOMComment* This,
        BSTR queryString,
        IXMLDOMNode **resultNode);

    HRESULT (STDMETHODCALLTYPE *get_parsed)(
        IXMLDOMComment* This,
        VARIANT_BOOL *isParsed);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        IXMLDOMComment* This,
        BSTR *namespaceURI);

    HRESULT (STDMETHODCALLTYPE *get_prefix)(
        IXMLDOMComment* This,
        BSTR *prefixString);

    HRESULT (STDMETHODCALLTYPE *get_baseName)(
        IXMLDOMComment* This,
        BSTR *nameString);

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXMLDOMComment* This,
        IXMLDOMNode *stylesheet,
        VARIANT outputObject);

    /*** IXMLDOMCharacterData methods ***/
    HRESULT (STDMETHODCALLTYPE *get_data)(
        IXMLDOMComment* This,
        BSTR *data);

    HRESULT (STDMETHODCALLTYPE *put_data)(
        IXMLDOMComment* This,
        BSTR data);

    HRESULT (STDMETHODCALLTYPE *get_length)(
        IXMLDOMComment* This,
        LONG *dataLength);

    HRESULT (STDMETHODCALLTYPE *substringData)(
        IXMLDOMComment* This,
        LONG offset,
        LONG count,
        BSTR *data);

    HRESULT (STDMETHODCALLTYPE *appendData)(
        IXMLDOMComment* This,
        BSTR data);

    HRESULT (STDMETHODCALLTYPE *insertData)(
        IXMLDOMComment* This,
        LONG offset,
        BSTR data);

    HRESULT (STDMETHODCALLTYPE *deleteData)(
        IXMLDOMComment* This,
        LONG offset,
        LONG count);

    HRESULT (STDMETHODCALLTYPE *replaceData)(
        IXMLDOMComment* This,
        LONG offset,
        LONG count,
        BSTR data);

    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,name) (This)->lpVtbl->get_nodeName(This,name)
#define IXMLDOMComment_get_nodeValue(This,value) (This)->lpVtbl->get_nodeValue(This,value)
#define IXMLDOMComment_put_nodeValue(This,value) (This)->lpVtbl->put_nodeValue(This,value)
#define IXMLDOMComment_get_nodeType(This,type) (This)->lpVtbl->get_nodeType(This,type)
#define IXMLDOMComment_get_parentNode(This,parent) (This)->lpVtbl->get_parentNode(This,parent)
#define IXMLDOMComment_get_childNodes(This,childList) (This)->lpVtbl->get_childNodes(This,childList)
#define IXMLDOMComment_get_firstChild(This,firstChild) (This)->lpVtbl->get_firstChild(This,firstChild)
#define IXMLDOMComment_get_lastChild(This,lastChild) (This)->lpVtbl->get_lastChild(This,lastChild)
#define IXMLDOMComment_get_previousSibling(This,previousSibling) (This)->lpVtbl->get_previousSibling(This,previousSibling)
#define IXMLDOMComment_get_nextSibling(This,nextSibling) (This)->lpVtbl->get_nextSibling(This,nextSibling)
#define IXMLDOMComment_get_attributes(This,attributeMap) (This)->lpVtbl->get_attributes(This,attributeMap)
#define IXMLDOMComment_insertBefore(This,newChild,refChild,outNewChild) (This)->lpVtbl->insertBefore(This,newChild,refChild,outNewChild)
#define IXMLDOMComment_replaceChild(This,newChild,oldChild,outOldChild) (This)->lpVtbl->replaceChild(This,newChild,oldChild,outOldChild)
#define IXMLDOMComment_removeChild(This,childNode,oldChild) (This)->lpVtbl->removeChild(This,childNode,oldChild)
#define IXMLDOMComment_appendChild(This,newChild,outNewChild) (This)->lpVtbl->appendChild(This,newChild,outNewChild)
#define IXMLDOMComment_hasChildNodes(This,hasChild) (This)->lpVtbl->hasChildNodes(This,hasChild)
#define IXMLDOMComment_get_ownerDocument(This,DOMDocument) (This)->lpVtbl->get_ownerDocument(This,DOMDocument)
#define IXMLDOMComment_cloneNode(This,deep,cloneRoot) (This)->lpVtbl->cloneNode(This,deep,cloneRoot)
#define IXMLDOMComment_get_nodeTypeString(This,nodeType) (This)->lpVtbl->get_nodeTypeString(This,nodeType)
#define IXMLDOMComment_get_text(This,text) (This)->lpVtbl->get_text(This,text)
#define IXMLDOMComment_put_text(This,text) (This)->lpVtbl->put_text(This,text)
#define IXMLDOMComment_get_specified(This,isSpecified) (This)->lpVtbl->get_specified(This,isSpecified)
#define IXMLDOMComment_get_definition(This,definitionNode) (This)->lpVtbl->get_definition(This,definitionNode)
#define IXMLDOMComment_get_nodeTypedValue(This,typedValue) (This)->lpVtbl->get_nodeTypedValue(This,typedValue)
#define IXMLDOMComment_put_nodeTypedValue(This,typedValue) (This)->lpVtbl->put_nodeTypedValue(This,typedValue)
#define IXMLDOMComment_get_dataType(This,dataTypeName) (This)->lpVtbl->get_dataType(This,dataTypeName)
#define IXMLDOMComment_put_dataType(This,dataTypeName) (This)->lpVtbl->put_dataType(This,dataTypeName)
#define IXMLDOMComment_get_xml(This,xmlString) (This)->lpVtbl->get_xml(This,xmlString)
#define IXMLDOMComment_transformNode(This,styleSheet,xmlString) (This)->lpVtbl->transformNode(This,styleSheet,xmlString)
#define IXMLDOMComment_selectNodes(This,queryString,resultList) (This)->lpVtbl->selectNodes(This,queryString,resultList)
#define IXMLDOMComment_selectSingleNode(This,queryString,resultNode) (This)->lpVtbl->selectSingleNode(This,queryString,resultNode)
#define IXMLDOMComment_get_parsed(This,isParsed) (This)->lpVtbl->get_parsed(This,isParsed)
#define IXMLDOMComment_get_namespaceURI(This,namespaceURI) (This)->lpVtbl->get_namespaceURI(This,namespaceURI)
#define IXMLDOMComment_get_prefix(This,prefixString) (This)->lpVtbl->get_prefix(This,prefixString)
#define IXMLDOMComment_get_baseName(This,nameString) (This)->lpVtbl->get_baseName(This,nameString)
#define IXMLDOMComment_transformNodeToObject(This,stylesheet,outputObject) (This)->lpVtbl->transformNodeToObject(This,stylesheet,outputObject)
/*** IXMLDOMCharacterData methods ***/
#define IXMLDOMComment_get_data(This,data) (This)->lpVtbl->get_data(This,data)
#define IXMLDOMComment_put_data(This,data) (This)->lpVtbl->put_data(This,data)
#define IXMLDOMComment_get_length(This,dataLength) (This)->lpVtbl->get_length(This,dataLength)
#define IXMLDOMComment_substringData(This,offset,count,data) (This)->lpVtbl->substringData(This,offset,count,data)
#define IXMLDOMComment_appendData(This,data) (This)->lpVtbl->appendData(This,data)
#define IXMLDOMComment_insertData(This,offset,data) (This)->lpVtbl->insertData(This,offset,data)
#define IXMLDOMComment_deleteData(This,offset,count) (This)->lpVtbl->deleteData(This,offset,count)
#define IXMLDOMComment_replaceData(This,offset,count,data) (This)->lpVtbl->replaceData(This,offset,count,data)
#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)
MIDL_INTERFACE("2933bf89-7b36-11d2-b20e-00c04f983e60")
IXMLDOMProcessingInstruction : public IXMLDOMNode
{
    virtual HRESULT STDMETHODCALLTYPE get_target(
        BSTR *name) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_data(
        BSTR *value) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_data(
        BSTR value) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IXMLDOMProcessingInstruction, 0x2933bf89, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60)
#endif
#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 *name);

    HRESULT (STDMETHODCALLTYPE *get_nodeValue)(
        IXMLDOMProcessingInstruction* This,
        VARIANT *value);

    HRESULT (STDMETHODCALLTYPE *put_nodeValue)(
        IXMLDOMProcessingInstruction* This,
        VARIANT value);

    HRESULT (STDMETHODCALLTYPE *get_nodeType)(
        IXMLDOMProcessingInstruction* This,
        DOMNodeType *type);

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

    HRESULT (STDMETHODCALLTYPE *get_childNodes)(
        IXMLDOMProcessingInstruction* This,
        IXMLDOMNodeList **childList);

    HRESULT (STDMETHODCALLTYPE *get_firstChild)(
        IXMLDOMProcessingInstruction* This,
        IXMLDOMNode **firstChild);

    HRESULT (STDMETHODCALLTYPE *get_lastChild)(
        IXMLDOMProcessingInstruction* This,
        IXMLDOMNode **lastChild);

    HRESULT (STDMETHODCALLTYPE *get_previousSibling)(
        IXMLDOMProcessingInstruction* This,
        IXMLDOMNode **previousSibling);

    HRESULT (STDMETHODCALLTYPE *get_nextSibling)(
        IXMLDOMProcessingInstruction* This,
        IXMLDOMNode **nextSibling);

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

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXMLDOMProcessingInstruction* This,
        IXMLDOMNode *newChild,
        VARIANT refChild,
        IXMLDOMNode **outNewChild);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXMLDOMProcessingInstruction* This,
        IXMLDOMNode *newChild,
        IXMLDOMNode *oldChild,
        IXMLDOMNode **outOldChild);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXMLDOMProcessingInstruction* This,
        IXMLDOMNode *childNode,
        IXMLDOMNode **oldChild);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXMLDOMProcessingInstruction* This,
        IXMLDOMNode *newChild,
        IXMLDOMNode **outNewChild);

    HRESULT (STDMETHODCALLTYPE *hasChildNodes)(
        IXMLDOMProcessingInstruction* This,
        VARIANT_BOOL *hasChild);

    HRESULT (STDMETHODCALLTYPE *get_ownerDocument)(
        IXMLDOMProcessingInstruction* This,
        IXMLDOMDocument **DOMDocument);

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXMLDOMProcessingInstruction* This,
        VARIANT_BOOL deep,
        IXMLDOMNode **cloneRoot);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypeString)(
        IXMLDOMProcessingInstruction* This,
        BSTR *nodeType);

    HRESULT (STDMETHODCALLTYPE *get_text)(
        IXMLDOMProcessingInstruction* This,
        BSTR *text);

    HRESULT (STDMETHODCALLTYPE *put_text)(
        IXMLDOMProcessingInstruction* This,
        BSTR text);

    HRESULT (STDMETHODCALLTYPE *get_specified)(
        IXMLDOMProcessingInstruction* This,
        VARIANT_BOOL *isSpecified);

    HRESULT (STDMETHODCALLTYPE *get_definition)(
        IXMLDOMProcessingInstruction* This,
        IXMLDOMNode **definitionNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypedValue)(
        IXMLDOMProcessingInstruction* This,
        VARIANT *typedValue);

    HRESULT (STDMETHODCALLTYPE *put_nodeTypedValue)(
        IXMLDOMProcessingInstruction* This,
        VARIANT typedValue);

    HRESULT (STDMETHODCALLTYPE *get_dataType)(
        IXMLDOMProcessingInstruction* This,
        VARIANT *dataTypeName);

    HRESULT (STDMETHODCALLTYPE *put_dataType)(
        IXMLDOMProcessingInstruction* This,
        BSTR dataTypeName);

    HRESULT (STDMETHODCALLTYPE *get_xml)(
        IXMLDOMProcessingInstruction* This,
        BSTR *xmlString);

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXMLDOMProcessingInstruction* This,
        IXMLDOMNode *styleSheet,
        BSTR *xmlString);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXMLDOMProcessingInstruction* This,
        BSTR queryString,
        IXMLDOMNodeList **resultList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXMLDOMProcessingInstruction* This,
        BSTR queryString,
        IXMLDOMNode **resultNode);

    HRESULT (STDMETHODCALLTYPE *get_parsed)(
        IXMLDOMProcessingInstruction* This,
        VARIANT_BOOL *isParsed);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        IXMLDOMProcessingInstruction* This,
        BSTR *namespaceURI);

    HRESULT (STDMETHODCALLTYPE *get_prefix)(
        IXMLDOMProcessingInstruction* This,
        BSTR *prefixString);

    HRESULT (STDMETHODCALLTYPE *get_baseName)(
        IXMLDOMProcessingInstruction* This,
        BSTR *nameString);

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXMLDOMProcessingInstruction* This,
        IXMLDOMNode *stylesheet,
        VARIANT outputObject);

    /*** IXMLDOMProcessingInstruction methods ***/
    HRESULT (STDMETHODCALLTYPE *get_target)(
        IXMLDOMProcessingInstruction* This,
        BSTR *name);

    HRESULT (STDMETHODCALLTYPE *get_data)(
        IXMLDOMProcessingInstruction* This,
        BSTR *value);

    HRESULT (STDMETHODCALLTYPE *put_data)(
        IXMLDOMProcessingInstruction* This,
        BSTR value);

    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,name) (This)->lpVtbl->get_nodeName(This,name)
#define IXMLDOMProcessingInstruction_get_nodeValue(This,value) (This)->lpVtbl->get_nodeValue(This,value)
#define IXMLDOMProcessingInstruction_put_nodeValue(This,value) (This)->lpVtbl->put_nodeValue(This,value)
#define IXMLDOMProcessingInstruction_get_nodeType(This,type) (This)->lpVtbl->get_nodeType(This,type)
#define IXMLDOMProcessingInstruction_get_parentNode(This,parent) (This)->lpVtbl->get_parentNode(This,parent)
#define IXMLDOMProcessingInstruction_get_childNodes(This,childList) (This)->lpVtbl->get_childNodes(This,childList)
#define IXMLDOMProcessingInstruction_get_firstChild(This,firstChild) (This)->lpVtbl->get_firstChild(This,firstChild)
#define IXMLDOMProcessingInstruction_get_lastChild(This,lastChild) (This)->lpVtbl->get_lastChild(This,lastChild)
#define IXMLDOMProcessingInstruction_get_previousSibling(This,previousSibling) (This)->lpVtbl->get_previousSibling(This,previousSibling)
#define IXMLDOMProcessingInstruction_get_nextSibling(This,nextSibling) (This)->lpVtbl->get_nextSibling(This,nextSibling)
#define IXMLDOMProcessingInstruction_get_attributes(This,attributeMap) (This)->lpVtbl->get_attributes(This,attributeMap)
#define IXMLDOMProcessingInstruction_insertBefore(This,newChild,refChild,outNewChild) (This)->lpVtbl->insertBefore(This,newChild,refChild,outNewChild)
#define IXMLDOMProcessingInstruction_replaceChild(This,newChild,oldChild,outOldChild) (This)->lpVtbl->replaceChild(This,newChild,oldChild,outOldChild)
#define IXMLDOMProcessingInstruction_removeChild(This,childNode,oldChild) (This)->lpVtbl->removeChild(This,childNode,oldChild)
#define IXMLDOMProcessingInstruction_appendChild(This,newChild,outNewChild) (This)->lpVtbl->appendChild(This,newChild,outNewChild)
#define IXMLDOMProcessingInstruction_hasChildNodes(This,hasChild) (This)->lpVtbl->hasChildNodes(This,hasChild)
#define IXMLDOMProcessingInstruction_get_ownerDocument(This,DOMDocument) (This)->lpVtbl->get_ownerDocument(This,DOMDocument)
#define IXMLDOMProcessingInstruction_cloneNode(This,deep,cloneRoot) (This)->lpVtbl->cloneNode(This,deep,cloneRoot)
#define IXMLDOMProcessingInstruction_get_nodeTypeString(This,nodeType) (This)->lpVtbl->get_nodeTypeString(This,nodeType)
#define IXMLDOMProcessingInstruction_get_text(This,text) (This)->lpVtbl->get_text(This,text)
#define IXMLDOMProcessingInstruction_put_text(This,text) (This)->lpVtbl->put_text(This,text)
#define IXMLDOMProcessingInstruction_get_specified(This,isSpecified) (This)->lpVtbl->get_specified(This,isSpecified)
#define IXMLDOMProcessingInstruction_get_definition(This,definitionNode) (This)->lpVtbl->get_definition(This,definitionNode)
#define IXMLDOMProcessingInstruction_get_nodeTypedValue(This,typedValue) (This)->lpVtbl->get_nodeTypedValue(This,typedValue)
#define IXMLDOMProcessingInstruction_put_nodeTypedValue(This,typedValue) (This)->lpVtbl->put_nodeTypedValue(This,typedValue)
#define IXMLDOMProcessingInstruction_get_dataType(This,dataTypeName) (This)->lpVtbl->get_dataType(This,dataTypeName)
#define IXMLDOMProcessingInstruction_put_dataType(This,dataTypeName) (This)->lpVtbl->put_dataType(This,dataTypeName)
#define IXMLDOMProcessingInstruction_get_xml(This,xmlString) (This)->lpVtbl->get_xml(This,xmlString)
#define IXMLDOMProcessingInstruction_transformNode(This,styleSheet,xmlString) (This)->lpVtbl->transformNode(This,styleSheet,xmlString)
#define IXMLDOMProcessingInstruction_selectNodes(This,queryString,resultList) (This)->lpVtbl->selectNodes(This,queryString,resultList)
#define IXMLDOMProcessingInstruction_selectSingleNode(This,queryString,resultNode) (This)->lpVtbl->selectSingleNode(This,queryString,resultNode)
#define IXMLDOMProcessingInstruction_get_parsed(This,isParsed) (This)->lpVtbl->get_parsed(This,isParsed)
#define IXMLDOMProcessingInstruction_get_namespaceURI(This,namespaceURI) (This)->lpVtbl->get_namespaceURI(This,namespaceURI)
#define IXMLDOMProcessingInstruction_get_prefix(This,prefixString) (This)->lpVtbl->get_prefix(This,prefixString)
#define IXMLDOMProcessingInstruction_get_baseName(This,nameString) (This)->lpVtbl->get_baseName(This,nameString)
#define IXMLDOMProcessingInstruction_transformNodeToObject(This,stylesheet,outputObject) (This)->lpVtbl->transformNodeToObject(This,stylesheet,outputObject)
/*** IXMLDOMProcessingInstruction methods ***/
#define IXMLDOMProcessingInstruction_get_target(This,name) (This)->lpVtbl->get_target(This,name)
#define IXMLDOMProcessingInstruction_get_data(This,value) (This)->lpVtbl->get_data(This,value)
#define IXMLDOMProcessingInstruction_put_data(This,value) (This)->lpVtbl->put_data(This,value)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLDOMProcessingInstruction_get_target_Proxy(
    IXMLDOMProcessingInstruction* This,
    BSTR *name);
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 *value);
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 value);
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)
MIDL_INTERFACE("2933bf8a-7b36-11d2-b20e-00c04f983e60")
IXMLDOMCDATASection : public IXMLDOMText
{
};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IXMLDOMCDATASection, 0x2933bf8a, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60)
#endif
#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 *name);

    HRESULT (STDMETHODCALLTYPE *get_nodeValue)(
        IXMLDOMCDATASection* This,
        VARIANT *value);

    HRESULT (STDMETHODCALLTYPE *put_nodeValue)(
        IXMLDOMCDATASection* This,
        VARIANT value);

    HRESULT (STDMETHODCALLTYPE *get_nodeType)(
        IXMLDOMCDATASection* This,
        DOMNodeType *type);

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

    HRESULT (STDMETHODCALLTYPE *get_childNodes)(
        IXMLDOMCDATASection* This,
        IXMLDOMNodeList **childList);

    HRESULT (STDMETHODCALLTYPE *get_firstChild)(
        IXMLDOMCDATASection* This,
        IXMLDOMNode **firstChild);

    HRESULT (STDMETHODCALLTYPE *get_lastChild)(
        IXMLDOMCDATASection* This,
        IXMLDOMNode **lastChild);

    HRESULT (STDMETHODCALLTYPE *get_previousSibling)(
        IXMLDOMCDATASection* This,
        IXMLDOMNode **previousSibling);

    HRESULT (STDMETHODCALLTYPE *get_nextSibling)(
        IXMLDOMCDATASection* This,
        IXMLDOMNode **nextSibling);

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

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXMLDOMCDATASection* This,
        IXMLDOMNode *newChild,
        VARIANT refChild,
        IXMLDOMNode **outNewChild);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXMLDOMCDATASection* This,
        IXMLDOMNode *newChild,
        IXMLDOMNode *oldChild,
        IXMLDOMNode **outOldChild);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXMLDOMCDATASection* This,
        IXMLDOMNode *childNode,
        IXMLDOMNode **oldChild);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXMLDOMCDATASection* This,
        IXMLDOMNode *newChild,
        IXMLDOMNode **outNewChild);

    HRESULT (STDMETHODCALLTYPE *hasChildNodes)(
        IXMLDOMCDATASection* This,
        VARIANT_BOOL *hasChild);

    HRESULT (STDMETHODCALLTYPE *get_ownerDocument)(
        IXMLDOMCDATASection* This,
        IXMLDOMDocument **DOMDocument);

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXMLDOMCDATASection* This,
        VARIANT_BOOL deep,
        IXMLDOMNode **cloneRoot);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypeString)(
        IXMLDOMCDATASection* This,
        BSTR *nodeType);

    HRESULT (STDMETHODCALLTYPE *get_text)(
        IXMLDOMCDATASection* This,
        BSTR *text);

    HRESULT (STDMETHODCALLTYPE *put_text)(
        IXMLDOMCDATASection* This,
        BSTR text);

    HRESULT (STDMETHODCALLTYPE *get_specified)(
        IXMLDOMCDATASection* This,
        VARIANT_BOOL *isSpecified);

    HRESULT (STDMETHODCALLTYPE *get_definition)(
        IXMLDOMCDATASection* This,
        IXMLDOMNode **definitionNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypedValue)(
        IXMLDOMCDATASection* This,
        VARIANT *typedValue);

    HRESULT (STDMETHODCALLTYPE *put_nodeTypedValue)(
        IXMLDOMCDATASection* This,
        VARIANT typedValue);

    HRESULT (STDMETHODCALLTYPE *get_dataType)(
        IXMLDOMCDATASection* This,
        VARIANT *dataTypeName);

    HRESULT (STDMETHODCALLTYPE *put_dataType)(
        IXMLDOMCDATASection* This,
        BSTR dataTypeName);

    HRESULT (STDMETHODCALLTYPE *get_xml)(
        IXMLDOMCDATASection* This,
        BSTR *xmlString);

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXMLDOMCDATASection* This,
        IXMLDOMNode *styleSheet,
        BSTR *xmlString);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXMLDOMCDATASection* This,
        BSTR queryString,
        IXMLDOMNodeList **resultList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXMLDOMCDATASection* This,
        BSTR queryString,
        IXMLDOMNode **resultNode);

    HRESULT (STDMETHODCALLTYPE *get_parsed)(
        IXMLDOMCDATASection* This,
        VARIANT_BOOL *isParsed);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        IXMLDOMCDATASection* This,
        BSTR *namespaceURI);

    HRESULT (STDMETHODCALLTYPE *get_prefix)(
        IXMLDOMCDATASection* This,
        BSTR *prefixString);

    HRESULT (STDMETHODCALLTYPE *get_baseName)(
        IXMLDOMCDATASection* This,
        BSTR *nameString);

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXMLDOMCDATASection* This,
        IXMLDOMNode *stylesheet,
        VARIANT outputObject);

    /*** IXMLDOMCharacterData methods ***/
    HRESULT (STDMETHODCALLTYPE *get_data)(
        IXMLDOMCDATASection* This,
        BSTR *data);

    HRESULT (STDMETHODCALLTYPE *put_data)(
        IXMLDOMCDATASection* This,
        BSTR data);

    HRESULT (STDMETHODCALLTYPE *get_length)(
        IXMLDOMCDATASection* This,
        LONG *dataLength);

    HRESULT (STDMETHODCALLTYPE *substringData)(
        IXMLDOMCDATASection* This,
        LONG offset,
        LONG count,
        BSTR *data);

    HRESULT (STDMETHODCALLTYPE *appendData)(
        IXMLDOMCDATASection* This,
        BSTR data);

    HRESULT (STDMETHODCALLTYPE *insertData)(
        IXMLDOMCDATASection* This,
        LONG offset,
        BSTR data);

    HRESULT (STDMETHODCALLTYPE *deleteData)(
        IXMLDOMCDATASection* This,
        LONG offset,
        LONG count);

    HRESULT (STDMETHODCALLTYPE *replaceData)(
        IXMLDOMCDATASection* This,
        LONG offset,
        LONG count,
        BSTR data);

    /*** IXMLDOMText methods ***/
    HRESULT (STDMETHODCALLTYPE *splitText)(
        IXMLDOMCDATASection* This,
        LONG offset,
        IXMLDOMText **rightHandTextNode);

    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,name) (This)->lpVtbl->get_nodeName(This,name)
#define IXMLDOMCDATASection_get_nodeValue(This,value) (This)->lpVtbl->get_nodeValue(This,value)
#define IXMLDOMCDATASection_put_nodeValue(This,value) (This)->lpVtbl->put_nodeValue(This,value)
#define IXMLDOMCDATASection_get_nodeType(This,type) (This)->lpVtbl->get_nodeType(This,type)
#define IXMLDOMCDATASection_get_parentNode(This,parent) (This)->lpVtbl->get_parentNode(This,parent)
#define IXMLDOMCDATASection_get_childNodes(This,childList) (This)->lpVtbl->get_childNodes(This,childList)
#define IXMLDOMCDATASection_get_firstChild(This,firstChild) (This)->lpVtbl->get_firstChild(This,firstChild)
#define IXMLDOMCDATASection_get_lastChild(This,lastChild) (This)->lpVtbl->get_lastChild(This,lastChild)
#define IXMLDOMCDATASection_get_previousSibling(This,previousSibling) (This)->lpVtbl->get_previousSibling(This,previousSibling)
#define IXMLDOMCDATASection_get_nextSibling(This,nextSibling) (This)->lpVtbl->get_nextSibling(This,nextSibling)
#define IXMLDOMCDATASection_get_attributes(This,attributeMap) (This)->lpVtbl->get_attributes(This,attributeMap)
#define IXMLDOMCDATASection_insertBefore(This,newChild,refChild,outNewChild) (This)->lpVtbl->insertBefore(This,newChild,refChild,outNewChild)
#define IXMLDOMCDATASection_replaceChild(This,newChild,oldChild,outOldChild) (This)->lpVtbl->replaceChild(This,newChild,oldChild,outOldChild)
#define IXMLDOMCDATASection_removeChild(This,childNode,oldChild) (This)->lpVtbl->removeChild(This,childNode,oldChild)
#define IXMLDOMCDATASection_appendChild(This,newChild,outNewChild) (This)->lpVtbl->appendChild(This,newChild,outNewChild)
#define IXMLDOMCDATASection_hasChildNodes(This,hasChild) (This)->lpVtbl->hasChildNodes(This,hasChild)
#define IXMLDOMCDATASection_get_ownerDocument(This,DOMDocument) (This)->lpVtbl->get_ownerDocument(This,DOMDocument)
#define IXMLDOMCDATASection_cloneNode(This,deep,cloneRoot) (This)->lpVtbl->cloneNode(This,deep,cloneRoot)
#define IXMLDOMCDATASection_get_nodeTypeString(This,nodeType) (This)->lpVtbl->get_nodeTypeString(This,nodeType)
#define IXMLDOMCDATASection_get_text(This,text) (This)->lpVtbl->get_text(This,text)
#define IXMLDOMCDATASection_put_text(This,text) (This)->lpVtbl->put_text(This,text)
#define IXMLDOMCDATASection_get_specified(This,isSpecified) (This)->lpVtbl->get_specified(This,isSpecified)
#define IXMLDOMCDATASection_get_definition(This,definitionNode) (This)->lpVtbl->get_definition(This,definitionNode)
#define IXMLDOMCDATASection_get_nodeTypedValue(This,typedValue) (This)->lpVtbl->get_nodeTypedValue(This,typedValue)
#define IXMLDOMCDATASection_put_nodeTypedValue(This,typedValue) (This)->lpVtbl->put_nodeTypedValue(This,typedValue)
#define IXMLDOMCDATASection_get_dataType(This,dataTypeName) (This)->lpVtbl->get_dataType(This,dataTypeName)
#define IXMLDOMCDATASection_put_dataType(This,dataTypeName) (This)->lpVtbl->put_dataType(This,dataTypeName)
#define IXMLDOMCDATASection_get_xml(This,xmlString) (This)->lpVtbl->get_xml(This,xmlString)
#define IXMLDOMCDATASection_transformNode(This,styleSheet,xmlString) (This)->lpVtbl->transformNode(This,styleSheet,xmlString)
#define IXMLDOMCDATASection_selectNodes(This,queryString,resultList) (This)->lpVtbl->selectNodes(This,queryString,resultList)
#define IXMLDOMCDATASection_selectSingleNode(This,queryString,resultNode) (This)->lpVtbl->selectSingleNode(This,queryString,resultNode)
#define IXMLDOMCDATASection_get_parsed(This,isParsed) (This)->lpVtbl->get_parsed(This,isParsed)
#define IXMLDOMCDATASection_get_namespaceURI(This,namespaceURI) (This)->lpVtbl->get_namespaceURI(This,namespaceURI)
#define IXMLDOMCDATASection_get_prefix(This,prefixString) (This)->lpVtbl->get_prefix(This,prefixString)
#define IXMLDOMCDATASection_get_baseName(This,nameString) (This)->lpVtbl->get_baseName(This,nameString)
#define IXMLDOMCDATASection_transformNodeToObject(This,stylesheet,outputObject) (This)->lpVtbl->transformNodeToObject(This,stylesheet,outputObject)
/*** IXMLDOMCharacterData methods ***/
#define IXMLDOMCDATASection_get_data(This,data) (This)->lpVtbl->get_data(This,data)
#define IXMLDOMCDATASection_put_data(This,data) (This)->lpVtbl->put_data(This,data)
#define IXMLDOMCDATASection_get_length(This,dataLength) (This)->lpVtbl->get_length(This,dataLength)
#define IXMLDOMCDATASection_substringData(This,offset,count,data) (This)->lpVtbl->substringData(This,offset,count,data)
#define IXMLDOMCDATASection_appendData(This,data) (This)->lpVtbl->appendData(This,data)
#define IXMLDOMCDATASection_insertData(This,offset,data) (This)->lpVtbl->insertData(This,offset,data)
#define IXMLDOMCDATASection_deleteData(This,offset,count) (This)->lpVtbl->deleteData(This,offset,count)
#define IXMLDOMCDATASection_replaceData(This,offset,count,data) (This)->lpVtbl->replaceData(This,offset,count,data)
/*** IXMLDOMText methods ***/
#define IXMLDOMCDATASection_splitText(This,offset,rightHandTextNode) (This)->lpVtbl->splitText(This,offset,rightHandTextNode)
#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)
MIDL_INTERFACE("2933bf8b-7b36-11d2-b20e-00c04f983e60")
IXMLDOMDocumentType : public IXMLDOMNode
{
    virtual HRESULT STDMETHODCALLTYPE get_name(
        BSTR *rootName) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_entities(
        IXMLDOMNamedNodeMap **entityMap) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_notations(
        IXMLDOMNamedNodeMap **notationMap) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IXMLDOMDocumentType, 0x2933bf8b, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60)
#endif
#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 *name);

    HRESULT (STDMETHODCALLTYPE *get_nodeValue)(
        IXMLDOMDocumentType* This,
        VARIANT *value);

    HRESULT (STDMETHODCALLTYPE *put_nodeValue)(
        IXMLDOMDocumentType* This,
        VARIANT value);

    HRESULT (STDMETHODCALLTYPE *get_nodeType)(
        IXMLDOMDocumentType* This,
        DOMNodeType *type);

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

    HRESULT (STDMETHODCALLTYPE *get_childNodes)(
        IXMLDOMDocumentType* This,
        IXMLDOMNodeList **childList);

    HRESULT (STDMETHODCALLTYPE *get_firstChild)(
        IXMLDOMDocumentType* This,
        IXMLDOMNode **firstChild);

    HRESULT (STDMETHODCALLTYPE *get_lastChild)(
        IXMLDOMDocumentType* This,
        IXMLDOMNode **lastChild);

    HRESULT (STDMETHODCALLTYPE *get_previousSibling)(
        IXMLDOMDocumentType* This,
        IXMLDOMNode **previousSibling);

    HRESULT (STDMETHODCALLTYPE *get_nextSibling)(
        IXMLDOMDocumentType* This,
        IXMLDOMNode **nextSibling);

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

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXMLDOMDocumentType* This,
        IXMLDOMNode *newChild,
        VARIANT refChild,
        IXMLDOMNode **outNewChild);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXMLDOMDocumentType* This,
        IXMLDOMNode *newChild,
        IXMLDOMNode *oldChild,
        IXMLDOMNode **outOldChild);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXMLDOMDocumentType* This,
        IXMLDOMNode *childNode,
        IXMLDOMNode **oldChild);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXMLDOMDocumentType* This,
        IXMLDOMNode *newChild,
        IXMLDOMNode **outNewChild);

    HRESULT (STDMETHODCALLTYPE *hasChildNodes)(
        IXMLDOMDocumentType* This,
        VARIANT_BOOL *hasChild);

    HRESULT (STDMETHODCALLTYPE *get_ownerDocument)(
        IXMLDOMDocumentType* This,
        IXMLDOMDocument **DOMDocument);

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXMLDOMDocumentType* This,
        VARIANT_BOOL deep,
        IXMLDOMNode **cloneRoot);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypeString)(
        IXMLDOMDocumentType* This,
        BSTR *nodeType);

    HRESULT (STDMETHODCALLTYPE *get_text)(
        IXMLDOMDocumentType* This,
        BSTR *text);

    HRESULT (STDMETHODCALLTYPE *put_text)(
        IXMLDOMDocumentType* This,
        BSTR text);

    HRESULT (STDMETHODCALLTYPE *get_specified)(
        IXMLDOMDocumentType* This,
        VARIANT_BOOL *isSpecified);

    HRESULT (STDMETHODCALLTYPE *get_definition)(
        IXMLDOMDocumentType* This,
        IXMLDOMNode **definitionNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypedValue)(
        IXMLDOMDocumentType* This,
        VARIANT *typedValue);

    HRESULT (STDMETHODCALLTYPE *put_nodeTypedValue)(
        IXMLDOMDocumentType* This,
        VARIANT typedValue);

    HRESULT (STDMETHODCALLTYPE *get_dataType)(
        IXMLDOMDocumentType* This,
        VARIANT *dataTypeName);

    HRESULT (STDMETHODCALLTYPE *put_dataType)(
        IXMLDOMDocumentType* This,
        BSTR dataTypeName);

    HRESULT (STDMETHODCALLTYPE *get_xml)(
        IXMLDOMDocumentType* This,
        BSTR *xmlString);

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXMLDOMDocumentType* This,
        IXMLDOMNode *styleSheet,
        BSTR *xmlString);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXMLDOMDocumentType* This,
        BSTR queryString,
        IXMLDOMNodeList **resultList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXMLDOMDocumentType* This,
        BSTR queryString,
        IXMLDOMNode **resultNode);

    HRESULT (STDMETHODCALLTYPE *get_parsed)(
        IXMLDOMDocumentType* This,
        VARIANT_BOOL *isParsed);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        IXMLDOMDocumentType* This,
        BSTR *namespaceURI);

    HRESULT (STDMETHODCALLTYPE *get_prefix)(
        IXMLDOMDocumentType* This,
        BSTR *prefixString);

    HRESULT (STDMETHODCALLTYPE *get_baseName)(
        IXMLDOMDocumentType* This,
        BSTR *nameString);

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXMLDOMDocumentType* This,
        IXMLDOMNode *stylesheet,
        VARIANT outputObject);

    /*** IXMLDOMDocumentType methods ***/
    HRESULT (STDMETHODCALLTYPE *get_name)(
        IXMLDOMDocumentType* This,
        BSTR *rootName);

    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,name) (This)->lpVtbl->get_nodeName(This,name)
#define IXMLDOMDocumentType_get_nodeValue(This,value) (This)->lpVtbl->get_nodeValue(This,value)
#define IXMLDOMDocumentType_put_nodeValue(This,value) (This)->lpVtbl->put_nodeValue(This,value)
#define IXMLDOMDocumentType_get_nodeType(This,type) (This)->lpVtbl->get_nodeType(This,type)
#define IXMLDOMDocumentType_get_parentNode(This,parent) (This)->lpVtbl->get_parentNode(This,parent)
#define IXMLDOMDocumentType_get_childNodes(This,childList) (This)->lpVtbl->get_childNodes(This,childList)
#define IXMLDOMDocumentType_get_firstChild(This,firstChild) (This)->lpVtbl->get_firstChild(This,firstChild)
#define IXMLDOMDocumentType_get_lastChild(This,lastChild) (This)->lpVtbl->get_lastChild(This,lastChild)
#define IXMLDOMDocumentType_get_previousSibling(This,previousSibling) (This)->lpVtbl->get_previousSibling(This,previousSibling)
#define IXMLDOMDocumentType_get_nextSibling(This,nextSibling) (This)->lpVtbl->get_nextSibling(This,nextSibling)
#define IXMLDOMDocumentType_get_attributes(This,attributeMap) (This)->lpVtbl->get_attributes(This,attributeMap)
#define IXMLDOMDocumentType_insertBefore(This,newChild,refChild,outNewChild) (This)->lpVtbl->insertBefore(This,newChild,refChild,outNewChild)
#define IXMLDOMDocumentType_replaceChild(This,newChild,oldChild,outOldChild) (This)->lpVtbl->replaceChild(This,newChild,oldChild,outOldChild)
#define IXMLDOMDocumentType_removeChild(This,childNode,oldChild) (This)->lpVtbl->removeChild(This,childNode,oldChild)
#define IXMLDOMDocumentType_appendChild(This,newChild,outNewChild) (This)->lpVtbl->appendChild(This,newChild,outNewChild)
#define IXMLDOMDocumentType_hasChildNodes(This,hasChild) (This)->lpVtbl->hasChildNodes(This,hasChild)
#define IXMLDOMDocumentType_get_ownerDocument(This,DOMDocument) (This)->lpVtbl->get_ownerDocument(This,DOMDocument)
#define IXMLDOMDocumentType_cloneNode(This,deep,cloneRoot) (This)->lpVtbl->cloneNode(This,deep,cloneRoot)
#define IXMLDOMDocumentType_get_nodeTypeString(This,nodeType) (This)->lpVtbl->get_nodeTypeString(This,nodeType)
#define IXMLDOMDocumentType_get_text(This,text) (This)->lpVtbl->get_text(This,text)
#define IXMLDOMDocumentType_put_text(This,text) (This)->lpVtbl->put_text(This,text)
#define IXMLDOMDocumentType_get_specified(This,isSpecified) (This)->lpVtbl->get_specified(This,isSpecified)
#define IXMLDOMDocumentType_get_definition(This,definitionNode) (This)->lpVtbl->get_definition(This,definitionNode)
#define IXMLDOMDocumentType_get_nodeTypedValue(This,typedValue) (This)->lpVtbl->get_nodeTypedValue(This,typedValue)
#define IXMLDOMDocumentType_put_nodeTypedValue(This,typedValue) (This)->lpVtbl->put_nodeTypedValue(This,typedValue)
#define IXMLDOMDocumentType_get_dataType(This,dataTypeName) (This)->lpVtbl->get_dataType(This,dataTypeName)
#define IXMLDOMDocumentType_put_dataType(This,dataTypeName) (This)->lpVtbl->put_dataType(This,dataTypeName)
#define IXMLDOMDocumentType_get_xml(This,xmlString) (This)->lpVtbl->get_xml(This,xmlString)
#define IXMLDOMDocumentType_transformNode(This,styleSheet,xmlString) (This)->lpVtbl->transformNode(This,styleSheet,xmlString)
#define IXMLDOMDocumentType_selectNodes(This,queryString,resultList) (This)->lpVtbl->selectNodes(This,queryString,resultList)
#define IXMLDOMDocumentType_selectSingleNode(This,queryString,resultNode) (This)->lpVtbl->selectSingleNode(This,queryString,resultNode)
#define IXMLDOMDocumentType_get_parsed(This,isParsed) (This)->lpVtbl->get_parsed(This,isParsed)
#define IXMLDOMDocumentType_get_namespaceURI(This,namespaceURI) (This)->lpVtbl->get_namespaceURI(This,namespaceURI)
#define IXMLDOMDocumentType_get_prefix(This,prefixString) (This)->lpVtbl->get_prefix(This,prefixString)
#define IXMLDOMDocumentType_get_baseName(This,nameString) (This)->lpVtbl->get_baseName(This,nameString)
#define IXMLDOMDocumentType_transformNodeToObject(This,stylesheet,outputObject) (This)->lpVtbl->transformNodeToObject(This,stylesheet,outputObject)
/*** IXMLDOMDocumentType methods ***/
#define IXMLDOMDocumentType_get_name(This,rootName) (This)->lpVtbl->get_name(This,rootName)
#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 *rootName);
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)
MIDL_INTERFACE("2933bf8c-7b36-11d2-b20e-00c04f983e60")
IXMLDOMNotation : public IXMLDOMNode
{
    virtual HRESULT STDMETHODCALLTYPE get_publicId(
        VARIANT *publicId) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_systemId(
        VARIANT *systemId) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IXMLDOMNotation, 0x2933bf8c, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60)
#endif
#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 *name);

    HRESULT (STDMETHODCALLTYPE *get_nodeValue)(
        IXMLDOMNotation* This,
        VARIANT *value);

    HRESULT (STDMETHODCALLTYPE *put_nodeValue)(
        IXMLDOMNotation* This,
        VARIANT value);

    HRESULT (STDMETHODCALLTYPE *get_nodeType)(
        IXMLDOMNotation* This,
        DOMNodeType *type);

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

    HRESULT (STDMETHODCALLTYPE *get_childNodes)(
        IXMLDOMNotation* This,
        IXMLDOMNodeList **childList);

    HRESULT (STDMETHODCALLTYPE *get_firstChild)(
        IXMLDOMNotation* This,
        IXMLDOMNode **firstChild);

    HRESULT (STDMETHODCALLTYPE *get_lastChild)(
        IXMLDOMNotation* This,
        IXMLDOMNode **lastChild);

    HRESULT (STDMETHODCALLTYPE *get_previousSibling)(
        IXMLDOMNotation* This,
        IXMLDOMNode **previousSibling);

    HRESULT (STDMETHODCALLTYPE *get_nextSibling)(
        IXMLDOMNotation* This,
        IXMLDOMNode **nextSibling);

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

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXMLDOMNotation* This,
        IXMLDOMNode *newChild,
        VARIANT refChild,
        IXMLDOMNode **outNewChild);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXMLDOMNotation* This,
        IXMLDOMNode *newChild,
        IXMLDOMNode *oldChild,
        IXMLDOMNode **outOldChild);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXMLDOMNotation* This,
        IXMLDOMNode *childNode,
        IXMLDOMNode **oldChild);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXMLDOMNotation* This,
        IXMLDOMNode *newChild,
        IXMLDOMNode **outNewChild);

    HRESULT (STDMETHODCALLTYPE *hasChildNodes)(
        IXMLDOMNotation* This,
        VARIANT_BOOL *hasChild);

    HRESULT (STDMETHODCALLTYPE *get_ownerDocument)(
        IXMLDOMNotation* This,
        IXMLDOMDocument **DOMDocument);

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXMLDOMNotation* This,
        VARIANT_BOOL deep,
        IXMLDOMNode **cloneRoot);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypeString)(
        IXMLDOMNotation* This,
        BSTR *nodeType);

    HRESULT (STDMETHODCALLTYPE *get_text)(
        IXMLDOMNotation* This,
        BSTR *text);

    HRESULT (STDMETHODCALLTYPE *put_text)(
        IXMLDOMNotation* This,
        BSTR text);

    HRESULT (STDMETHODCALLTYPE *get_specified)(
        IXMLDOMNotation* This,
        VARIANT_BOOL *isSpecified);

    HRESULT (STDMETHODCALLTYPE *get_definition)(
        IXMLDOMNotation* This,
        IXMLDOMNode **definitionNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypedValue)(
        IXMLDOMNotation* This,
        VARIANT *typedValue);

    HRESULT (STDMETHODCALLTYPE *put_nodeTypedValue)(
        IXMLDOMNotation* This,
        VARIANT typedValue);

    HRESULT (STDMETHODCALLTYPE *get_dataType)(
        IXMLDOMNotation* This,
        VARIANT *dataTypeName);

    HRESULT (STDMETHODCALLTYPE *put_dataType)(
        IXMLDOMNotation* This,
        BSTR dataTypeName);

    HRESULT (STDMETHODCALLTYPE *get_xml)(
        IXMLDOMNotation* This,
        BSTR *xmlString);

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXMLDOMNotation* This,
        IXMLDOMNode *styleSheet,
        BSTR *xmlString);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXMLDOMNotation* This,
        BSTR queryString,
        IXMLDOMNodeList **resultList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXMLDOMNotation* This,
        BSTR queryString,
        IXMLDOMNode **resultNode);

    HRESULT (STDMETHODCALLTYPE *get_parsed)(
        IXMLDOMNotation* This,
        VARIANT_BOOL *isParsed);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        IXMLDOMNotation* This,
        BSTR *namespaceURI);

    HRESULT (STDMETHODCALLTYPE *get_prefix)(
        IXMLDOMNotation* This,
        BSTR *prefixString);

    HRESULT (STDMETHODCALLTYPE *get_baseName)(
        IXMLDOMNotation* This,
        BSTR *nameString);

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXMLDOMNotation* This,
        IXMLDOMNode *stylesheet,
        VARIANT outputObject);

    /*** IXMLDOMNotation methods ***/
    HRESULT (STDMETHODCALLTYPE *get_publicId)(
        IXMLDOMNotation* This,
        VARIANT *publicId);

    HRESULT (STDMETHODCALLTYPE *get_systemId)(
        IXMLDOMNotation* This,
        VARIANT *systemId);

    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,name) (This)->lpVtbl->get_nodeName(This,name)
#define IXMLDOMNotation_get_nodeValue(This,value) (This)->lpVtbl->get_nodeValue(This,value)
#define IXMLDOMNotation_put_nodeValue(This,value) (This)->lpVtbl->put_nodeValue(This,value)
#define IXMLDOMNotation_get_nodeType(This,type) (This)->lpVtbl->get_nodeType(This,type)
#define IXMLDOMNotation_get_parentNode(This,parent) (This)->lpVtbl->get_parentNode(This,parent)
#define IXMLDOMNotation_get_childNodes(This,childList) (This)->lpVtbl->get_childNodes(This,childList)
#define IXMLDOMNotation_get_firstChild(This,firstChild) (This)->lpVtbl->get_firstChild(This,firstChild)
#define IXMLDOMNotation_get_lastChild(This,lastChild) (This)->lpVtbl->get_lastChild(This,lastChild)
#define IXMLDOMNotation_get_previousSibling(This,previousSibling) (This)->lpVtbl->get_previousSibling(This,previousSibling)
#define IXMLDOMNotation_get_nextSibling(This,nextSibling) (This)->lpVtbl->get_nextSibling(This,nextSibling)
#define IXMLDOMNotation_get_attributes(This,attributeMap) (This)->lpVtbl->get_attributes(This,attributeMap)
#define IXMLDOMNotation_insertBefore(This,newChild,refChild,outNewChild) (This)->lpVtbl->insertBefore(This,newChild,refChild,outNewChild)
#define IXMLDOMNotation_replaceChild(This,newChild,oldChild,outOldChild) (This)->lpVtbl->replaceChild(This,newChild,oldChild,outOldChild)
#define IXMLDOMNotation_removeChild(This,childNode,oldChild) (This)->lpVtbl->removeChild(This,childNode,oldChild)
#define IXMLDOMNotation_appendChild(This,newChild,outNewChild) (This)->lpVtbl->appendChild(This,newChild,outNewChild)
#define IXMLDOMNotation_hasChildNodes(This,hasChild) (This)->lpVtbl->hasChildNodes(This,hasChild)
#define IXMLDOMNotation_get_ownerDocument(This,DOMDocument) (This)->lpVtbl->get_ownerDocument(This,DOMDocument)
#define IXMLDOMNotation_cloneNode(This,deep,cloneRoot) (This)->lpVtbl->cloneNode(This,deep,cloneRoot)
#define IXMLDOMNotation_get_nodeTypeString(This,nodeType) (This)->lpVtbl->get_nodeTypeString(This,nodeType)
#define IXMLDOMNotation_get_text(This,text) (This)->lpVtbl->get_text(This,text)
#define IXMLDOMNotation_put_text(This,text) (This)->lpVtbl->put_text(This,text)
#define IXMLDOMNotation_get_specified(This,isSpecified) (This)->lpVtbl->get_specified(This,isSpecified)
#define IXMLDOMNotation_get_definition(This,definitionNode) (This)->lpVtbl->get_definition(This,definitionNode)
#define IXMLDOMNotation_get_nodeTypedValue(This,typedValue) (This)->lpVtbl->get_nodeTypedValue(This,typedValue)
#define IXMLDOMNotation_put_nodeTypedValue(This,typedValue) (This)->lpVtbl->put_nodeTypedValue(This,typedValue)
#define IXMLDOMNotation_get_dataType(This,dataTypeName) (This)->lpVtbl->get_dataType(This,dataTypeName)
#define IXMLDOMNotation_put_dataType(This,dataTypeName) (This)->lpVtbl->put_dataType(This,dataTypeName)
#define IXMLDOMNotation_get_xml(This,xmlString) (This)->lpVtbl->get_xml(This,xmlString)
#define IXMLDOMNotation_transformNode(This,styleSheet,xmlString) (This)->lpVtbl->transformNode(This,styleSheet,xmlString)
#define IXMLDOMNotation_selectNodes(This,queryString,resultList) (This)->lpVtbl->selectNodes(This,queryString,resultList)
#define IXMLDOMNotation_selectSingleNode(This,queryString,resultNode) (This)->lpVtbl->selectSingleNode(This,queryString,resultNode)
#define IXMLDOMNotation_get_parsed(This,isParsed) (This)->lpVtbl->get_parsed(This,isParsed)
#define IXMLDOMNotation_get_namespaceURI(This,namespaceURI) (This)->lpVtbl->get_namespaceURI(This,namespaceURI)
#define IXMLDOMNotation_get_prefix(This,prefixString) (This)->lpVtbl->get_prefix(This,prefixString)
#define IXMLDOMNotation_get_baseName(This,nameString) (This)->lpVtbl->get_baseName(This,nameString)
#define IXMLDOMNotation_transformNodeToObject(This,stylesheet,outputObject) (This)->lpVtbl->transformNodeToObject(This,stylesheet,outputObject)
/*** IXMLDOMNotation methods ***/
#define IXMLDOMNotation_get_publicId(This,publicId) (This)->lpVtbl->get_publicId(This,publicId)
#define IXMLDOMNotation_get_systemId(This,systemId) (This)->lpVtbl->get_systemId(This,systemId)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLDOMNotation_get_publicId_Proxy(
    IXMLDOMNotation* This,
    VARIANT *publicId);
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 *systemId);
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)
MIDL_INTERFACE("2933bf8d-7b36-11d2-b20e-00c04f983e60")
IXMLDOMEntity : public IXMLDOMNode
{
    virtual HRESULT STDMETHODCALLTYPE get_publicId(
        VARIANT *publicId) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_systemId(
        VARIANT *systemId) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_notationName(
        BSTR *name) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IXMLDOMEntity, 0x2933bf8d, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60)
#endif
#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 *name);

    HRESULT (STDMETHODCALLTYPE *get_nodeValue)(
        IXMLDOMEntity* This,
        VARIANT *value);

    HRESULT (STDMETHODCALLTYPE *put_nodeValue)(
        IXMLDOMEntity* This,
        VARIANT value);

    HRESULT (STDMETHODCALLTYPE *get_nodeType)(
        IXMLDOMEntity* This,
        DOMNodeType *type);

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

    HRESULT (STDMETHODCALLTYPE *get_childNodes)(
        IXMLDOMEntity* This,
        IXMLDOMNodeList **childList);

    HRESULT (STDMETHODCALLTYPE *get_firstChild)(
        IXMLDOMEntity* This,
        IXMLDOMNode **firstChild);

    HRESULT (STDMETHODCALLTYPE *get_lastChild)(
        IXMLDOMEntity* This,
        IXMLDOMNode **lastChild);

    HRESULT (STDMETHODCALLTYPE *get_previousSibling)(
        IXMLDOMEntity* This,
        IXMLDOMNode **previousSibling);

    HRESULT (STDMETHODCALLTYPE *get_nextSibling)(
        IXMLDOMEntity* This,
        IXMLDOMNode **nextSibling);

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

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXMLDOMEntity* This,
        IXMLDOMNode *newChild,
        VARIANT refChild,
        IXMLDOMNode **outNewChild);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXMLDOMEntity* This,
        IXMLDOMNode *newChild,
        IXMLDOMNode *oldChild,
        IXMLDOMNode **outOldChild);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXMLDOMEntity* This,
        IXMLDOMNode *childNode,
        IXMLDOMNode **oldChild);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXMLDOMEntity* This,
        IXMLDOMNode *newChild,
        IXMLDOMNode **outNewChild);

    HRESULT (STDMETHODCALLTYPE *hasChildNodes)(
        IXMLDOMEntity* This,
        VARIANT_BOOL *hasChild);

    HRESULT (STDMETHODCALLTYPE *get_ownerDocument)(
        IXMLDOMEntity* This,
        IXMLDOMDocument **DOMDocument);

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXMLDOMEntity* This,
        VARIANT_BOOL deep,
        IXMLDOMNode **cloneRoot);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypeString)(
        IXMLDOMEntity* This,
        BSTR *nodeType);

    HRESULT (STDMETHODCALLTYPE *get_text)(
        IXMLDOMEntity* This,
        BSTR *text);

    HRESULT (STDMETHODCALLTYPE *put_text)(
        IXMLDOMEntity* This,
        BSTR text);

    HRESULT (STDMETHODCALLTYPE *get_specified)(
        IXMLDOMEntity* This,
        VARIANT_BOOL *isSpecified);

    HRESULT (STDMETHODCALLTYPE *get_definition)(
        IXMLDOMEntity* This,
        IXMLDOMNode **definitionNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypedValue)(
        IXMLDOMEntity* This,
        VARIANT *typedValue);

    HRESULT (STDMETHODCALLTYPE *put_nodeTypedValue)(
        IXMLDOMEntity* This,
        VARIANT typedValue);

    HRESULT (STDMETHODCALLTYPE *get_dataType)(
        IXMLDOMEntity* This,
        VARIANT *dataTypeName);

    HRESULT (STDMETHODCALLTYPE *put_dataType)(
        IXMLDOMEntity* This,
        BSTR dataTypeName);

    HRESULT (STDMETHODCALLTYPE *get_xml)(
        IXMLDOMEntity* This,
        BSTR *xmlString);

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXMLDOMEntity* This,
        IXMLDOMNode *styleSheet,
        BSTR *xmlString);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXMLDOMEntity* This,
        BSTR queryString,
        IXMLDOMNodeList **resultList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXMLDOMEntity* This,
        BSTR queryString,
        IXMLDOMNode **resultNode);

    HRESULT (STDMETHODCALLTYPE *get_parsed)(
        IXMLDOMEntity* This,
        VARIANT_BOOL *isParsed);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        IXMLDOMEntity* This,
        BSTR *namespaceURI);

    HRESULT (STDMETHODCALLTYPE *get_prefix)(
        IXMLDOMEntity* This,
        BSTR *prefixString);

    HRESULT (STDMETHODCALLTYPE *get_baseName)(
        IXMLDOMEntity* This,
        BSTR *nameString);

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXMLDOMEntity* This,
        IXMLDOMNode *stylesheet,
        VARIANT outputObject);

    /*** IXMLDOMEntity methods ***/
    HRESULT (STDMETHODCALLTYPE *get_publicId)(
        IXMLDOMEntity* This,
        VARIANT *publicId);

    HRESULT (STDMETHODCALLTYPE *get_systemId)(
        IXMLDOMEntity* This,
        VARIANT *systemId);

    HRESULT (STDMETHODCALLTYPE *get_notationName)(
        IXMLDOMEntity* This,
        BSTR *name);

    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,name) (This)->lpVtbl->get_nodeName(This,name)
#define IXMLDOMEntity_get_nodeValue(This,value) (This)->lpVtbl->get_nodeValue(This,value)
#define IXMLDOMEntity_put_nodeValue(This,value) (This)->lpVtbl->put_nodeValue(This,value)
#define IXMLDOMEntity_get_nodeType(This,type) (This)->lpVtbl->get_nodeType(This,type)
#define IXMLDOMEntity_get_parentNode(This,parent) (This)->lpVtbl->get_parentNode(This,parent)
#define IXMLDOMEntity_get_childNodes(This,childList) (This)->lpVtbl->get_childNodes(This,childList)
#define IXMLDOMEntity_get_firstChild(This,firstChild) (This)->lpVtbl->get_firstChild(This,firstChild)
#define IXMLDOMEntity_get_lastChild(This,lastChild) (This)->lpVtbl->get_lastChild(This,lastChild)
#define IXMLDOMEntity_get_previousSibling(This,previousSibling) (This)->lpVtbl->get_previousSibling(This,previousSibling)
#define IXMLDOMEntity_get_nextSibling(This,nextSibling) (This)->lpVtbl->get_nextSibling(This,nextSibling)
#define IXMLDOMEntity_get_attributes(This,attributeMap) (This)->lpVtbl->get_attributes(This,attributeMap)
#define IXMLDOMEntity_insertBefore(This,newChild,refChild,outNewChild) (This)->lpVtbl->insertBefore(This,newChild,refChild,outNewChild)
#define IXMLDOMEntity_replaceChild(This,newChild,oldChild,outOldChild) (This)->lpVtbl->replaceChild(This,newChild,oldChild,outOldChild)
#define IXMLDOMEntity_removeChild(This,childNode,oldChild) (This)->lpVtbl->removeChild(This,childNode,oldChild)
#define IXMLDOMEntity_appendChild(This,newChild,outNewChild) (This)->lpVtbl->appendChild(This,newChild,outNewChild)
#define IXMLDOMEntity_hasChildNodes(This,hasChild) (This)->lpVtbl->hasChildNodes(This,hasChild)
#define IXMLDOMEntity_get_ownerDocument(This,DOMDocument) (This)->lpVtbl->get_ownerDocument(This,DOMDocument)
#define IXMLDOMEntity_cloneNode(This,deep,cloneRoot) (This)->lpVtbl->cloneNode(This,deep,cloneRoot)
#define IXMLDOMEntity_get_nodeTypeString(This,nodeType) (This)->lpVtbl->get_nodeTypeString(This,nodeType)
#define IXMLDOMEntity_get_text(This,text) (This)->lpVtbl->get_text(This,text)
#define IXMLDOMEntity_put_text(This,text) (This)->lpVtbl->put_text(This,text)
#define IXMLDOMEntity_get_specified(This,isSpecified) (This)->lpVtbl->get_specified(This,isSpecified)
#define IXMLDOMEntity_get_definition(This,definitionNode) (This)->lpVtbl->get_definition(This,definitionNode)
#define IXMLDOMEntity_get_nodeTypedValue(This,typedValue) (This)->lpVtbl->get_nodeTypedValue(This,typedValue)
#define IXMLDOMEntity_put_nodeTypedValue(This,typedValue) (This)->lpVtbl->put_nodeTypedValue(This,typedValue)
#define IXMLDOMEntity_get_dataType(This,dataTypeName) (This)->lpVtbl->get_dataType(This,dataTypeName)
#define IXMLDOMEntity_put_dataType(This,dataTypeName) (This)->lpVtbl->put_dataType(This,dataTypeName)
#define IXMLDOMEntity_get_xml(This,xmlString) (This)->lpVtbl->get_xml(This,xmlString)
#define IXMLDOMEntity_transformNode(This,styleSheet,xmlString) (This)->lpVtbl->transformNode(This,styleSheet,xmlString)
#define IXMLDOMEntity_selectNodes(This,queryString,resultList) (This)->lpVtbl->selectNodes(This,queryString,resultList)
#define IXMLDOMEntity_selectSingleNode(This,queryString,resultNode) (This)->lpVtbl->selectSingleNode(This,queryString,resultNode)
#define IXMLDOMEntity_get_parsed(This,isParsed) (This)->lpVtbl->get_parsed(This,isParsed)
#define IXMLDOMEntity_get_namespaceURI(This,namespaceURI) (This)->lpVtbl->get_namespaceURI(This,namespaceURI)
#define IXMLDOMEntity_get_prefix(This,prefixString) (This)->lpVtbl->get_prefix(This,prefixString)
#define IXMLDOMEntity_get_baseName(This,nameString) (This)->lpVtbl->get_baseName(This,nameString)
#define IXMLDOMEntity_transformNodeToObject(This,stylesheet,outputObject) (This)->lpVtbl->transformNodeToObject(This,stylesheet,outputObject)
/*** IXMLDOMEntity methods ***/
#define IXMLDOMEntity_get_publicId(This,publicId) (This)->lpVtbl->get_publicId(This,publicId)
#define IXMLDOMEntity_get_systemId(This,systemId) (This)->lpVtbl->get_systemId(This,systemId)
#define IXMLDOMEntity_get_notationName(This,name) (This)->lpVtbl->get_notationName(This,name)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLDOMEntity_get_publicId_Proxy(
    IXMLDOMEntity* This,
    VARIANT *publicId);
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 *systemId);
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 *name);
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)
MIDL_INTERFACE("2933bf8e-7b36-11d2-b20e-00c04f983e60")
IXMLDOMEntityReference : public IXMLDOMNode
{
};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IXMLDOMEntityReference, 0x2933bf8e, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60)
#endif
#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 *name);

    HRESULT (STDMETHODCALLTYPE *get_nodeValue)(
        IXMLDOMEntityReference* This,
        VARIANT *value);

    HRESULT (STDMETHODCALLTYPE *put_nodeValue)(
        IXMLDOMEntityReference* This,
        VARIANT value);

    HRESULT (STDMETHODCALLTYPE *get_nodeType)(
        IXMLDOMEntityReference* This,
        DOMNodeType *type);

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

    HRESULT (STDMETHODCALLTYPE *get_childNodes)(
        IXMLDOMEntityReference* This,
        IXMLDOMNodeList **childList);

    HRESULT (STDMETHODCALLTYPE *get_firstChild)(
        IXMLDOMEntityReference* This,
        IXMLDOMNode **firstChild);

    HRESULT (STDMETHODCALLTYPE *get_lastChild)(
        IXMLDOMEntityReference* This,
        IXMLDOMNode **lastChild);

    HRESULT (STDMETHODCALLTYPE *get_previousSibling)(
        IXMLDOMEntityReference* This,
        IXMLDOMNode **previousSibling);

    HRESULT (STDMETHODCALLTYPE *get_nextSibling)(
        IXMLDOMEntityReference* This,
        IXMLDOMNode **nextSibling);

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

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXMLDOMEntityReference* This,
        IXMLDOMNode *newChild,
        VARIANT refChild,
        IXMLDOMNode **outNewChild);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXMLDOMEntityReference* This,
        IXMLDOMNode *newChild,
        IXMLDOMNode *oldChild,
        IXMLDOMNode **outOldChild);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXMLDOMEntityReference* This,
        IXMLDOMNode *childNode,
        IXMLDOMNode **oldChild);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXMLDOMEntityReference* This,
        IXMLDOMNode *newChild,
        IXMLDOMNode **outNewChild);

    HRESULT (STDMETHODCALLTYPE *hasChildNodes)(
        IXMLDOMEntityReference* This,
        VARIANT_BOOL *hasChild);

    HRESULT (STDMETHODCALLTYPE *get_ownerDocument)(
        IXMLDOMEntityReference* This,
        IXMLDOMDocument **DOMDocument);

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXMLDOMEntityReference* This,
        VARIANT_BOOL deep,
        IXMLDOMNode **cloneRoot);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypeString)(
        IXMLDOMEntityReference* This,
        BSTR *nodeType);

    HRESULT (STDMETHODCALLTYPE *get_text)(
        IXMLDOMEntityReference* This,
        BSTR *text);

    HRESULT (STDMETHODCALLTYPE *put_text)(
        IXMLDOMEntityReference* This,
        BSTR text);

    HRESULT (STDMETHODCALLTYPE *get_specified)(
        IXMLDOMEntityReference* This,
        VARIANT_BOOL *isSpecified);

    HRESULT (STDMETHODCALLTYPE *get_definition)(
        IXMLDOMEntityReference* This,
        IXMLDOMNode **definitionNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypedValue)(
        IXMLDOMEntityReference* This,
        VARIANT *typedValue);

    HRESULT (STDMETHODCALLTYPE *put_nodeTypedValue)(
        IXMLDOMEntityReference* This,
        VARIANT typedValue);

    HRESULT (STDMETHODCALLTYPE *get_dataType)(
        IXMLDOMEntityReference* This,
        VARIANT *dataTypeName);

    HRESULT (STDMETHODCALLTYPE *put_dataType)(
        IXMLDOMEntityReference* This,
        BSTR dataTypeName);

    HRESULT (STDMETHODCALLTYPE *get_xml)(
        IXMLDOMEntityReference* This,
        BSTR *xmlString);

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXMLDOMEntityReference* This,
        IXMLDOMNode *styleSheet,
        BSTR *xmlString);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXMLDOMEntityReference* This,
        BSTR queryString,
        IXMLDOMNodeList **resultList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXMLDOMEntityReference* This,
        BSTR queryString,
        IXMLDOMNode **resultNode);

    HRESULT (STDMETHODCALLTYPE *get_parsed)(
        IXMLDOMEntityReference* This,
        VARIANT_BOOL *isParsed);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        IXMLDOMEntityReference* This,
        BSTR *namespaceURI);

    HRESULT (STDMETHODCALLTYPE *get_prefix)(
        IXMLDOMEntityReference* This,
        BSTR *prefixString);

    HRESULT (STDMETHODCALLTYPE *get_baseName)(
        IXMLDOMEntityReference* This,
        BSTR *nameString);

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXMLDOMEntityReference* This,
        IXMLDOMNode *stylesheet,
        VARIANT outputObject);

    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,name) (This)->lpVtbl->get_nodeName(This,name)
#define IXMLDOMEntityReference_get_nodeValue(This,value) (This)->lpVtbl->get_nodeValue(This,value)
#define IXMLDOMEntityReference_put_nodeValue(This,value) (This)->lpVtbl->put_nodeValue(This,value)
#define IXMLDOMEntityReference_get_nodeType(This,type) (This)->lpVtbl->get_nodeType(This,type)
#define IXMLDOMEntityReference_get_parentNode(This,parent) (This)->lpVtbl->get_parentNode(This,parent)
#define IXMLDOMEntityReference_get_childNodes(This,childList) (This)->lpVtbl->get_childNodes(This,childList)
#define IXMLDOMEntityReference_get_firstChild(This,firstChild) (This)->lpVtbl->get_firstChild(This,firstChild)
#define IXMLDOMEntityReference_get_lastChild(This,lastChild) (This)->lpVtbl->get_lastChild(This,lastChild)
#define IXMLDOMEntityReference_get_previousSibling(This,previousSibling) (This)->lpVtbl->get_previousSibling(This,previousSibling)
#define IXMLDOMEntityReference_get_nextSibling(This,nextSibling) (This)->lpVtbl->get_nextSibling(This,nextSibling)
#define IXMLDOMEntityReference_get_attributes(This,attributeMap) (This)->lpVtbl->get_attributes(This,attributeMap)
#define IXMLDOMEntityReference_insertBefore(This,newChild,refChild,outNewChild) (This)->lpVtbl->insertBefore(This,newChild,refChild,outNewChild)
#define IXMLDOMEntityReference_replaceChild(This,newChild,oldChild,outOldChild) (This)->lpVtbl->replaceChild(This,newChild,oldChild,outOldChild)
#define IXMLDOMEntityReference_removeChild(This,childNode,oldChild) (This)->lpVtbl->removeChild(This,childNode,oldChild)
#define IXMLDOMEntityReference_appendChild(This,newChild,outNewChild) (This)->lpVtbl->appendChild(This,newChild,outNewChild)
#define IXMLDOMEntityReference_hasChildNodes(This,hasChild) (This)->lpVtbl->hasChildNodes(This,hasChild)
#define IXMLDOMEntityReference_get_ownerDocument(This,DOMDocument) (This)->lpVtbl->get_ownerDocument(This,DOMDocument)
#define IXMLDOMEntityReference_cloneNode(This,deep,cloneRoot) (This)->lpVtbl->cloneNode(This,deep,cloneRoot)
#define IXMLDOMEntityReference_get_nodeTypeString(This,nodeType) (This)->lpVtbl->get_nodeTypeString(This,nodeType)
#define IXMLDOMEntityReference_get_text(This,text) (This)->lpVtbl->get_text(This,text)
#define IXMLDOMEntityReference_put_text(This,text) (This)->lpVtbl->put_text(This,text)
#define IXMLDOMEntityReference_get_specified(This,isSpecified) (This)->lpVtbl->get_specified(This,isSpecified)
#define IXMLDOMEntityReference_get_definition(This,definitionNode) (This)->lpVtbl->get_definition(This,definitionNode)
#define IXMLDOMEntityReference_get_nodeTypedValue(This,typedValue) (This)->lpVtbl->get_nodeTypedValue(This,typedValue)
#define IXMLDOMEntityReference_put_nodeTypedValue(This,typedValue) (This)->lpVtbl->put_nodeTypedValue(This,typedValue)
#define IXMLDOMEntityReference_get_dataType(This,dataTypeName) (This)->lpVtbl->get_dataType(This,dataTypeName)
#define IXMLDOMEntityReference_put_dataType(This,dataTypeName) (This)->lpVtbl->put_dataType(This,dataTypeName)
#define IXMLDOMEntityReference_get_xml(This,xmlString) (This)->lpVtbl->get_xml(This,xmlString)
#define IXMLDOMEntityReference_transformNode(This,styleSheet,xmlString) (This)->lpVtbl->transformNode(This,styleSheet,xmlString)
#define IXMLDOMEntityReference_selectNodes(This,queryString,resultList) (This)->lpVtbl->selectNodes(This,queryString,resultList)
#define IXMLDOMEntityReference_selectSingleNode(This,queryString,resultNode) (This)->lpVtbl->selectSingleNode(This,queryString,resultNode)
#define IXMLDOMEntityReference_get_parsed(This,isParsed) (This)->lpVtbl->get_parsed(This,isParsed)
#define IXMLDOMEntityReference_get_namespaceURI(This,namespaceURI) (This)->lpVtbl->get_namespaceURI(This,namespaceURI)
#define IXMLDOMEntityReference_get_prefix(This,prefixString) (This)->lpVtbl->get_prefix(This,prefixString)
#define IXMLDOMEntityReference_get_baseName(This,nameString) (This)->lpVtbl->get_baseName(This,nameString)
#define IXMLDOMEntityReference_transformNodeToObject(This,stylesheet,outputObject) (This)->lpVtbl->transformNodeToObject(This,stylesheet,outputObject)
#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)
MIDL_INTERFACE("2933bf8f-7b36-11d2-b20e-00c04f983e60")
IXMLDOMImplementation : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE hasFeature(
        BSTR feature,
        BSTR version,
        VARIANT_BOOL *pbool) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IXMLDOMImplementation, 0x2933bf8f, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60)
#endif
#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__ */

/*****************************************************************************
 * 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)
MIDL_INTERFACE("3efaa426-272f-11d2-836f-0000f87a7782")
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;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IXMLDOMParseError, 0x3efaa426, 0x272f, 0x11d2, 0x83,0x6f, 0x00,0x00,0xf8,0x7a,0x77,0x82)
#endif
#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__ */

/*****************************************************************************
 * 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)
MIDL_INTERFACE("3efaa427-272f-11d2-836f-0000f87a7782")
XMLDOMDocumentEvents : public IDispatch
{
};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(XMLDOMDocumentEvents, 0x3efaa427, 0x272f, 0x11d2, 0x83,0x6f, 0x00,0x00,0xf8,0x7a,0x77,0x82)
#endif
#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__ */

/*****************************************************************************
 * DOMDocument coclass
 */

DEFINE_GUID(CLSID_DOMDocument, 0x2933bf90, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60);

#ifdef __cplusplus
class DECLSPEC_UUID("2933bf90-7b36-11d2-b20e-00c04f983e60") DOMDocument;
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(DOMDocument, 0x2933bf90, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60)
#endif
#endif

/*****************************************************************************
 * DOMFreeThreadedDocument coclass
 */

DEFINE_GUID(CLSID_DOMFreeThreadedDocument, 0x2933bf91, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60);

#ifdef __cplusplus
class DECLSPEC_UUID("2933bf91-7b36-11d2-b20e-00c04f983e60") DOMFreeThreadedDocument;
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(DOMFreeThreadedDocument, 0x2933bf91, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60)
#endif
#endif

/*****************************************************************************
 * 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)
MIDL_INTERFACE("ed8c108d-4349-11d2-91a4-00c04f7969e8")
IXMLHttpRequest : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE open(
        BSTR bstrMethod,
        BSTR bstrUrl,
        VARIANT varAsync,
        VARIANT varUser,
        VARIANT varPassword) = 0;

    virtual HRESULT STDMETHODCALLTYPE setRequestHeader(
        BSTR bstrHeader,
        BSTR bstrValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE getResponseHeader(
        BSTR bstrHeader,
        BSTR *pbstrValue) = 0;

    virtual HRESULT STDMETHODCALLTYPE getAllResponseHeaders(
        BSTR *pbstrHeaders) = 0;

    virtual HRESULT STDMETHODCALLTYPE send(
        VARIANT varBody) = 0;

    virtual HRESULT STDMETHODCALLTYPE abort(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_status(
        LONG *plStatus) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_statusText(
        BSTR *bstrStatus) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_responseXML(
        IDispatch **ppBody) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_responseText(
        BSTR *pbstrBody) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_responseBody(
        VARIANT *pvarBody) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_responseStream(
        VARIANT *pvarBody) = 0;

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

    virtual HRESULT STDMETHODCALLTYPE put_onreadystatechange(
        IDispatch *pReadyStateSink) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IXMLHttpRequest, 0xed8c108d, 0x4349, 0x11d2, 0x91,0xa4, 0x00,0xc0,0x4f,0x79,0x69,0xe8)
#endif
#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 varUser,
        VARIANT varPassword);

    HRESULT (STDMETHODCALLTYPE *setRequestHeader)(
        IXMLHttpRequest* This,
        BSTR bstrHeader,
        BSTR bstrValue);

    HRESULT (STDMETHODCALLTYPE *getResponseHeader)(
        IXMLHttpRequest* This,
        BSTR bstrHeader,
        BSTR *pbstrValue);

    HRESULT (STDMETHODCALLTYPE *getAllResponseHeaders)(
        IXMLHttpRequest* This,
        BSTR *pbstrHeaders);

    HRESULT (STDMETHODCALLTYPE *send)(
        IXMLHttpRequest* This,
        VARIANT varBody);

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

    HRESULT (STDMETHODCALLTYPE *get_status)(
        IXMLHttpRequest* This,
        LONG *plStatus);

    HRESULT (STDMETHODCALLTYPE *get_statusText)(
        IXMLHttpRequest* This,
        BSTR *bstrStatus);

    HRESULT (STDMETHODCALLTYPE *get_responseXML)(
        IXMLHttpRequest* This,
        IDispatch **ppBody);

    HRESULT (STDMETHODCALLTYPE *get_responseText)(
        IXMLHttpRequest* This,
        BSTR *pbstrBody);

    HRESULT (STDMETHODCALLTYPE *get_responseBody)(
        IXMLHttpRequest* This,
        VARIANT *pvarBody);

    HRESULT (STDMETHODCALLTYPE *get_responseStream)(
        IXMLHttpRequest* This,
        VARIANT *pvarBody);

    HRESULT (STDMETHODCALLTYPE *get_readyState)(
        IXMLHttpRequest* This,
        LONG *plState);

    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,varUser,varPassword) (This)->lpVtbl->open(This,bstrMethod,bstrUrl,varAsync,varUser,varPassword)
#define IXMLHttpRequest_setRequestHeader(This,bstrHeader,bstrValue) (This)->lpVtbl->setRequestHeader(This,bstrHeader,bstrValue)
#define IXMLHttpRequest_getResponseHeader(This,bstrHeader,pbstrValue) (This)->lpVtbl->getResponseHeader(This,bstrHeader,pbstrValue)
#define IXMLHttpRequest_getAllResponseHeaders(This,pbstrHeaders) (This)->lpVtbl->getAllResponseHeaders(This,pbstrHeaders)
#define IXMLHttpRequest_send(This,varBody) (This)->lpVtbl->send(This,varBody)
#define IXMLHttpRequest_abort(This) (This)->lpVtbl->abort(This)
#define IXMLHttpRequest_get_status(This,plStatus) (This)->lpVtbl->get_status(This,plStatus)
#define IXMLHttpRequest_get_statusText(This,bstrStatus) (This)->lpVtbl->get_statusText(This,bstrStatus)
#define IXMLHttpRequest_get_responseXML(This,ppBody) (This)->lpVtbl->get_responseXML(This,ppBody)
#define IXMLHttpRequest_get_responseText(This,pbstrBody) (This)->lpVtbl->get_responseText(This,pbstrBody)
#define IXMLHttpRequest_get_responseBody(This,pvarBody) (This)->lpVtbl->get_responseBody(This,pvarBody)
#define IXMLHttpRequest_get_responseStream(This,pvarBody) (This)->lpVtbl->get_responseStream(This,pvarBody)
#define IXMLHttpRequest_get_readyState(This,plState) (This)->lpVtbl->get_readyState(This,plState)
#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 varUser,
    VARIANT varPassword);
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 *pbstrValue);
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 varBody);
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 *plStatus);
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 *bstrStatus);
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 **ppBody);
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 *pbstrBody);
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 *pvarBody);
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 *pvarBody);
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 *plState);
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__ */

/*****************************************************************************
 * XMLHTTPRequest coclass
 */

DEFINE_GUID(CLSID_XMLHTTPRequest, 0xed8c108e, 0x4349, 0x11d2, 0x91,0xa4, 0x00,0xc0,0x4f,0x79,0x69,0xe8);

#ifdef __cplusplus
class DECLSPEC_UUID("ed8c108e-4349-11d2-91a4-00c04f7969e8") XMLHTTPRequest;
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(XMLHTTPRequest, 0xed8c108e, 0x4349, 0x11d2, 0x91,0xa4, 0x00,0xc0,0x4f,0x79,0x69,0xe8)
#endif
#endif

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

/*****************************************************************************
 * IXMLDSOControl interface
 */
#ifndef __IXMLDSOControl_INTERFACE_DEFINED__
#define __IXMLDSOControl_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDSOControl, 0x310afa62, 0x0575, 0x11d2, 0x9c,0xa9, 0x00,0x60,0xb0,0xec,0x3d,0x39);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("310afa62-0575-11d2-9ca9-0060b0ec3d39")
IXMLDSOControl : 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;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IXMLDSOControl, 0x310afa62, 0x0575, 0x11d2, 0x9c,0xa9, 0x00,0x60,0xb0,0xec,0x3d,0x39)
#endif
#else
typedef struct IXMLDSOControlVtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

    /*** IXMLDSOControl methods ***/
    HRESULT (STDMETHODCALLTYPE *get_XMLDocument)(
        IXMLDSOControl* This,
        IXMLDOMDocument **ppDoc);

    HRESULT (STDMETHODCALLTYPE *put_XMLDocument)(
        IXMLDSOControl* This,
        IXMLDOMDocument *ppDoc);

    HRESULT (STDMETHODCALLTYPE *get_JavaDSOCompatible)(
        IXMLDSOControl* This,
        BOOL *fJavaDSOCompatible);

    HRESULT (STDMETHODCALLTYPE *put_JavaDSOCompatible)(
        IXMLDSOControl* This,
        BOOL fJavaDSOCompatible);

    HRESULT (STDMETHODCALLTYPE *get_readyState)(
        IXMLDSOControl* This,
        LONG *state);

    END_INTERFACE
} IXMLDSOControlVtbl;
interface IXMLDSOControl {
    CONST_VTBL IXMLDSOControlVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDSOControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXMLDSOControl_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXMLDSOControl_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXMLDSOControl_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXMLDSOControl_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXMLDSOControl_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXMLDSOControl_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLDSOControl methods ***/
#define IXMLDSOControl_get_XMLDocument(This,ppDoc) (This)->lpVtbl->get_XMLDocument(This,ppDoc)
#define IXMLDSOControl_put_XMLDocument(This,ppDoc) (This)->lpVtbl->put_XMLDocument(This,ppDoc)
#define IXMLDSOControl_get_JavaDSOCompatible(This,fJavaDSOCompatible) (This)->lpVtbl->get_JavaDSOCompatible(This,fJavaDSOCompatible)
#define IXMLDSOControl_put_JavaDSOCompatible(This,fJavaDSOCompatible) (This)->lpVtbl->put_JavaDSOCompatible(This,fJavaDSOCompatible)
#define IXMLDSOControl_get_readyState(This,state) (This)->lpVtbl->get_readyState(This,state)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLDSOControl_get_XMLDocument_Proxy(
    IXMLDSOControl* This,
    IXMLDOMDocument **ppDoc);
void __RPC_STUB IXMLDSOControl_get_XMLDocument_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDSOControl_put_XMLDocument_Proxy(
    IXMLDSOControl* This,
    IXMLDOMDocument *ppDoc);
void __RPC_STUB IXMLDSOControl_put_XMLDocument_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDSOControl_get_JavaDSOCompatible_Proxy(
    IXMLDSOControl* This,
    BOOL *fJavaDSOCompatible);
void __RPC_STUB IXMLDSOControl_get_JavaDSOCompatible_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDSOControl_put_JavaDSOCompatible_Proxy(
    IXMLDSOControl* This,
    BOOL fJavaDSOCompatible);
void __RPC_STUB IXMLDSOControl_put_JavaDSOCompatible_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDSOControl_get_readyState_Proxy(
    IXMLDSOControl* This,
    LONG *state);
void __RPC_STUB IXMLDSOControl_get_readyState_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDSOControl_INTERFACE_DEFINED__ */

/*****************************************************************************
 * XMLDSOControl coclass
 */

DEFINE_GUID(CLSID_XMLDSOControl, 0x550dda30, 0x0541, 0x11d2, 0x9c,0xa9, 0x00,0x60,0xb0,0xec,0x3d,0x39);

#ifdef __cplusplus
class DECLSPEC_UUID("550dda30-0541-11d2-9ca9-0060b0ec3d39") XMLDSOControl;
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(XMLDSOControl, 0x550dda30, 0x0541, 0x11d2, 0x9c,0xa9, 0x00,0x60,0xb0,0xec,0x3d,0x39)
#endif
#endif

/*****************************************************************************
 * 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)
MIDL_INTERFACE("65725580-9b5d-11d0-9bfe-00c04fc99c8e")
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;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IXMLElementCollection, 0x65725580, 0x9b5d, 0x11d0, 0x9b,0xfe, 0x00,0xc0,0x4f,0xc9,0x9c,0x8e)
#endif
#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)
MIDL_INTERFACE("3f7f31ac-e15f-11d0-9c25-00c04fc99c8e")
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;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IXMLElement, 0x3f7f31ac, 0xe15f, 0x11d0, 0x9c,0x25, 0x00,0xc0,0x4f,0xc9,0x9c,0x8e)
#endif
#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__ */

/*****************************************************************************
 * IXMLDocument interface
 */
#ifndef __IXMLDocument_INTERFACE_DEFINED__
#define __IXMLDocument_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDocument, 0xf52e2b61, 0x18a1, 0x11d1, 0xb1,0x05, 0x00,0x80,0x5f,0x49,0x91,0x6b);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("f52e2b61-18a1-11d1-b105-00805f49916b")
IXMLDocument : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_root(
        IXMLElement **p) = 0;

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

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

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

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

    virtual HRESULT STDMETHODCALLTYPE put_URL(
        BSTR p) = 0;

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

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

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

    virtual HRESULT STDMETHODCALLTYPE put_charset(
        BSTR p) = 0;

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

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

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

    virtual HRESULT STDMETHODCALLTYPE createElement(
        VARIANT vType,
        VARIANT var1,
        IXMLElement **ppElem) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IXMLDocument, 0xf52e2b61, 0x18a1, 0x11d1, 0xb1,0x05, 0x00,0x80,0x5f,0x49,0x91,0x6b)
#endif
#else
typedef struct IXMLDocumentVtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

    /*** IXMLDocument methods ***/
    HRESULT (STDMETHODCALLTYPE *get_root)(
        IXMLDocument* This,
        IXMLElement **p);

    HRESULT (STDMETHODCALLTYPE *get_fileSize)(
        IXMLDocument* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_fileModifiedDate)(
        IXMLDocument* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_fileUpdatedDate)(
        IXMLDocument* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_URL)(
        IXMLDocument* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *put_URL)(
        IXMLDocument* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_mimeType)(
        IXMLDocument* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_readyState)(
        IXMLDocument* This,
        LONG *p);

    HRESULT (STDMETHODCALLTYPE *get_charset)(
        IXMLDocument* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *put_charset)(
        IXMLDocument* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_version)(
        IXMLDocument* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_doctype)(
        IXMLDocument* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_dtdURl)(
        IXMLDocument* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *createElement)(
        IXMLDocument* This,
        VARIANT vType,
        VARIANT var1,
        IXMLElement **ppElem);

    END_INTERFACE
} IXMLDocumentVtbl;
interface IXMLDocument {
    CONST_VTBL IXMLDocumentVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDocument_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXMLDocument_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXMLDocument_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXMLDocument_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXMLDocument_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXMLDocument_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXMLDocument_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLDocument methods ***/
#define IXMLDocument_get_root(This,p) (This)->lpVtbl->get_root(This,p)
#define IXMLDocument_get_fileSize(This,p) (This)->lpVtbl->get_fileSize(This,p)
#define IXMLDocument_get_fileModifiedDate(This,p) (This)->lpVtbl->get_fileModifiedDate(This,p)
#define IXMLDocument_get_fileUpdatedDate(This,p) (This)->lpVtbl->get_fileUpdatedDate(This,p)
#define IXMLDocument_get_URL(This,p) (This)->lpVtbl->get_URL(This,p)
#define IXMLDocument_put_URL(This,p) (This)->lpVtbl->put_URL(This,p)
#define IXMLDocument_get_mimeType(This,p) (This)->lpVtbl->get_mimeType(This,p)
#define IXMLDocument_get_readyState(This,p) (This)->lpVtbl->get_readyState(This,p)
#define IXMLDocument_get_charset(This,p) (This)->lpVtbl->get_charset(This,p)
#define IXMLDocument_put_charset(This,p) (This)->lpVtbl->put_charset(This,p)
#define IXMLDocument_get_version(This,p) (This)->lpVtbl->get_version(This,p)
#define IXMLDocument_get_doctype(This,p) (This)->lpVtbl->get_doctype(This,p)
#define IXMLDocument_get_dtdURl(This,p) (This)->lpVtbl->get_dtdURl(This,p)
#define IXMLDocument_createElement(This,vType,var1,ppElem) (This)->lpVtbl->createElement(This,vType,var1,ppElem)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLDocument_get_root_Proxy(
    IXMLDocument* This,
    IXMLElement **p);
void __RPC_STUB IXMLDocument_get_root_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDocument_get_fileSize_Proxy(
    IXMLDocument* This,
    BSTR *p);
void __RPC_STUB IXMLDocument_get_fileSize_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDocument_get_fileModifiedDate_Proxy(
    IXMLDocument* This,
    BSTR *p);
void __RPC_STUB IXMLDocument_get_fileModifiedDate_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDocument_get_fileUpdatedDate_Proxy(
    IXMLDocument* This,
    BSTR *p);
void __RPC_STUB IXMLDocument_get_fileUpdatedDate_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDocument_get_URL_Proxy(
    IXMLDocument* This,
    BSTR *p);
void __RPC_STUB IXMLDocument_get_URL_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDocument_put_URL_Proxy(
    IXMLDocument* This,
    BSTR p);
void __RPC_STUB IXMLDocument_put_URL_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDocument_get_mimeType_Proxy(
    IXMLDocument* This,
    BSTR *p);
void __RPC_STUB IXMLDocument_get_mimeType_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDocument_get_readyState_Proxy(
    IXMLDocument* This,
    LONG *p);
void __RPC_STUB IXMLDocument_get_readyState_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDocument_get_charset_Proxy(
    IXMLDocument* This,
    BSTR *p);
void __RPC_STUB IXMLDocument_get_charset_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDocument_put_charset_Proxy(
    IXMLDocument* This,
    BSTR p);
void __RPC_STUB IXMLDocument_put_charset_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDocument_get_version_Proxy(
    IXMLDocument* This,
    BSTR *p);
void __RPC_STUB IXMLDocument_get_version_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDocument_get_doctype_Proxy(
    IXMLDocument* This,
    BSTR *p);
void __RPC_STUB IXMLDocument_get_doctype_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDocument_get_dtdURl_Proxy(
    IXMLDocument* This,
    BSTR *p);
void __RPC_STUB IXMLDocument_get_dtdURl_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDocument_createElement_Proxy(
    IXMLDocument* This,
    VARIANT vType,
    VARIANT var1,
    IXMLElement **ppElem);
void __RPC_STUB IXMLDocument_createElement_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDocument_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLElement2 interface
 */
#ifndef __IXMLElement2_INTERFACE_DEFINED__
#define __IXMLElement2_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLElement2, 0x2b8de2ff, 0x8d2d, 0x11d1, 0xb2,0xfc, 0x00,0xc0,0x4f,0xd9,0x15,0xa9);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("2b8de2ff-8d2d-11d1-b2fc-00c04fd915a9")
IXMLElement2 : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_tagName(
        BSTR *p) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_tagName(
        BSTR p) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_parent(
        IXMLElement2 **ppParent) = 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 **pp) = 0;

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

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

    virtual HRESULT STDMETHODCALLTYPE put_text(
        BSTR p) = 0;

    virtual HRESULT STDMETHODCALLTYPE addChild(
        IXMLElement2 *pChildElem,
        LONG lIndex,
        LONG lReserved) = 0;

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

    virtual HRESULT STDMETHODCALLTYPE get_attributes(
        IXMLElementCollection **pp) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IXMLElement2, 0x2b8de2ff, 0x8d2d, 0x11d1, 0xb2,0xfc, 0x00,0xc0,0x4f,0xd9,0x15,0xa9)
#endif
#else
typedef struct IXMLElement2Vtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

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

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

    HRESULT (STDMETHODCALLTYPE *get_parent)(
        IXMLElement2* This,
        IXMLElement2 **ppParent);

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

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

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

    HRESULT (STDMETHODCALLTYPE *get_children)(
        IXMLElement2* This,
        IXMLElementCollection **pp);

    HRESULT (STDMETHODCALLTYPE *get_type)(
        IXMLElement2* This,
        LONG *plType);

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

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

    HRESULT (STDMETHODCALLTYPE *addChild)(
        IXMLElement2* This,
        IXMLElement2 *pChildElem,
        LONG lIndex,
        LONG lReserved);

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

    HRESULT (STDMETHODCALLTYPE *get_attributes)(
        IXMLElement2* This,
        IXMLElementCollection **pp);

    END_INTERFACE
} IXMLElement2Vtbl;
interface IXMLElement2 {
    CONST_VTBL IXMLElement2Vtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLElement2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXMLElement2_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXMLElement2_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXMLElement2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXMLElement2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXMLElement2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXMLElement2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLElement2 methods ***/
#define IXMLElement2_get_tagName(This,p) (This)->lpVtbl->get_tagName(This,p)
#define IXMLElement2_put_tagName(This,p) (This)->lpVtbl->put_tagName(This,p)
#define IXMLElement2_get_parent(This,ppParent) (This)->lpVtbl->get_parent(This,ppParent)
#define IXMLElement2_setAttribute(This,strPropertyName,PropertyValue) (This)->lpVtbl->setAttribute(This,strPropertyName,PropertyValue)
#define IXMLElement2_getAttribute(This,strPropertyName,PropertyValue) (This)->lpVtbl->getAttribute(This,strPropertyName,PropertyValue)
#define IXMLElement2_removeAttribute(This,strPropertyName) (This)->lpVtbl->removeAttribute(This,strPropertyName)
#define IXMLElement2_get_children(This,pp) (This)->lpVtbl->get_children(This,pp)
#define IXMLElement2_get_type(This,plType) (This)->lpVtbl->get_type(This,plType)
#define IXMLElement2_get_text(This,p) (This)->lpVtbl->get_text(This,p)
#define IXMLElement2_put_text(This,p) (This)->lpVtbl->put_text(This,p)
#define IXMLElement2_addChild(This,pChildElem,lIndex,lReserved) (This)->lpVtbl->addChild(This,pChildElem,lIndex,lReserved)
#define IXMLElement2_removeChild(This,pChildElem) (This)->lpVtbl->removeChild(This,pChildElem)
#define IXMLElement2_get_attributes(This,pp) (This)->lpVtbl->get_attributes(This,pp)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLElement2_get_tagName_Proxy(
    IXMLElement2* This,
    BSTR *p);
void __RPC_STUB IXMLElement2_get_tagName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLElement2_put_tagName_Proxy(
    IXMLElement2* This,
    BSTR p);
void __RPC_STUB IXMLElement2_put_tagName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLElement2_get_parent_Proxy(
    IXMLElement2* This,
    IXMLElement2 **ppParent);
void __RPC_STUB IXMLElement2_get_parent_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLElement2_setAttribute_Proxy(
    IXMLElement2* This,
    BSTR strPropertyName,
    VARIANT PropertyValue);
void __RPC_STUB IXMLElement2_setAttribute_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLElement2_getAttribute_Proxy(
    IXMLElement2* This,
    BSTR strPropertyName,
    VARIANT *PropertyValue);
void __RPC_STUB IXMLElement2_getAttribute_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLElement2_removeAttribute_Proxy(
    IXMLElement2* This,
    BSTR strPropertyName);
void __RPC_STUB IXMLElement2_removeAttribute_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLElement2_get_children_Proxy(
    IXMLElement2* This,
    IXMLElementCollection **pp);
void __RPC_STUB IXMLElement2_get_children_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLElement2_get_type_Proxy(
    IXMLElement2* This,
    LONG *plType);
void __RPC_STUB IXMLElement2_get_type_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLElement2_get_text_Proxy(
    IXMLElement2* This,
    BSTR *p);
void __RPC_STUB IXMLElement2_get_text_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLElement2_put_text_Proxy(
    IXMLElement2* This,
    BSTR p);
void __RPC_STUB IXMLElement2_put_text_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLElement2_addChild_Proxy(
    IXMLElement2* This,
    IXMLElement2 *pChildElem,
    LONG lIndex,
    LONG lReserved);
void __RPC_STUB IXMLElement2_addChild_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLElement2_removeChild_Proxy(
    IXMLElement2* This,
    IXMLElement2 *pChildElem);
void __RPC_STUB IXMLElement2_removeChild_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLElement2_get_attributes_Proxy(
    IXMLElement2* This,
    IXMLElementCollection **pp);
void __RPC_STUB IXMLElement2_get_attributes_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLElement2_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDocument2 interface
 */
#ifndef __IXMLDocument2_INTERFACE_DEFINED__
#define __IXMLDocument2_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDocument2, 0x2b8de2fe, 0x8d2d, 0x11d1, 0xb2,0xfc, 0x00,0xc0,0x4f,0xd9,0x15,0xa9);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("2b8de2fe-8d2d-11d1-b2fc-00c04fd915a9")
IXMLDocument2 : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_root(
        IXMLElement2 **p) = 0;

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

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

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

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

    virtual HRESULT STDMETHODCALLTYPE put_URL(
        BSTR p) = 0;

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

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

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

    virtual HRESULT STDMETHODCALLTYPE put_charset(
        BSTR p) = 0;

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

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

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

    virtual HRESULT STDMETHODCALLTYPE createElement(
        VARIANT vType,
        VARIANT var,
        IXMLElement2 **ppElem) = 0;

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

    virtual HRESULT STDMETHODCALLTYPE put_async(
        VARIANT_BOOL f) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IXMLDocument2, 0x2b8de2fe, 0x8d2d, 0x11d1, 0xb2,0xfc, 0x00,0xc0,0x4f,0xd9,0x15,0xa9)
#endif
#else
typedef struct IXMLDocument2Vtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

    /*** IXMLDocument2 methods ***/
    HRESULT (STDMETHODCALLTYPE *get_root)(
        IXMLDocument2* This,
        IXMLElement2 **p);

    HRESULT (STDMETHODCALLTYPE *get_fileSize)(
        IXMLDocument2* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_fileModifiedDate)(
        IXMLDocument2* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_fileUpdatedDate)(
        IXMLDocument2* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_URL)(
        IXMLDocument2* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *put_URL)(
        IXMLDocument2* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_mimeType)(
        IXMLDocument2* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_readyState)(
        IXMLDocument2* This,
        LONG *pl);

    HRESULT (STDMETHODCALLTYPE *get_charset)(
        IXMLDocument2* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *put_charset)(
        IXMLDocument2* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_version)(
        IXMLDocument2* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_doctype)(
        IXMLDocument2* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_dtdURL)(
        IXMLDocument2* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *createElement)(
        IXMLDocument2* This,
        VARIANT vType,
        VARIANT var,
        IXMLElement2 **ppElem);

    HRESULT (STDMETHODCALLTYPE *get_async)(
        IXMLDocument2* This,
        VARIANT_BOOL *pf);

    HRESULT (STDMETHODCALLTYPE *put_async)(
        IXMLDocument2* This,
        VARIANT_BOOL f);

    END_INTERFACE
} IXMLDocument2Vtbl;
interface IXMLDocument2 {
    CONST_VTBL IXMLDocument2Vtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDocument2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXMLDocument2_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXMLDocument2_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXMLDocument2_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXMLDocument2_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXMLDocument2_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXMLDocument2_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLDocument2 methods ***/
#define IXMLDocument2_get_root(This,p) (This)->lpVtbl->get_root(This,p)
#define IXMLDocument2_get_fileSize(This,p) (This)->lpVtbl->get_fileSize(This,p)
#define IXMLDocument2_get_fileModifiedDate(This,p) (This)->lpVtbl->get_fileModifiedDate(This,p)
#define IXMLDocument2_get_fileUpdatedDate(This,p) (This)->lpVtbl->get_fileUpdatedDate(This,p)
#define IXMLDocument2_get_URL(This,p) (This)->lpVtbl->get_URL(This,p)
#define IXMLDocument2_put_URL(This,p) (This)->lpVtbl->put_URL(This,p)
#define IXMLDocument2_get_mimeType(This,p) (This)->lpVtbl->get_mimeType(This,p)
#define IXMLDocument2_get_readyState(This,pl) (This)->lpVtbl->get_readyState(This,pl)
#define IXMLDocument2_get_charset(This,p) (This)->lpVtbl->get_charset(This,p)
#define IXMLDocument2_put_charset(This,p) (This)->lpVtbl->put_charset(This,p)
#define IXMLDocument2_get_version(This,p) (This)->lpVtbl->get_version(This,p)
#define IXMLDocument2_get_doctype(This,p) (This)->lpVtbl->get_doctype(This,p)
#define IXMLDocument2_get_dtdURL(This,p) (This)->lpVtbl->get_dtdURL(This,p)
#define IXMLDocument2_createElement(This,vType,var,ppElem) (This)->lpVtbl->createElement(This,vType,var,ppElem)
#define IXMLDocument2_get_async(This,pf) (This)->lpVtbl->get_async(This,pf)
#define IXMLDocument2_put_async(This,f) (This)->lpVtbl->put_async(This,f)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLDocument2_get_root_Proxy(
    IXMLDocument2* This,
    IXMLElement2 **p);
void __RPC_STUB IXMLDocument2_get_root_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDocument2_get_fileSize_Proxy(
    IXMLDocument2* This,
    BSTR *p);
void __RPC_STUB IXMLDocument2_get_fileSize_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDocument2_get_fileModifiedDate_Proxy(
    IXMLDocument2* This,
    BSTR *p);
void __RPC_STUB IXMLDocument2_get_fileModifiedDate_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDocument2_get_fileUpdatedDate_Proxy(
    IXMLDocument2* This,
    BSTR *p);
void __RPC_STUB IXMLDocument2_get_fileUpdatedDate_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDocument2_get_URL_Proxy(
    IXMLDocument2* This,
    BSTR *p);
void __RPC_STUB IXMLDocument2_get_URL_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDocument2_put_URL_Proxy(
    IXMLDocument2* This,
    BSTR p);
void __RPC_STUB IXMLDocument2_put_URL_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDocument2_get_mimeType_Proxy(
    IXMLDocument2* This,
    BSTR *p);
void __RPC_STUB IXMLDocument2_get_mimeType_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDocument2_get_readyState_Proxy(
    IXMLDocument2* This,
    LONG *pl);
void __RPC_STUB IXMLDocument2_get_readyState_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDocument2_get_charset_Proxy(
    IXMLDocument2* This,
    BSTR *p);
void __RPC_STUB IXMLDocument2_get_charset_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDocument2_put_charset_Proxy(
    IXMLDocument2* This,
    BSTR p);
void __RPC_STUB IXMLDocument2_put_charset_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDocument2_get_version_Proxy(
    IXMLDocument2* This,
    BSTR *p);
void __RPC_STUB IXMLDocument2_get_version_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDocument2_get_doctype_Proxy(
    IXMLDocument2* This,
    BSTR *p);
void __RPC_STUB IXMLDocument2_get_doctype_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDocument2_get_dtdURL_Proxy(
    IXMLDocument2* This,
    BSTR *p);
void __RPC_STUB IXMLDocument2_get_dtdURL_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDocument2_createElement_Proxy(
    IXMLDocument2* This,
    VARIANT vType,
    VARIANT var,
    IXMLElement2 **ppElem);
void __RPC_STUB IXMLDocument2_createElement_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDocument2_get_async_Proxy(
    IXMLDocument2* This,
    VARIANT_BOOL *pf);
void __RPC_STUB IXMLDocument2_get_async_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLDocument2_put_async_Proxy(
    IXMLDocument2* This,
    VARIANT_BOOL f);
void __RPC_STUB IXMLDocument2_put_async_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDocument2_INTERFACE_DEFINED__ */

typedef enum tagXMLEMEM_TYPE {
    XMLELEMTYPE_ELEMENT = 0,
    XMLELEMTYPE_TEXT = 1,
    XMLELEMTYPE_COMMENT = 2,
    XMLELEMTYPE_DOCUMENT = 3,
    XMLELEMTYPE_DTD = 4,
    XMLELEMTYPE_PI = 5,
    XMLELEMTYPE_OTHER = 6
} XMLELEM_TYPE;
typedef struct _xml_error {
    UINT _nLine;
    BSTR _pchBuf;
    BSTR _cchBuf;
    UINT _ich;
    BSTR _pszFound;
    BSTR _pszExpected;
    DWORD _reserved1;
    DWORD _reserved2;
} XML_ERROR;
/*****************************************************************************
 * IXMLAttribute interface
 */
#ifndef __IXMLAttribute_INTERFACE_DEFINED__
#define __IXMLAttribute_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLAttribute, 0xd4d4a0fc, 0x3b73, 0x11d1, 0xb2,0xb4, 0x00,0xc0,0x4f,0xb9,0x25,0x96);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("d4d4a0fc-3b73-11d1-b2b4-00c04fb92596")
IXMLAttribute : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_name(
        BSTR *p) = 0;

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

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IXMLAttribute, 0xd4d4a0fc, 0x3b73, 0x11d1, 0xb2,0xb4, 0x00,0xc0,0x4f,0xb9,0x25,0x96)
#endif
#else
typedef struct IXMLAttributeVtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

    /*** IXMLAttribute methods ***/
    HRESULT (STDMETHODCALLTYPE *get_name)(
        IXMLAttribute* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_value)(
        IXMLAttribute* This,
        BSTR *p);

    END_INTERFACE
} IXMLAttributeVtbl;
interface IXMLAttribute {
    CONST_VTBL IXMLAttributeVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLAttribute_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXMLAttribute_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXMLAttribute_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXMLAttribute_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXMLAttribute_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXMLAttribute_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXMLAttribute_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLAttribute methods ***/
#define IXMLAttribute_get_name(This,p) (This)->lpVtbl->get_name(This,p)
#define IXMLAttribute_get_value(This,p) (This)->lpVtbl->get_value(This,p)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLAttribute_get_name_Proxy(
    IXMLAttribute* This,
    BSTR *p);
void __RPC_STUB IXMLAttribute_get_name_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT STDMETHODCALLTYPE IXMLAttribute_get_value_Proxy(
    IXMLAttribute* This,
    BSTR *p);
void __RPC_STUB IXMLAttribute_get_value_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLAttribute_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLError interface
 */
#ifndef __IXMLError_INTERFACE_DEFINED__
#define __IXMLError_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLError, 0x948c5ad3, 0xc58d, 0x11d0, 0x9c,0x0b, 0x00,0xc0,0x4f,0xc9,0x9c,0x8e);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("948c5ad3-c58d-11d0-9c0b-00c04fc99c8e")
IXMLError : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE GetErrorInfo(
        XML_ERROR *pErrorReturn) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IXMLError, 0x948c5ad3, 0xc58d, 0x11d0, 0x9c,0x0b, 0x00,0xc0,0x4f,0xc9,0x9c,0x8e)
#endif
#else
typedef struct IXMLErrorVtbl {
    BEGIN_INTERFACE

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

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

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

    /*** IXMLError methods ***/
    HRESULT (STDMETHODCALLTYPE *GetErrorInfo)(
        IXMLError* This,
        XML_ERROR *pErrorReturn);

    END_INTERFACE
} IXMLErrorVtbl;
interface IXMLError {
    CONST_VTBL IXMLErrorVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLError_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXMLError_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXMLError_Release(This) (This)->lpVtbl->Release(This)
/*** IXMLError methods ***/
#define IXMLError_GetErrorInfo(This,pErrorReturn) (This)->lpVtbl->GetErrorInfo(This,pErrorReturn)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLError_GetErrorInfo_Proxy(
    IXMLError* This,
    XML_ERROR *pErrorReturn);
void __RPC_STUB IXMLError_GetErrorInfo_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLError_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLElementNotificationSink interface
 */
#ifndef __IXMLElementNotificationSink_INTERFACE_DEFINED__
#define __IXMLElementNotificationSink_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLElementNotificationSink, 0xd9f1e15a, 0xccdb, 0x11d0, 0x9c,0x0c, 0x00,0xc0,0x4f,0xc9,0x9c,0x8e);
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("d9f1e15a-ccdb-11d0-9c0c-00c04fc99c8e")
IXMLElementNotificationSink : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE ChildAdded(
        IDispatch *pChildElem) = 0;

};
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(IXMLElementNotificationSink, 0xd9f1e15a, 0xccdb, 0x11d0, 0x9c,0x0c, 0x00,0xc0,0x4f,0xc9,0x9c,0x8e)
#endif
#else
typedef struct IXMLElementNotificationSinkVtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

    /*** IXMLElementNotificationSink methods ***/
    HRESULT (STDMETHODCALLTYPE *ChildAdded)(
        IXMLElementNotificationSink* This,
        IDispatch *pChildElem);

    END_INTERFACE
} IXMLElementNotificationSinkVtbl;
interface IXMLElementNotificationSink {
    CONST_VTBL IXMLElementNotificationSinkVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLElementNotificationSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IXMLElementNotificationSink_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IXMLElementNotificationSink_Release(This) (This)->lpVtbl->Release(This)
/*** IDispatch methods ***/
#define IXMLElementNotificationSink_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
#define IXMLElementNotificationSink_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
#define IXMLElementNotificationSink_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
#define IXMLElementNotificationSink_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
/*** IXMLElementNotificationSink methods ***/
#define IXMLElementNotificationSink_ChildAdded(This,pChildElem) (This)->lpVtbl->ChildAdded(This,pChildElem)
#endif

#endif

HRESULT STDMETHODCALLTYPE IXMLElementNotificationSink_ChildAdded_Proxy(
    IXMLElementNotificationSink* This,
    IDispatch *pChildElem);
void __RPC_STUB IXMLElementNotificationSink_ChildAdded_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLElementNotificationSink_INTERFACE_DEFINED__ */

/*****************************************************************************
 * XMLDocument coclass
 */

DEFINE_GUID(CLSID_XMLDocument, 0xcfc399af, 0xd876, 0x11d0, 0x9c,0x10, 0x00,0xc0,0x4f,0xc9,0x9c,0x8e);

#ifdef __cplusplus
class DECLSPEC_UUID("cfc399af-d876-11d0-9c10-00c04fc99c8e") XMLDocument;
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(XMLDocument, 0xcfc399af, 0xd876, 0x11d0, 0x9c,0x10, 0x00,0xc0,0x4f,0xc9,0x9c,0x8e)
#endif
#endif

/* 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 /* __msxml_h__ */
