/*** Autogenerated by WIDL 0.9.22 from msxml2.idl - Do not edit ***/
#include <rpc.h>
#include <rpcndr.h>

#ifndef __WIDL_MSXML2_H
#define __WIDL_MSXML2_H
#ifdef __cplusplus
extern "C" {
#endif
#include <unknwn.h>
#include <objidl.h>
#include <oaidl.h>
#ifndef __IXMLDOMImplementation_FWD_DEFINED__
#define __IXMLDOMImplementation_FWD_DEFINED__
typedef interface IXMLDOMImplementation IXMLDOMImplementation;
#endif

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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;
/*****************************************************************************
 * IXMLDOMNode interface
 */
#ifndef __IXMLDOMNode_INTERFACE_DEFINED__
#define __IXMLDOMNode_INTERFACE_DEFINED__

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

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

    virtual HRESULT STDMETHODCALLTYPE put_nodeValue(
        VARIANT var1) = 0;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    virtual HRESULT STDMETHODCALLTYPE put_text(
        BSTR p) = 0;

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

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

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

    virtual HRESULT STDMETHODCALLTYPE put_nodeTypedValue(
        VARIANT var1) = 0;

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

    virtual HRESULT STDMETHODCALLTYPE put_dataType(
        BSTR p) = 0;

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

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

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

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

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

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

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

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

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

};
#else
typedef struct IXMLDOMNodeVtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMNode_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IXMLDOMNode_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IXMLDOMNode_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IXMLDOMNode_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IXMLDOMNode_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IXMLDOMNode_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IXMLDOMNode_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IXMLDOMNode methods ***/
#define IXMLDOMNode_get_nodeName(p,a) (p)->lpVtbl->get_nodeName(p,a)
#define IXMLDOMNode_get_nodeValue(p,a) (p)->lpVtbl->get_nodeValue(p,a)
#define IXMLDOMNode_put_nodeValue(p,a) (p)->lpVtbl->put_nodeValue(p,a)
#define IXMLDOMNode_get_nodeType(p,a) (p)->lpVtbl->get_nodeType(p,a)
#define IXMLDOMNode_get_parentNode(p,a) (p)->lpVtbl->get_parentNode(p,a)
#define IXMLDOMNode_get_childNodes(p,a) (p)->lpVtbl->get_childNodes(p,a)
#define IXMLDOMNode_get_firstChild(p,a) (p)->lpVtbl->get_firstChild(p,a)
#define IXMLDOMNode_get_lastChild(p,a) (p)->lpVtbl->get_lastChild(p,a)
#define IXMLDOMNode_get_previousSibling(p,a) (p)->lpVtbl->get_previousSibling(p,a)
#define IXMLDOMNode_get_nextSibling(p,a) (p)->lpVtbl->get_nextSibling(p,a)
#define IXMLDOMNode_get_attributes(p,a) (p)->lpVtbl->get_attributes(p,a)
#define IXMLDOMNode_insertBefore(p,a,b,c) (p)->lpVtbl->insertBefore(p,a,b,c)
#define IXMLDOMNode_replaceChild(p,a,b,c) (p)->lpVtbl->replaceChild(p,a,b,c)
#define IXMLDOMNode_removeChild(p,a,b) (p)->lpVtbl->removeChild(p,a,b)
#define IXMLDOMNode_appendChild(p,a,b) (p)->lpVtbl->appendChild(p,a,b)
#define IXMLDOMNode_hasChildNodes(p,a) (p)->lpVtbl->hasChildNodes(p,a)
#define IXMLDOMNode_get_ownerDocument(p,a) (p)->lpVtbl->get_ownerDocument(p,a)
#define IXMLDOMNode_cloneNode(p,a,b) (p)->lpVtbl->cloneNode(p,a,b)
#define IXMLDOMNode_get_nodeTypeString(p,a) (p)->lpVtbl->get_nodeTypeString(p,a)
#define IXMLDOMNode_get_text(p,a) (p)->lpVtbl->get_text(p,a)
#define IXMLDOMNode_put_text(p,a) (p)->lpVtbl->put_text(p,a)
#define IXMLDOMNode_get_specified(p,a) (p)->lpVtbl->get_specified(p,a)
#define IXMLDOMNode_get_definition(p,a) (p)->lpVtbl->get_definition(p,a)
#define IXMLDOMNode_get_nodeTypedValue(p,a) (p)->lpVtbl->get_nodeTypedValue(p,a)
#define IXMLDOMNode_put_nodeTypedValue(p,a) (p)->lpVtbl->put_nodeTypedValue(p,a)
#define IXMLDOMNode_get_dataType(p,a) (p)->lpVtbl->get_dataType(p,a)
#define IXMLDOMNode_put_dataType(p,a) (p)->lpVtbl->put_dataType(p,a)
#define IXMLDOMNode_get_xml(p,a) (p)->lpVtbl->get_xml(p,a)
#define IXMLDOMNode_transformNode(p,a,b) (p)->lpVtbl->transformNode(p,a,b)
#define IXMLDOMNode_selectNodes(p,a,b) (p)->lpVtbl->selectNodes(p,a,b)
#define IXMLDOMNode_selectSingleNode(p,a,b) (p)->lpVtbl->selectSingleNode(p,a,b)
#define IXMLDOMNode_get_parsed(p,a) (p)->lpVtbl->get_parsed(p,a)
#define IXMLDOMNode_get_namespaceURI(p,a) (p)->lpVtbl->get_namespaceURI(p,a)
#define IXMLDOMNode_get_prefix(p,a) (p)->lpVtbl->get_prefix(p,a)
#define IXMLDOMNode_get_baseName(p,a) (p)->lpVtbl->get_baseName(p,a)
#define IXMLDOMNode_transformNodeToObject(p,a,b) (p)->lpVtbl->transformNodeToObject(p,a,b)
#endif

#endif

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

#endif  /* __IXMLDOMNode_INTERFACE_DEFINED__ */

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    virtual HRESULT STDMETHODCALLTYPE put_async(
        VARIANT_BOOL pbool) = 0;

    virtual HRESULT STDMETHODCALLTYPE abort(
        ) = 0;

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

    virtual HRESULT STDMETHODCALLTYPE save(
        VARIANT var1) = 0;

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

    virtual HRESULT STDMETHODCALLTYPE put_validateOnParse(
        VARIANT_BOOL pbool) = 0;

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

    virtual HRESULT STDMETHODCALLTYPE put_resolveExternals(
        VARIANT_BOOL pbool) = 0;

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

    virtual HRESULT STDMETHODCALLTYPE put_preserveWhiteSpace(
        VARIANT_BOOL pbool) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_onreadystatechange(
        VARIANT var1) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_ondataavailable(
        VARIANT var1) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_ontransformnode(
        VARIANT var1) = 0;

};
#else
typedef struct IXMLDOMDocumentVtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMDocument_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IXMLDOMDocument_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IXMLDOMDocument_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IXMLDOMDocument_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IXMLDOMDocument_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IXMLDOMDocument_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IXMLDOMDocument_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IXMLDOMNode methods ***/
#define IXMLDOMDocument_get_nodeName(p,a) (p)->lpVtbl->get_nodeName(p,a)
#define IXMLDOMDocument_get_nodeValue(p,a) (p)->lpVtbl->get_nodeValue(p,a)
#define IXMLDOMDocument_put_nodeValue(p,a) (p)->lpVtbl->put_nodeValue(p,a)
#define IXMLDOMDocument_get_nodeType(p,a) (p)->lpVtbl->get_nodeType(p,a)
#define IXMLDOMDocument_get_parentNode(p,a) (p)->lpVtbl->get_parentNode(p,a)
#define IXMLDOMDocument_get_childNodes(p,a) (p)->lpVtbl->get_childNodes(p,a)
#define IXMLDOMDocument_get_firstChild(p,a) (p)->lpVtbl->get_firstChild(p,a)
#define IXMLDOMDocument_get_lastChild(p,a) (p)->lpVtbl->get_lastChild(p,a)
#define IXMLDOMDocument_get_previousSibling(p,a) (p)->lpVtbl->get_previousSibling(p,a)
#define IXMLDOMDocument_get_nextSibling(p,a) (p)->lpVtbl->get_nextSibling(p,a)
#define IXMLDOMDocument_get_attributes(p,a) (p)->lpVtbl->get_attributes(p,a)
#define IXMLDOMDocument_insertBefore(p,a,b,c) (p)->lpVtbl->insertBefore(p,a,b,c)
#define IXMLDOMDocument_replaceChild(p,a,b,c) (p)->lpVtbl->replaceChild(p,a,b,c)
#define IXMLDOMDocument_removeChild(p,a,b) (p)->lpVtbl->removeChild(p,a,b)
#define IXMLDOMDocument_appendChild(p,a,b) (p)->lpVtbl->appendChild(p,a,b)
#define IXMLDOMDocument_hasChildNodes(p,a) (p)->lpVtbl->hasChildNodes(p,a)
#define IXMLDOMDocument_get_ownerDocument(p,a) (p)->lpVtbl->get_ownerDocument(p,a)
#define IXMLDOMDocument_cloneNode(p,a,b) (p)->lpVtbl->cloneNode(p,a,b)
#define IXMLDOMDocument_get_nodeTypeString(p,a) (p)->lpVtbl->get_nodeTypeString(p,a)
#define IXMLDOMDocument_get_text(p,a) (p)->lpVtbl->get_text(p,a)
#define IXMLDOMDocument_put_text(p,a) (p)->lpVtbl->put_text(p,a)
#define IXMLDOMDocument_get_specified(p,a) (p)->lpVtbl->get_specified(p,a)
#define IXMLDOMDocument_get_definition(p,a) (p)->lpVtbl->get_definition(p,a)
#define IXMLDOMDocument_get_nodeTypedValue(p,a) (p)->lpVtbl->get_nodeTypedValue(p,a)
#define IXMLDOMDocument_put_nodeTypedValue(p,a) (p)->lpVtbl->put_nodeTypedValue(p,a)
#define IXMLDOMDocument_get_dataType(p,a) (p)->lpVtbl->get_dataType(p,a)
#define IXMLDOMDocument_put_dataType(p,a) (p)->lpVtbl->put_dataType(p,a)
#define IXMLDOMDocument_get_xml(p,a) (p)->lpVtbl->get_xml(p,a)
#define IXMLDOMDocument_transformNode(p,a,b) (p)->lpVtbl->transformNode(p,a,b)
#define IXMLDOMDocument_selectNodes(p,a,b) (p)->lpVtbl->selectNodes(p,a,b)
#define IXMLDOMDocument_selectSingleNode(p,a,b) (p)->lpVtbl->selectSingleNode(p,a,b)
#define IXMLDOMDocument_get_parsed(p,a) (p)->lpVtbl->get_parsed(p,a)
#define IXMLDOMDocument_get_namespaceURI(p,a) (p)->lpVtbl->get_namespaceURI(p,a)
#define IXMLDOMDocument_get_prefix(p,a) (p)->lpVtbl->get_prefix(p,a)
#define IXMLDOMDocument_get_baseName(p,a) (p)->lpVtbl->get_baseName(p,a)
#define IXMLDOMDocument_transformNodeToObject(p,a,b) (p)->lpVtbl->transformNodeToObject(p,a,b)
/*** IXMLDOMDocument methods ***/
#define IXMLDOMDocument_get_doctype(p,a) (p)->lpVtbl->get_doctype(p,a)
#define IXMLDOMDocument_get_implementation(p,a) (p)->lpVtbl->get_implementation(p,a)
#define IXMLDOMDocument_get_documentElement(p,a) (p)->lpVtbl->get_documentElement(p,a)
#define IXMLDOMDocument_putref_documentElement(p,a) (p)->lpVtbl->putref_documentElement(p,a)
#define IXMLDOMDocument_createElement(p,a,b) (p)->lpVtbl->createElement(p,a,b)
#define IXMLDOMDocument_createDocumentFragment(p,a) (p)->lpVtbl->createDocumentFragment(p,a)
#define IXMLDOMDocument_createTextNode(p,a,b) (p)->lpVtbl->createTextNode(p,a,b)
#define IXMLDOMDocument_createComment(p,a,b) (p)->lpVtbl->createComment(p,a,b)
#define IXMLDOMDocument_createCDATASection(p,a,b) (p)->lpVtbl->createCDATASection(p,a,b)
#define IXMLDOMDocument_createProcessingInstruction(p,a,b,c) (p)->lpVtbl->createProcessingInstruction(p,a,b,c)
#define IXMLDOMDocument_createAttribute(p,a,b) (p)->lpVtbl->createAttribute(p,a,b)
#define IXMLDOMDocument_createEntityReference(p,a,b) (p)->lpVtbl->createEntityReference(p,a,b)
#define IXMLDOMDocument_getElementsByTagName(p,a,b) (p)->lpVtbl->getElementsByTagName(p,a,b)
#define IXMLDOMDocument_createNode(p,a,b,c,d) (p)->lpVtbl->createNode(p,a,b,c,d)
#define IXMLDOMDocument_nodeFromID(p,a,b) (p)->lpVtbl->nodeFromID(p,a,b)
#define IXMLDOMDocument_load(p,a,b) (p)->lpVtbl->load(p,a,b)
#define IXMLDOMDocument_get_readyState(p,a) (p)->lpVtbl->get_readyState(p,a)
#define IXMLDOMDocument_get_parseError(p,a) (p)->lpVtbl->get_parseError(p,a)
#define IXMLDOMDocument_get_url(p,a) (p)->lpVtbl->get_url(p,a)
#define IXMLDOMDocument_get_async(p,a) (p)->lpVtbl->get_async(p,a)
#define IXMLDOMDocument_put_async(p,a) (p)->lpVtbl->put_async(p,a)
#define IXMLDOMDocument_abort(p) (p)->lpVtbl->abort(p)
#define IXMLDOMDocument_loadXML(p,a,b) (p)->lpVtbl->loadXML(p,a,b)
#define IXMLDOMDocument_save(p,a) (p)->lpVtbl->save(p,a)
#define IXMLDOMDocument_get_validateOnParse(p,a) (p)->lpVtbl->get_validateOnParse(p,a)
#define IXMLDOMDocument_put_validateOnParse(p,a) (p)->lpVtbl->put_validateOnParse(p,a)
#define IXMLDOMDocument_get_resolveExternals(p,a) (p)->lpVtbl->get_resolveExternals(p,a)
#define IXMLDOMDocument_put_resolveExternals(p,a) (p)->lpVtbl->put_resolveExternals(p,a)
#define IXMLDOMDocument_get_preserveWhiteSpace(p,a) (p)->lpVtbl->get_preserveWhiteSpace(p,a)
#define IXMLDOMDocument_put_preserveWhiteSpace(p,a) (p)->lpVtbl->put_preserveWhiteSpace(p,a)
#define IXMLDOMDocument_put_onreadystatechange(p,a) (p)->lpVtbl->put_onreadystatechange(p,a)
#define IXMLDOMDocument_put_ondataavailable(p,a) (p)->lpVtbl->put_ondataavailable(p,a)
#define IXMLDOMDocument_put_ontransformnode(p,a) (p)->lpVtbl->put_ontransformnode(p,a)
#endif

#endif

HRESULT CALLBACK IXMLDOMDocument_get_doctype_Proxy(
    IXMLDOMDocument* This,
    IXMLDOMDocumentType** docType);
void __RPC_STUB IXMLDOMDocument_get_doctype_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK 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 CALLBACK 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 CALLBACK 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 CALLBACK IXMLDOMDocument_createElement_Proxy(
    IXMLDOMDocument* This,
    BSTR p,
    IXMLDOMElement** domElement);
void __RPC_STUB IXMLDOMDocument_createElement_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMDocument_createDocumentFragment_Proxy(
    IXMLDOMDocument* This,
    IXMLDOMDocumentFragment** docFrag);
void __RPC_STUB IXMLDOMDocument_createDocumentFragment_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMDocument_createTextNode_Proxy(
    IXMLDOMDocument* This,
    BSTR p,
    IXMLDOMText** text);
void __RPC_STUB IXMLDOMDocument_createTextNode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMDocument_createComment_Proxy(
    IXMLDOMDocument* This,
    BSTR p,
    IXMLDOMComment** comment);
void __RPC_STUB IXMLDOMDocument_createComment_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMDocument_createCDATASection_Proxy(
    IXMLDOMDocument* This,
    BSTR p,
    IXMLDOMCDATASection** cdata);
void __RPC_STUB IXMLDOMDocument_createCDATASection_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK 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 CALLBACK IXMLDOMDocument_createAttribute_Proxy(
    IXMLDOMDocument* This,
    BSTR p,
    IXMLDOMAttribute** attribute);
void __RPC_STUB IXMLDOMDocument_createAttribute_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMDocument_createEntityReference_Proxy(
    IXMLDOMDocument* This,
    BSTR p,
    IXMLDOMEntityReference** entityRef);
void __RPC_STUB IXMLDOMDocument_createEntityReference_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMDocument_getElementsByTagName_Proxy(
    IXMLDOMDocument* This,
    BSTR p,
    IXMLDOMNodeList** resultList);
void __RPC_STUB IXMLDOMDocument_getElementsByTagName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMDocument_createNode_Proxy(
    IXMLDOMDocument* This,
    VARIANT var,
    BSTR name,
    BSTR uri,
    IXMLDOMNode** node);
void __RPC_STUB IXMLDOMDocument_createNode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMDocument_nodeFromID_Proxy(
    IXMLDOMDocument* This,
    BSTR id,
    IXMLDOMNode** node);
void __RPC_STUB IXMLDOMDocument_nodeFromID_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMDocument_load_Proxy(
    IXMLDOMDocument* This,
    VARIANT var1,
    VARIANT_BOOL* pbool);
void __RPC_STUB IXMLDOMDocument_load_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK 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 CALLBACK IXMLDOMDocument_get_parseError_Proxy(
    IXMLDOMDocument* This,
    IXMLDOMParseError** err);
void __RPC_STUB IXMLDOMDocument_get_parseError_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMDocument_get_url_Proxy(
    IXMLDOMDocument* This,
    BSTR* p);
void __RPC_STUB IXMLDOMDocument_get_url_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMDocument_get_async_Proxy(
    IXMLDOMDocument* This,
    VARIANT_BOOL* pbool);
void __RPC_STUB IXMLDOMDocument_get_async_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMDocument_put_async_Proxy(
    IXMLDOMDocument* This,
    VARIANT_BOOL pbool);
void __RPC_STUB IXMLDOMDocument_put_async_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMDocument_abort_Proxy(
    IXMLDOMDocument* This);
void __RPC_STUB IXMLDOMDocument_abort_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMDocument_loadXML_Proxy(
    IXMLDOMDocument* This,
    BSTR p,
    VARIANT_BOOL* pbool);
void __RPC_STUB IXMLDOMDocument_loadXML_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMDocument_save_Proxy(
    IXMLDOMDocument* This,
    VARIANT var1);
void __RPC_STUB IXMLDOMDocument_save_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMDocument_get_validateOnParse_Proxy(
    IXMLDOMDocument* This,
    VARIANT_BOOL* pbool);
void __RPC_STUB IXMLDOMDocument_get_validateOnParse_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMDocument_put_validateOnParse_Proxy(
    IXMLDOMDocument* This,
    VARIANT_BOOL pbool);
void __RPC_STUB IXMLDOMDocument_put_validateOnParse_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMDocument_get_resolveExternals_Proxy(
    IXMLDOMDocument* This,
    VARIANT_BOOL* pbool);
void __RPC_STUB IXMLDOMDocument_get_resolveExternals_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMDocument_put_resolveExternals_Proxy(
    IXMLDOMDocument* This,
    VARIANT_BOOL pbool);
void __RPC_STUB IXMLDOMDocument_put_resolveExternals_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMDocument_get_preserveWhiteSpace_Proxy(
    IXMLDOMDocument* This,
    VARIANT_BOOL* pbool);
void __RPC_STUB IXMLDOMDocument_get_preserveWhiteSpace_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMDocument_put_preserveWhiteSpace_Proxy(
    IXMLDOMDocument* This,
    VARIANT_BOOL pbool);
void __RPC_STUB IXMLDOMDocument_put_preserveWhiteSpace_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMDocument_put_onreadystatechange_Proxy(
    IXMLDOMDocument* This,
    VARIANT var1);
void __RPC_STUB IXMLDOMDocument_put_onreadystatechange_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMDocument_put_ondataavailable_Proxy(
    IXMLDOMDocument* This,
    VARIANT var1);
void __RPC_STUB IXMLDOMDocument_put_ondataavailable_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMDocument_put_ontransformnode_Proxy(
    IXMLDOMDocument* This,
    VARIANT var1);
void __RPC_STUB IXMLDOMDocument_put_ontransformnode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMDocument_INTERFACE_DEFINED__ */

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

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

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

    virtual HRESULT STDMETHODCALLTYPE remove(
        BSTR uri) = 0;

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

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

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

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

};
#else
typedef struct IXMLDOMSchemaCollectionVtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMSchemaCollection_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IXMLDOMSchemaCollection_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IXMLDOMSchemaCollection_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IXMLDOMSchemaCollection_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IXMLDOMSchemaCollection_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IXMLDOMSchemaCollection_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IXMLDOMSchemaCollection_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IXMLDOMSchemaCollection methods ***/
#define IXMLDOMSchemaCollection_add(p,a,b) (p)->lpVtbl->add(p,a,b)
#define IXMLDOMSchemaCollection_get(p,a,b) (p)->lpVtbl->get(p,a,b)
#define IXMLDOMSchemaCollection_remove(p,a) (p)->lpVtbl->remove(p,a)
#define IXMLDOMSchemaCollection_get_length(p,a) (p)->lpVtbl->get_length(p,a)
#define IXMLDOMSchemaCollection_get_namespaceURI(p,a,b) (p)->lpVtbl->get_namespaceURI(p,a,b)
#define IXMLDOMSchemaCollection_addCollection(p,a) (p)->lpVtbl->addCollection(p,a)
#define IXMLDOMSchemaCollection_get__newEnum(p,a) (p)->lpVtbl->get__newEnum(p,a)
#endif

#endif

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

#endif  /* __IXMLDOMSchemaCollection_INTERFACE_DEFINED__ */

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

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

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

    virtual HRESULT STDMETHODCALLTYPE putref_schemas(
        VARIANT var1) = 0;

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

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

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

};
#else
typedef struct IXMLDOMDocument2Vtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMDocument2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IXMLDOMDocument2_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IXMLDOMDocument2_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IXMLDOMDocument2_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IXMLDOMDocument2_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IXMLDOMDocument2_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IXMLDOMDocument2_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IXMLDOMNode methods ***/
#define IXMLDOMDocument2_get_nodeName(p,a) (p)->lpVtbl->get_nodeName(p,a)
#define IXMLDOMDocument2_get_nodeValue(p,a) (p)->lpVtbl->get_nodeValue(p,a)
#define IXMLDOMDocument2_put_nodeValue(p,a) (p)->lpVtbl->put_nodeValue(p,a)
#define IXMLDOMDocument2_get_nodeType(p,a) (p)->lpVtbl->get_nodeType(p,a)
#define IXMLDOMDocument2_get_parentNode(p,a) (p)->lpVtbl->get_parentNode(p,a)
#define IXMLDOMDocument2_get_childNodes(p,a) (p)->lpVtbl->get_childNodes(p,a)
#define IXMLDOMDocument2_get_firstChild(p,a) (p)->lpVtbl->get_firstChild(p,a)
#define IXMLDOMDocument2_get_lastChild(p,a) (p)->lpVtbl->get_lastChild(p,a)
#define IXMLDOMDocument2_get_previousSibling(p,a) (p)->lpVtbl->get_previousSibling(p,a)
#define IXMLDOMDocument2_get_nextSibling(p,a) (p)->lpVtbl->get_nextSibling(p,a)
#define IXMLDOMDocument2_get_attributes(p,a) (p)->lpVtbl->get_attributes(p,a)
#define IXMLDOMDocument2_insertBefore(p,a,b,c) (p)->lpVtbl->insertBefore(p,a,b,c)
#define IXMLDOMDocument2_replaceChild(p,a,b,c) (p)->lpVtbl->replaceChild(p,a,b,c)
#define IXMLDOMDocument2_removeChild(p,a,b) (p)->lpVtbl->removeChild(p,a,b)
#define IXMLDOMDocument2_appendChild(p,a,b) (p)->lpVtbl->appendChild(p,a,b)
#define IXMLDOMDocument2_hasChildNodes(p,a) (p)->lpVtbl->hasChildNodes(p,a)
#define IXMLDOMDocument2_get_ownerDocument(p,a) (p)->lpVtbl->get_ownerDocument(p,a)
#define IXMLDOMDocument2_cloneNode(p,a,b) (p)->lpVtbl->cloneNode(p,a,b)
#define IXMLDOMDocument2_get_nodeTypeString(p,a) (p)->lpVtbl->get_nodeTypeString(p,a)
#define IXMLDOMDocument2_get_text(p,a) (p)->lpVtbl->get_text(p,a)
#define IXMLDOMDocument2_put_text(p,a) (p)->lpVtbl->put_text(p,a)
#define IXMLDOMDocument2_get_specified(p,a) (p)->lpVtbl->get_specified(p,a)
#define IXMLDOMDocument2_get_definition(p,a) (p)->lpVtbl->get_definition(p,a)
#define IXMLDOMDocument2_get_nodeTypedValue(p,a) (p)->lpVtbl->get_nodeTypedValue(p,a)
#define IXMLDOMDocument2_put_nodeTypedValue(p,a) (p)->lpVtbl->put_nodeTypedValue(p,a)
#define IXMLDOMDocument2_get_dataType(p,a) (p)->lpVtbl->get_dataType(p,a)
#define IXMLDOMDocument2_put_dataType(p,a) (p)->lpVtbl->put_dataType(p,a)
#define IXMLDOMDocument2_get_xml(p,a) (p)->lpVtbl->get_xml(p,a)
#define IXMLDOMDocument2_transformNode(p,a,b) (p)->lpVtbl->transformNode(p,a,b)
#define IXMLDOMDocument2_selectNodes(p,a,b) (p)->lpVtbl->selectNodes(p,a,b)
#define IXMLDOMDocument2_selectSingleNode(p,a,b) (p)->lpVtbl->selectSingleNode(p,a,b)
#define IXMLDOMDocument2_get_parsed(p,a) (p)->lpVtbl->get_parsed(p,a)
#define IXMLDOMDocument2_get_namespaceURI(p,a) (p)->lpVtbl->get_namespaceURI(p,a)
#define IXMLDOMDocument2_get_prefix(p,a) (p)->lpVtbl->get_prefix(p,a)
#define IXMLDOMDocument2_get_baseName(p,a) (p)->lpVtbl->get_baseName(p,a)
#define IXMLDOMDocument2_transformNodeToObject(p,a,b) (p)->lpVtbl->transformNodeToObject(p,a,b)
/*** IXMLDOMDocument methods ***/
#define IXMLDOMDocument2_get_doctype(p,a) (p)->lpVtbl->get_doctype(p,a)
#define IXMLDOMDocument2_get_implementation(p,a) (p)->lpVtbl->get_implementation(p,a)
#define IXMLDOMDocument2_get_documentElement(p,a) (p)->lpVtbl->get_documentElement(p,a)
#define IXMLDOMDocument2_putref_documentElement(p,a) (p)->lpVtbl->putref_documentElement(p,a)
#define IXMLDOMDocument2_createElement(p,a,b) (p)->lpVtbl->createElement(p,a,b)
#define IXMLDOMDocument2_createDocumentFragment(p,a) (p)->lpVtbl->createDocumentFragment(p,a)
#define IXMLDOMDocument2_createTextNode(p,a,b) (p)->lpVtbl->createTextNode(p,a,b)
#define IXMLDOMDocument2_createComment(p,a,b) (p)->lpVtbl->createComment(p,a,b)
#define IXMLDOMDocument2_createCDATASection(p,a,b) (p)->lpVtbl->createCDATASection(p,a,b)
#define IXMLDOMDocument2_createProcessingInstruction(p,a,b,c) (p)->lpVtbl->createProcessingInstruction(p,a,b,c)
#define IXMLDOMDocument2_createAttribute(p,a,b) (p)->lpVtbl->createAttribute(p,a,b)
#define IXMLDOMDocument2_createEntityReference(p,a,b) (p)->lpVtbl->createEntityReference(p,a,b)
#define IXMLDOMDocument2_getElementsByTagName(p,a,b) (p)->lpVtbl->getElementsByTagName(p,a,b)
#define IXMLDOMDocument2_createNode(p,a,b,c,d) (p)->lpVtbl->createNode(p,a,b,c,d)
#define IXMLDOMDocument2_nodeFromID(p,a,b) (p)->lpVtbl->nodeFromID(p,a,b)
#define IXMLDOMDocument2_load(p,a,b) (p)->lpVtbl->load(p,a,b)
#define IXMLDOMDocument2_get_readyState(p,a) (p)->lpVtbl->get_readyState(p,a)
#define IXMLDOMDocument2_get_parseError(p,a) (p)->lpVtbl->get_parseError(p,a)
#define IXMLDOMDocument2_get_url(p,a) (p)->lpVtbl->get_url(p,a)
#define IXMLDOMDocument2_get_async(p,a) (p)->lpVtbl->get_async(p,a)
#define IXMLDOMDocument2_put_async(p,a) (p)->lpVtbl->put_async(p,a)
#define IXMLDOMDocument2_abort(p) (p)->lpVtbl->abort(p)
#define IXMLDOMDocument2_loadXML(p,a,b) (p)->lpVtbl->loadXML(p,a,b)
#define IXMLDOMDocument2_save(p,a) (p)->lpVtbl->save(p,a)
#define IXMLDOMDocument2_get_validateOnParse(p,a) (p)->lpVtbl->get_validateOnParse(p,a)
#define IXMLDOMDocument2_put_validateOnParse(p,a) (p)->lpVtbl->put_validateOnParse(p,a)
#define IXMLDOMDocument2_get_resolveExternals(p,a) (p)->lpVtbl->get_resolveExternals(p,a)
#define IXMLDOMDocument2_put_resolveExternals(p,a) (p)->lpVtbl->put_resolveExternals(p,a)
#define IXMLDOMDocument2_get_preserveWhiteSpace(p,a) (p)->lpVtbl->get_preserveWhiteSpace(p,a)
#define IXMLDOMDocument2_put_preserveWhiteSpace(p,a) (p)->lpVtbl->put_preserveWhiteSpace(p,a)
#define IXMLDOMDocument2_put_onreadystatechange(p,a) (p)->lpVtbl->put_onreadystatechange(p,a)
#define IXMLDOMDocument2_put_ondataavailable(p,a) (p)->lpVtbl->put_ondataavailable(p,a)
#define IXMLDOMDocument2_put_ontransformnode(p,a) (p)->lpVtbl->put_ontransformnode(p,a)
/*** IXMLDOMDocument2 methods ***/
#define IXMLDOMDocument2_get_namespaces(p,a) (p)->lpVtbl->get_namespaces(p,a)
#define IXMLDOMDocument2_get_schemas(p,a) (p)->lpVtbl->get_schemas(p,a)
#define IXMLDOMDocument2_putref_schemas(p,a) (p)->lpVtbl->putref_schemas(p,a)
#define IXMLDOMDocument2_validate(p,a) (p)->lpVtbl->validate(p,a)
#define IXMLDOMDocument2_setProperty(p,a,b) (p)->lpVtbl->setProperty(p,a,b)
#define IXMLDOMDocument2_getProperty(p,a,b) (p)->lpVtbl->getProperty(p,a,b)
#endif

#endif

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

#endif  /* __IXMLDOMDocument2_INTERFACE_DEFINED__ */

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

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

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

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

    virtual HRESULT STDMETHODCALLTYPE reset(
        ) = 0;

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

};
#else
typedef struct IXMLDOMNodeListVtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

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

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

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

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

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

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

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMNodeList_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IXMLDOMNodeList_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IXMLDOMNodeList_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IXMLDOMNodeList_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IXMLDOMNodeList_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IXMLDOMNodeList_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IXMLDOMNodeList_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IXMLDOMNodeList methods ***/
#define IXMLDOMNodeList_get_item(p,a,b) (p)->lpVtbl->get_item(p,a,b)
#define IXMLDOMNodeList_get_length(p,a) (p)->lpVtbl->get_length(p,a)
#define IXMLDOMNodeList_nextNode(p,a) (p)->lpVtbl->nextNode(p,a)
#define IXMLDOMNodeList_reset(p) (p)->lpVtbl->reset(p)
#define IXMLDOMNodeList_get__newEnum(p,a) (p)->lpVtbl->get__newEnum(p,a)
#endif

#endif

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

#endif  /* __IXMLDOMNodeList_INTERFACE_DEFINED__ */

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

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

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

    virtual HRESULT STDMETHODCALLTYPE put_expr(
        BSTR p) = 0;

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

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

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

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

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

    virtual HRESULT STDMETHODCALLTYPE removeAll(
        ) = 0;

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

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

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

};
#else
typedef struct IXMLDOMSelectionVtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMSelection_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IXMLDOMSelection_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IXMLDOMSelection_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IXMLDOMSelection_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IXMLDOMSelection_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IXMLDOMSelection_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IXMLDOMSelection_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IXMLDOMNodeList methods ***/
#define IXMLDOMSelection_get_item(p,a,b) (p)->lpVtbl->get_item(p,a,b)
#define IXMLDOMSelection_get_length(p,a) (p)->lpVtbl->get_length(p,a)
#define IXMLDOMSelection_nextNode(p,a) (p)->lpVtbl->nextNode(p,a)
#define IXMLDOMSelection_reset(p) (p)->lpVtbl->reset(p)
#define IXMLDOMSelection_get__newEnum(p,a) (p)->lpVtbl->get__newEnum(p,a)
/*** IXMLDOMSelection methods ***/
#define IXMLDOMSelection_get_expr(p,a) (p)->lpVtbl->get_expr(p,a)
#define IXMLDOMSelection_put_expr(p,a) (p)->lpVtbl->put_expr(p,a)
#define IXMLDOMSelection_get_context(p,a) (p)->lpVtbl->get_context(p,a)
#define IXMLDOMSelection_putref_context(p,a) (p)->lpVtbl->putref_context(p,a)
#define IXMLDOMSelection_peekNode(p,a) (p)->lpVtbl->peekNode(p,a)
#define IXMLDOMSelection_matches(p,a,b) (p)->lpVtbl->matches(p,a,b)
#define IXMLDOMSelection_removeNext(p,a) (p)->lpVtbl->removeNext(p,a)
#define IXMLDOMSelection_removeAll(p) (p)->lpVtbl->removeAll(p)
#define IXMLDOMSelection_clone(p,a) (p)->lpVtbl->clone(p,a)
#define IXMLDOMSelection_getProperty(p,a,b) (p)->lpVtbl->getProperty(p,a,b)
#define IXMLDOMSelection_setProperty(p,a,b) (p)->lpVtbl->setProperty(p,a,b)
#endif

#endif

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

#endif  /* __IXMLDOMSelection_INTERFACE_DEFINED__ */

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

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

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

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

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

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

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

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

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

    virtual HRESULT STDMETHODCALLTYPE reset(
        ) = 0;

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

};
#else
typedef struct IXMLDOMNamedNodeMapVtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMNamedNodeMap_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IXMLDOMNamedNodeMap_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IXMLDOMNamedNodeMap_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IXMLDOMNamedNodeMap_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IXMLDOMNamedNodeMap_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IXMLDOMNamedNodeMap_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IXMLDOMNamedNodeMap_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IXMLDOMNamedNodeMap methods ***/
#define IXMLDOMNamedNodeMap_getNamedItem(p,a,b) (p)->lpVtbl->getNamedItem(p,a,b)
#define IXMLDOMNamedNodeMap_setNamedItem(p,a,b) (p)->lpVtbl->setNamedItem(p,a,b)
#define IXMLDOMNamedNodeMap_removeNamedItem(p,a,b) (p)->lpVtbl->removeNamedItem(p,a,b)
#define IXMLDOMNamedNodeMap_get_item(p,a,b) (p)->lpVtbl->get_item(p,a,b)
#define IXMLDOMNamedNodeMap_get_length(p,a) (p)->lpVtbl->get_length(p,a)
#define IXMLDOMNamedNodeMap_getQualifiedItem(p,a,b,c) (p)->lpVtbl->getQualifiedItem(p,a,b,c)
#define IXMLDOMNamedNodeMap_removeQualifiedItem(p,a,b,c) (p)->lpVtbl->removeQualifiedItem(p,a,b,c)
#define IXMLDOMNamedNodeMap_nextNode(p,a) (p)->lpVtbl->nextNode(p,a)
#define IXMLDOMNamedNodeMap_reset(p) (p)->lpVtbl->reset(p)
#define IXMLDOMNamedNodeMap_get__newEnum(p,a) (p)->lpVtbl->get__newEnum(p,a)
#endif

#endif

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

#endif  /* __IXMLDOMNamedNodeMap_INTERFACE_DEFINED__ */

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMDocumentFragment_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IXMLDOMDocumentFragment_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IXMLDOMDocumentFragment_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IXMLDOMDocumentFragment_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IXMLDOMDocumentFragment_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IXMLDOMDocumentFragment_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IXMLDOMDocumentFragment_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IXMLDOMNode methods ***/
#define IXMLDOMDocumentFragment_get_nodeName(p,a) (p)->lpVtbl->get_nodeName(p,a)
#define IXMLDOMDocumentFragment_get_nodeValue(p,a) (p)->lpVtbl->get_nodeValue(p,a)
#define IXMLDOMDocumentFragment_put_nodeValue(p,a) (p)->lpVtbl->put_nodeValue(p,a)
#define IXMLDOMDocumentFragment_get_nodeType(p,a) (p)->lpVtbl->get_nodeType(p,a)
#define IXMLDOMDocumentFragment_get_parentNode(p,a) (p)->lpVtbl->get_parentNode(p,a)
#define IXMLDOMDocumentFragment_get_childNodes(p,a) (p)->lpVtbl->get_childNodes(p,a)
#define IXMLDOMDocumentFragment_get_firstChild(p,a) (p)->lpVtbl->get_firstChild(p,a)
#define IXMLDOMDocumentFragment_get_lastChild(p,a) (p)->lpVtbl->get_lastChild(p,a)
#define IXMLDOMDocumentFragment_get_previousSibling(p,a) (p)->lpVtbl->get_previousSibling(p,a)
#define IXMLDOMDocumentFragment_get_nextSibling(p,a) (p)->lpVtbl->get_nextSibling(p,a)
#define IXMLDOMDocumentFragment_get_attributes(p,a) (p)->lpVtbl->get_attributes(p,a)
#define IXMLDOMDocumentFragment_insertBefore(p,a,b,c) (p)->lpVtbl->insertBefore(p,a,b,c)
#define IXMLDOMDocumentFragment_replaceChild(p,a,b,c) (p)->lpVtbl->replaceChild(p,a,b,c)
#define IXMLDOMDocumentFragment_removeChild(p,a,b) (p)->lpVtbl->removeChild(p,a,b)
#define IXMLDOMDocumentFragment_appendChild(p,a,b) (p)->lpVtbl->appendChild(p,a,b)
#define IXMLDOMDocumentFragment_hasChildNodes(p,a) (p)->lpVtbl->hasChildNodes(p,a)
#define IXMLDOMDocumentFragment_get_ownerDocument(p,a) (p)->lpVtbl->get_ownerDocument(p,a)
#define IXMLDOMDocumentFragment_cloneNode(p,a,b) (p)->lpVtbl->cloneNode(p,a,b)
#define IXMLDOMDocumentFragment_get_nodeTypeString(p,a) (p)->lpVtbl->get_nodeTypeString(p,a)
#define IXMLDOMDocumentFragment_get_text(p,a) (p)->lpVtbl->get_text(p,a)
#define IXMLDOMDocumentFragment_put_text(p,a) (p)->lpVtbl->put_text(p,a)
#define IXMLDOMDocumentFragment_get_specified(p,a) (p)->lpVtbl->get_specified(p,a)
#define IXMLDOMDocumentFragment_get_definition(p,a) (p)->lpVtbl->get_definition(p,a)
#define IXMLDOMDocumentFragment_get_nodeTypedValue(p,a) (p)->lpVtbl->get_nodeTypedValue(p,a)
#define IXMLDOMDocumentFragment_put_nodeTypedValue(p,a) (p)->lpVtbl->put_nodeTypedValue(p,a)
#define IXMLDOMDocumentFragment_get_dataType(p,a) (p)->lpVtbl->get_dataType(p,a)
#define IXMLDOMDocumentFragment_put_dataType(p,a) (p)->lpVtbl->put_dataType(p,a)
#define IXMLDOMDocumentFragment_get_xml(p,a) (p)->lpVtbl->get_xml(p,a)
#define IXMLDOMDocumentFragment_transformNode(p,a,b) (p)->lpVtbl->transformNode(p,a,b)
#define IXMLDOMDocumentFragment_selectNodes(p,a,b) (p)->lpVtbl->selectNodes(p,a,b)
#define IXMLDOMDocumentFragment_selectSingleNode(p,a,b) (p)->lpVtbl->selectSingleNode(p,a,b)
#define IXMLDOMDocumentFragment_get_parsed(p,a) (p)->lpVtbl->get_parsed(p,a)
#define IXMLDOMDocumentFragment_get_namespaceURI(p,a) (p)->lpVtbl->get_namespaceURI(p,a)
#define IXMLDOMDocumentFragment_get_prefix(p,a) (p)->lpVtbl->get_prefix(p,a)
#define IXMLDOMDocumentFragment_get_baseName(p,a) (p)->lpVtbl->get_baseName(p,a)
#define IXMLDOMDocumentFragment_transformNodeToObject(p,a,b) (p)->lpVtbl->transformNodeToObject(p,a,b)
#endif

#endif


#endif  /* __IXMLDOMDocumentFragment_INTERFACE_DEFINED__ */

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

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

    virtual HRESULT STDMETHODCALLTYPE put_data(
        BSTR data) = 0;

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

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

    virtual HRESULT STDMETHODCALLTYPE appendData(
        BSTR p) = 0;

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

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

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

};
#else
typedef struct IXMLDOMCharacterDataVtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    HRESULT (STDMETHODCALLTYPE *get_length)(
        IXMLDOMCharacterData* This,
        long* len);

    HRESULT (STDMETHODCALLTYPE *substringData)(
        IXMLDOMCharacterData* This,
        long offset,
        long count,
        BSTR* p);

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

    HRESULT (STDMETHODCALLTYPE *insertData)(
        IXMLDOMCharacterData* This,
        long offset,
        BSTR p);

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

    HRESULT (STDMETHODCALLTYPE *replaceData)(
        IXMLDOMCharacterData* This,
        long offset,
        long count,
        BSTR p);

    END_INTERFACE
} IXMLDOMCharacterDataVtbl;
interface IXMLDOMCharacterData {
    const IXMLDOMCharacterDataVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMCharacterData_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IXMLDOMCharacterData_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IXMLDOMCharacterData_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IXMLDOMCharacterData_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IXMLDOMCharacterData_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IXMLDOMCharacterData_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IXMLDOMCharacterData_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IXMLDOMNode methods ***/
#define IXMLDOMCharacterData_get_nodeName(p,a) (p)->lpVtbl->get_nodeName(p,a)
#define IXMLDOMCharacterData_get_nodeValue(p,a) (p)->lpVtbl->get_nodeValue(p,a)
#define IXMLDOMCharacterData_put_nodeValue(p,a) (p)->lpVtbl->put_nodeValue(p,a)
#define IXMLDOMCharacterData_get_nodeType(p,a) (p)->lpVtbl->get_nodeType(p,a)
#define IXMLDOMCharacterData_get_parentNode(p,a) (p)->lpVtbl->get_parentNode(p,a)
#define IXMLDOMCharacterData_get_childNodes(p,a) (p)->lpVtbl->get_childNodes(p,a)
#define IXMLDOMCharacterData_get_firstChild(p,a) (p)->lpVtbl->get_firstChild(p,a)
#define IXMLDOMCharacterData_get_lastChild(p,a) (p)->lpVtbl->get_lastChild(p,a)
#define IXMLDOMCharacterData_get_previousSibling(p,a) (p)->lpVtbl->get_previousSibling(p,a)
#define IXMLDOMCharacterData_get_nextSibling(p,a) (p)->lpVtbl->get_nextSibling(p,a)
#define IXMLDOMCharacterData_get_attributes(p,a) (p)->lpVtbl->get_attributes(p,a)
#define IXMLDOMCharacterData_insertBefore(p,a,b,c) (p)->lpVtbl->insertBefore(p,a,b,c)
#define IXMLDOMCharacterData_replaceChild(p,a,b,c) (p)->lpVtbl->replaceChild(p,a,b,c)
#define IXMLDOMCharacterData_removeChild(p,a,b) (p)->lpVtbl->removeChild(p,a,b)
#define IXMLDOMCharacterData_appendChild(p,a,b) (p)->lpVtbl->appendChild(p,a,b)
#define IXMLDOMCharacterData_hasChildNodes(p,a) (p)->lpVtbl->hasChildNodes(p,a)
#define IXMLDOMCharacterData_get_ownerDocument(p,a) (p)->lpVtbl->get_ownerDocument(p,a)
#define IXMLDOMCharacterData_cloneNode(p,a,b) (p)->lpVtbl->cloneNode(p,a,b)
#define IXMLDOMCharacterData_get_nodeTypeString(p,a) (p)->lpVtbl->get_nodeTypeString(p,a)
#define IXMLDOMCharacterData_get_text(p,a) (p)->lpVtbl->get_text(p,a)
#define IXMLDOMCharacterData_put_text(p,a) (p)->lpVtbl->put_text(p,a)
#define IXMLDOMCharacterData_get_specified(p,a) (p)->lpVtbl->get_specified(p,a)
#define IXMLDOMCharacterData_get_definition(p,a) (p)->lpVtbl->get_definition(p,a)
#define IXMLDOMCharacterData_get_nodeTypedValue(p,a) (p)->lpVtbl->get_nodeTypedValue(p,a)
#define IXMLDOMCharacterData_put_nodeTypedValue(p,a) (p)->lpVtbl->put_nodeTypedValue(p,a)
#define IXMLDOMCharacterData_get_dataType(p,a) (p)->lpVtbl->get_dataType(p,a)
#define IXMLDOMCharacterData_put_dataType(p,a) (p)->lpVtbl->put_dataType(p,a)
#define IXMLDOMCharacterData_get_xml(p,a) (p)->lpVtbl->get_xml(p,a)
#define IXMLDOMCharacterData_transformNode(p,a,b) (p)->lpVtbl->transformNode(p,a,b)
#define IXMLDOMCharacterData_selectNodes(p,a,b) (p)->lpVtbl->selectNodes(p,a,b)
#define IXMLDOMCharacterData_selectSingleNode(p,a,b) (p)->lpVtbl->selectSingleNode(p,a,b)
#define IXMLDOMCharacterData_get_parsed(p,a) (p)->lpVtbl->get_parsed(p,a)
#define IXMLDOMCharacterData_get_namespaceURI(p,a) (p)->lpVtbl->get_namespaceURI(p,a)
#define IXMLDOMCharacterData_get_prefix(p,a) (p)->lpVtbl->get_prefix(p,a)
#define IXMLDOMCharacterData_get_baseName(p,a) (p)->lpVtbl->get_baseName(p,a)
#define IXMLDOMCharacterData_transformNodeToObject(p,a,b) (p)->lpVtbl->transformNodeToObject(p,a,b)
/*** IXMLDOMCharacterData methods ***/
#define IXMLDOMCharacterData_get_data(p,a) (p)->lpVtbl->get_data(p,a)
#define IXMLDOMCharacterData_put_data(p,a) (p)->lpVtbl->put_data(p,a)
#define IXMLDOMCharacterData_get_length(p,a) (p)->lpVtbl->get_length(p,a)
#define IXMLDOMCharacterData_substringData(p,a,b,c) (p)->lpVtbl->substringData(p,a,b,c)
#define IXMLDOMCharacterData_appendData(p,a) (p)->lpVtbl->appendData(p,a)
#define IXMLDOMCharacterData_insertData(p,a,b) (p)->lpVtbl->insertData(p,a,b)
#define IXMLDOMCharacterData_deleteData(p,a,b) (p)->lpVtbl->deleteData(p,a,b)
#define IXMLDOMCharacterData_replaceData(p,a,b,c) (p)->lpVtbl->replaceData(p,a,b,c)
#endif

#endif

HRESULT CALLBACK IXMLDOMCharacterData_get_data_Proxy(
    IXMLDOMCharacterData* This,
    BSTR* p);
void __RPC_STUB IXMLDOMCharacterData_get_data_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK 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 CALLBACK IXMLDOMCharacterData_get_length_Proxy(
    IXMLDOMCharacterData* This,
    long* len);
void __RPC_STUB IXMLDOMCharacterData_get_length_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMCharacterData_substringData_Proxy(
    IXMLDOMCharacterData* This,
    long offset,
    long count,
    BSTR* p);
void __RPC_STUB IXMLDOMCharacterData_substringData_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMCharacterData_appendData_Proxy(
    IXMLDOMCharacterData* This,
    BSTR p);
void __RPC_STUB IXMLDOMCharacterData_appendData_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMCharacterData_insertData_Proxy(
    IXMLDOMCharacterData* This,
    long offset,
    BSTR p);
void __RPC_STUB IXMLDOMCharacterData_insertData_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK 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 CALLBACK IXMLDOMCharacterData_replaceData_Proxy(
    IXMLDOMCharacterData* This,
    long offset,
    long count,
    BSTR p);
void __RPC_STUB IXMLDOMCharacterData_replaceData_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMCharacterData_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMAttribute interface
 */
#ifndef __IXMLDOMAttribute_INTERFACE_DEFINED__
#define __IXMLDOMAttribute_INTERFACE_DEFINED__

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

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

    virtual HRESULT STDMETHODCALLTYPE put_value(
        VARIANT var1) = 0;

};
#else
typedef struct IXMLDOMAttributeVtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    END_INTERFACE
} IXMLDOMAttributeVtbl;
interface IXMLDOMAttribute {
    const IXMLDOMAttributeVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMAttribute_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IXMLDOMAttribute_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IXMLDOMAttribute_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IXMLDOMAttribute_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IXMLDOMAttribute_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IXMLDOMAttribute_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IXMLDOMAttribute_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IXMLDOMNode methods ***/
#define IXMLDOMAttribute_get_nodeName(p,a) (p)->lpVtbl->get_nodeName(p,a)
#define IXMLDOMAttribute_get_nodeValue(p,a) (p)->lpVtbl->get_nodeValue(p,a)
#define IXMLDOMAttribute_put_nodeValue(p,a) (p)->lpVtbl->put_nodeValue(p,a)
#define IXMLDOMAttribute_get_nodeType(p,a) (p)->lpVtbl->get_nodeType(p,a)
#define IXMLDOMAttribute_get_parentNode(p,a) (p)->lpVtbl->get_parentNode(p,a)
#define IXMLDOMAttribute_get_childNodes(p,a) (p)->lpVtbl->get_childNodes(p,a)
#define IXMLDOMAttribute_get_firstChild(p,a) (p)->lpVtbl->get_firstChild(p,a)
#define IXMLDOMAttribute_get_lastChild(p,a) (p)->lpVtbl->get_lastChild(p,a)
#define IXMLDOMAttribute_get_previousSibling(p,a) (p)->lpVtbl->get_previousSibling(p,a)
#define IXMLDOMAttribute_get_nextSibling(p,a) (p)->lpVtbl->get_nextSibling(p,a)
#define IXMLDOMAttribute_get_attributes(p,a) (p)->lpVtbl->get_attributes(p,a)
#define IXMLDOMAttribute_insertBefore(p,a,b,c) (p)->lpVtbl->insertBefore(p,a,b,c)
#define IXMLDOMAttribute_replaceChild(p,a,b,c) (p)->lpVtbl->replaceChild(p,a,b,c)
#define IXMLDOMAttribute_removeChild(p,a,b) (p)->lpVtbl->removeChild(p,a,b)
#define IXMLDOMAttribute_appendChild(p,a,b) (p)->lpVtbl->appendChild(p,a,b)
#define IXMLDOMAttribute_hasChildNodes(p,a) (p)->lpVtbl->hasChildNodes(p,a)
#define IXMLDOMAttribute_get_ownerDocument(p,a) (p)->lpVtbl->get_ownerDocument(p,a)
#define IXMLDOMAttribute_cloneNode(p,a,b) (p)->lpVtbl->cloneNode(p,a,b)
#define IXMLDOMAttribute_get_nodeTypeString(p,a) (p)->lpVtbl->get_nodeTypeString(p,a)
#define IXMLDOMAttribute_get_text(p,a) (p)->lpVtbl->get_text(p,a)
#define IXMLDOMAttribute_put_text(p,a) (p)->lpVtbl->put_text(p,a)
#define IXMLDOMAttribute_get_specified(p,a) (p)->lpVtbl->get_specified(p,a)
#define IXMLDOMAttribute_get_definition(p,a) (p)->lpVtbl->get_definition(p,a)
#define IXMLDOMAttribute_get_nodeTypedValue(p,a) (p)->lpVtbl->get_nodeTypedValue(p,a)
#define IXMLDOMAttribute_put_nodeTypedValue(p,a) (p)->lpVtbl->put_nodeTypedValue(p,a)
#define IXMLDOMAttribute_get_dataType(p,a) (p)->lpVtbl->get_dataType(p,a)
#define IXMLDOMAttribute_put_dataType(p,a) (p)->lpVtbl->put_dataType(p,a)
#define IXMLDOMAttribute_get_xml(p,a) (p)->lpVtbl->get_xml(p,a)
#define IXMLDOMAttribute_transformNode(p,a,b) (p)->lpVtbl->transformNode(p,a,b)
#define IXMLDOMAttribute_selectNodes(p,a,b) (p)->lpVtbl->selectNodes(p,a,b)
#define IXMLDOMAttribute_selectSingleNode(p,a,b) (p)->lpVtbl->selectSingleNode(p,a,b)
#define IXMLDOMAttribute_get_parsed(p,a) (p)->lpVtbl->get_parsed(p,a)
#define IXMLDOMAttribute_get_namespaceURI(p,a) (p)->lpVtbl->get_namespaceURI(p,a)
#define IXMLDOMAttribute_get_prefix(p,a) (p)->lpVtbl->get_prefix(p,a)
#define IXMLDOMAttribute_get_baseName(p,a) (p)->lpVtbl->get_baseName(p,a)
#define IXMLDOMAttribute_transformNodeToObject(p,a,b) (p)->lpVtbl->transformNodeToObject(p,a,b)
/*** IXMLDOMAttribute methods ***/
#define IXMLDOMAttribute_get_name(p,a) (p)->lpVtbl->get_name(p,a)
#define IXMLDOMAttribute_get_value(p,a) (p)->lpVtbl->get_value(p,a)
#define IXMLDOMAttribute_put_value(p,a) (p)->lpVtbl->put_value(p,a)
#endif

#endif

HRESULT CALLBACK IXMLDOMAttribute_get_name_Proxy(
    IXMLDOMAttribute* This,
    BSTR* p);
void __RPC_STUB IXMLDOMAttribute_get_name_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMAttribute_get_value_Proxy(
    IXMLDOMAttribute* This,
    VARIANT* var1);
void __RPC_STUB IXMLDOMAttribute_get_value_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMAttribute_put_value_Proxy(
    IXMLDOMAttribute* This,
    VARIANT var1);
void __RPC_STUB IXMLDOMAttribute_put_value_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMAttribute_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMElement interface
 */
#ifndef __IXMLDOMElement_INTERFACE_DEFINED__
#define __IXMLDOMElement_INTERFACE_DEFINED__

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

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

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

    virtual HRESULT STDMETHODCALLTYPE removeAttribute(
        BSTR p) = 0;

    virtual HRESULT STDMETHODCALLTYPE getAttributeNode(
        BSTR p,
        IXMLDOMAttribute** attributeNode) = 0;

    virtual HRESULT STDMETHODCALLTYPE setAttributeNode(
        IXMLDOMAttribute* domAttribute,
        IXMLDOMAttribute** attributeNode) = 0;

    virtual HRESULT STDMETHODCALLTYPE removeAttributeNode(
        IXMLDOMAttribute* domAttribute,
        IXMLDOMAttribute** attributeNode) = 0;

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

    virtual HRESULT STDMETHODCALLTYPE normalize(
        ) = 0;

};
#else
typedef struct IXMLDOMElementVtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    HRESULT (STDMETHODCALLTYPE *getAttribute)(
        IXMLDOMElement* This,
        BSTR p,
        VARIANT* var);

    HRESULT (STDMETHODCALLTYPE *setAttribute)(
        IXMLDOMElement* This,
        BSTR p,
        VARIANT var);

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

    HRESULT (STDMETHODCALLTYPE *getAttributeNode)(
        IXMLDOMElement* This,
        BSTR p,
        IXMLDOMAttribute** attributeNode);

    HRESULT (STDMETHODCALLTYPE *setAttributeNode)(
        IXMLDOMElement* This,
        IXMLDOMAttribute* domAttribute,
        IXMLDOMAttribute** attributeNode);

    HRESULT (STDMETHODCALLTYPE *removeAttributeNode)(
        IXMLDOMElement* This,
        IXMLDOMAttribute* domAttribute,
        IXMLDOMAttribute** attributeNode);

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

    HRESULT (STDMETHODCALLTYPE *normalize)(
        IXMLDOMElement* This);

    END_INTERFACE
} IXMLDOMElementVtbl;
interface IXMLDOMElement {
    const IXMLDOMElementVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMElement_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IXMLDOMElement_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IXMLDOMElement_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IXMLDOMElement_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IXMLDOMElement_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IXMLDOMElement_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IXMLDOMElement_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IXMLDOMNode methods ***/
#define IXMLDOMElement_get_nodeName(p,a) (p)->lpVtbl->get_nodeName(p,a)
#define IXMLDOMElement_get_nodeValue(p,a) (p)->lpVtbl->get_nodeValue(p,a)
#define IXMLDOMElement_put_nodeValue(p,a) (p)->lpVtbl->put_nodeValue(p,a)
#define IXMLDOMElement_get_nodeType(p,a) (p)->lpVtbl->get_nodeType(p,a)
#define IXMLDOMElement_get_parentNode(p,a) (p)->lpVtbl->get_parentNode(p,a)
#define IXMLDOMElement_get_childNodes(p,a) (p)->lpVtbl->get_childNodes(p,a)
#define IXMLDOMElement_get_firstChild(p,a) (p)->lpVtbl->get_firstChild(p,a)
#define IXMLDOMElement_get_lastChild(p,a) (p)->lpVtbl->get_lastChild(p,a)
#define IXMLDOMElement_get_previousSibling(p,a) (p)->lpVtbl->get_previousSibling(p,a)
#define IXMLDOMElement_get_nextSibling(p,a) (p)->lpVtbl->get_nextSibling(p,a)
#define IXMLDOMElement_get_attributes(p,a) (p)->lpVtbl->get_attributes(p,a)
#define IXMLDOMElement_insertBefore(p,a,b,c) (p)->lpVtbl->insertBefore(p,a,b,c)
#define IXMLDOMElement_replaceChild(p,a,b,c) (p)->lpVtbl->replaceChild(p,a,b,c)
#define IXMLDOMElement_removeChild(p,a,b) (p)->lpVtbl->removeChild(p,a,b)
#define IXMLDOMElement_appendChild(p,a,b) (p)->lpVtbl->appendChild(p,a,b)
#define IXMLDOMElement_hasChildNodes(p,a) (p)->lpVtbl->hasChildNodes(p,a)
#define IXMLDOMElement_get_ownerDocument(p,a) (p)->lpVtbl->get_ownerDocument(p,a)
#define IXMLDOMElement_cloneNode(p,a,b) (p)->lpVtbl->cloneNode(p,a,b)
#define IXMLDOMElement_get_nodeTypeString(p,a) (p)->lpVtbl->get_nodeTypeString(p,a)
#define IXMLDOMElement_get_text(p,a) (p)->lpVtbl->get_text(p,a)
#define IXMLDOMElement_put_text(p,a) (p)->lpVtbl->put_text(p,a)
#define IXMLDOMElement_get_specified(p,a) (p)->lpVtbl->get_specified(p,a)
#define IXMLDOMElement_get_definition(p,a) (p)->lpVtbl->get_definition(p,a)
#define IXMLDOMElement_get_nodeTypedValue(p,a) (p)->lpVtbl->get_nodeTypedValue(p,a)
#define IXMLDOMElement_put_nodeTypedValue(p,a) (p)->lpVtbl->put_nodeTypedValue(p,a)
#define IXMLDOMElement_get_dataType(p,a) (p)->lpVtbl->get_dataType(p,a)
#define IXMLDOMElement_put_dataType(p,a) (p)->lpVtbl->put_dataType(p,a)
#define IXMLDOMElement_get_xml(p,a) (p)->lpVtbl->get_xml(p,a)
#define IXMLDOMElement_transformNode(p,a,b) (p)->lpVtbl->transformNode(p,a,b)
#define IXMLDOMElement_selectNodes(p,a,b) (p)->lpVtbl->selectNodes(p,a,b)
#define IXMLDOMElement_selectSingleNode(p,a,b) (p)->lpVtbl->selectSingleNode(p,a,b)
#define IXMLDOMElement_get_parsed(p,a) (p)->lpVtbl->get_parsed(p,a)
#define IXMLDOMElement_get_namespaceURI(p,a) (p)->lpVtbl->get_namespaceURI(p,a)
#define IXMLDOMElement_get_prefix(p,a) (p)->lpVtbl->get_prefix(p,a)
#define IXMLDOMElement_get_baseName(p,a) (p)->lpVtbl->get_baseName(p,a)
#define IXMLDOMElement_transformNodeToObject(p,a,b) (p)->lpVtbl->transformNodeToObject(p,a,b)
/*** IXMLDOMElement methods ***/
#define IXMLDOMElement_get_tagName(p,a) (p)->lpVtbl->get_tagName(p,a)
#define IXMLDOMElement_getAttribute(p,a,b) (p)->lpVtbl->getAttribute(p,a,b)
#define IXMLDOMElement_setAttribute(p,a,b) (p)->lpVtbl->setAttribute(p,a,b)
#define IXMLDOMElement_removeAttribute(p,a) (p)->lpVtbl->removeAttribute(p,a)
#define IXMLDOMElement_getAttributeNode(p,a,b) (p)->lpVtbl->getAttributeNode(p,a,b)
#define IXMLDOMElement_setAttributeNode(p,a,b) (p)->lpVtbl->setAttributeNode(p,a,b)
#define IXMLDOMElement_removeAttributeNode(p,a,b) (p)->lpVtbl->removeAttributeNode(p,a,b)
#define IXMLDOMElement_getElementsByTagName(p,a,b) (p)->lpVtbl->getElementsByTagName(p,a,b)
#define IXMLDOMElement_normalize(p) (p)->lpVtbl->normalize(p)
#endif

#endif

HRESULT CALLBACK IXMLDOMElement_get_tagName_Proxy(
    IXMLDOMElement* This,
    BSTR* p);
void __RPC_STUB IXMLDOMElement_get_tagName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMElement_getAttribute_Proxy(
    IXMLDOMElement* This,
    BSTR p,
    VARIANT* var);
void __RPC_STUB IXMLDOMElement_getAttribute_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMElement_setAttribute_Proxy(
    IXMLDOMElement* This,
    BSTR p,
    VARIANT var);
void __RPC_STUB IXMLDOMElement_setAttribute_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMElement_removeAttribute_Proxy(
    IXMLDOMElement* This,
    BSTR p);
void __RPC_STUB IXMLDOMElement_removeAttribute_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMElement_getAttributeNode_Proxy(
    IXMLDOMElement* This,
    BSTR p,
    IXMLDOMAttribute** attributeNode);
void __RPC_STUB IXMLDOMElement_getAttributeNode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK 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 CALLBACK 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 CALLBACK IXMLDOMElement_getElementsByTagName_Proxy(
    IXMLDOMElement* This,
    BSTR p,
    IXMLDOMNodeList** resultList);
void __RPC_STUB IXMLDOMElement_getElementsByTagName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMElement_normalize_Proxy(
    IXMLDOMElement* This);
void __RPC_STUB IXMLDOMElement_normalize_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMElement_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMText interface
 */
#ifndef __IXMLDOMText_INTERFACE_DEFINED__
#define __IXMLDOMText_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDOMText, 0x2933bf87, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLDOMText : public IXMLDOMCharacterData
{
    virtual HRESULT STDMETHODCALLTYPE splitText(
        long offset,
        IXMLDOMText** txtNode) = 0;

};
#else
typedef struct IXMLDOMTextVtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    HRESULT (STDMETHODCALLTYPE *get_length)(
        IXMLDOMText* This,
        long* len);

    HRESULT (STDMETHODCALLTYPE *substringData)(
        IXMLDOMText* This,
        long offset,
        long count,
        BSTR* p);

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

    HRESULT (STDMETHODCALLTYPE *insertData)(
        IXMLDOMText* This,
        long offset,
        BSTR p);

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

    HRESULT (STDMETHODCALLTYPE *replaceData)(
        IXMLDOMText* This,
        long offset,
        long count,
        BSTR p);

    /*** IXMLDOMText methods ***/
    HRESULT (STDMETHODCALLTYPE *splitText)(
        IXMLDOMText* This,
        long offset,
        IXMLDOMText** txtNode);

    END_INTERFACE
} IXMLDOMTextVtbl;
interface IXMLDOMText {
    const IXMLDOMTextVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMText_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IXMLDOMText_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IXMLDOMText_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IXMLDOMText_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IXMLDOMText_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IXMLDOMText_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IXMLDOMText_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IXMLDOMNode methods ***/
#define IXMLDOMText_get_nodeName(p,a) (p)->lpVtbl->get_nodeName(p,a)
#define IXMLDOMText_get_nodeValue(p,a) (p)->lpVtbl->get_nodeValue(p,a)
#define IXMLDOMText_put_nodeValue(p,a) (p)->lpVtbl->put_nodeValue(p,a)
#define IXMLDOMText_get_nodeType(p,a) (p)->lpVtbl->get_nodeType(p,a)
#define IXMLDOMText_get_parentNode(p,a) (p)->lpVtbl->get_parentNode(p,a)
#define IXMLDOMText_get_childNodes(p,a) (p)->lpVtbl->get_childNodes(p,a)
#define IXMLDOMText_get_firstChild(p,a) (p)->lpVtbl->get_firstChild(p,a)
#define IXMLDOMText_get_lastChild(p,a) (p)->lpVtbl->get_lastChild(p,a)
#define IXMLDOMText_get_previousSibling(p,a) (p)->lpVtbl->get_previousSibling(p,a)
#define IXMLDOMText_get_nextSibling(p,a) (p)->lpVtbl->get_nextSibling(p,a)
#define IXMLDOMText_get_attributes(p,a) (p)->lpVtbl->get_attributes(p,a)
#define IXMLDOMText_insertBefore(p,a,b,c) (p)->lpVtbl->insertBefore(p,a,b,c)
#define IXMLDOMText_replaceChild(p,a,b,c) (p)->lpVtbl->replaceChild(p,a,b,c)
#define IXMLDOMText_removeChild(p,a,b) (p)->lpVtbl->removeChild(p,a,b)
#define IXMLDOMText_appendChild(p,a,b) (p)->lpVtbl->appendChild(p,a,b)
#define IXMLDOMText_hasChildNodes(p,a) (p)->lpVtbl->hasChildNodes(p,a)
#define IXMLDOMText_get_ownerDocument(p,a) (p)->lpVtbl->get_ownerDocument(p,a)
#define IXMLDOMText_cloneNode(p,a,b) (p)->lpVtbl->cloneNode(p,a,b)
#define IXMLDOMText_get_nodeTypeString(p,a) (p)->lpVtbl->get_nodeTypeString(p,a)
#define IXMLDOMText_get_text(p,a) (p)->lpVtbl->get_text(p,a)
#define IXMLDOMText_put_text(p,a) (p)->lpVtbl->put_text(p,a)
#define IXMLDOMText_get_specified(p,a) (p)->lpVtbl->get_specified(p,a)
#define IXMLDOMText_get_definition(p,a) (p)->lpVtbl->get_definition(p,a)
#define IXMLDOMText_get_nodeTypedValue(p,a) (p)->lpVtbl->get_nodeTypedValue(p,a)
#define IXMLDOMText_put_nodeTypedValue(p,a) (p)->lpVtbl->put_nodeTypedValue(p,a)
#define IXMLDOMText_get_dataType(p,a) (p)->lpVtbl->get_dataType(p,a)
#define IXMLDOMText_put_dataType(p,a) (p)->lpVtbl->put_dataType(p,a)
#define IXMLDOMText_get_xml(p,a) (p)->lpVtbl->get_xml(p,a)
#define IXMLDOMText_transformNode(p,a,b) (p)->lpVtbl->transformNode(p,a,b)
#define IXMLDOMText_selectNodes(p,a,b) (p)->lpVtbl->selectNodes(p,a,b)
#define IXMLDOMText_selectSingleNode(p,a,b) (p)->lpVtbl->selectSingleNode(p,a,b)
#define IXMLDOMText_get_parsed(p,a) (p)->lpVtbl->get_parsed(p,a)
#define IXMLDOMText_get_namespaceURI(p,a) (p)->lpVtbl->get_namespaceURI(p,a)
#define IXMLDOMText_get_prefix(p,a) (p)->lpVtbl->get_prefix(p,a)
#define IXMLDOMText_get_baseName(p,a) (p)->lpVtbl->get_baseName(p,a)
#define IXMLDOMText_transformNodeToObject(p,a,b) (p)->lpVtbl->transformNodeToObject(p,a,b)
/*** IXMLDOMCharacterData methods ***/
#define IXMLDOMText_get_data(p,a) (p)->lpVtbl->get_data(p,a)
#define IXMLDOMText_put_data(p,a) (p)->lpVtbl->put_data(p,a)
#define IXMLDOMText_get_length(p,a) (p)->lpVtbl->get_length(p,a)
#define IXMLDOMText_substringData(p,a,b,c) (p)->lpVtbl->substringData(p,a,b,c)
#define IXMLDOMText_appendData(p,a) (p)->lpVtbl->appendData(p,a)
#define IXMLDOMText_insertData(p,a,b) (p)->lpVtbl->insertData(p,a,b)
#define IXMLDOMText_deleteData(p,a,b) (p)->lpVtbl->deleteData(p,a,b)
#define IXMLDOMText_replaceData(p,a,b,c) (p)->lpVtbl->replaceData(p,a,b,c)
/*** IXMLDOMText methods ***/
#define IXMLDOMText_splitText(p,a,b) (p)->lpVtbl->splitText(p,a,b)
#endif

#endif

HRESULT CALLBACK IXMLDOMText_splitText_Proxy(
    IXMLDOMText* This,
    long offset,
    IXMLDOMText** txtNode);
void __RPC_STUB IXMLDOMText_splitText_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMText_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMComment interface
 */
#ifndef __IXMLDOMComment_INTERFACE_DEFINED__
#define __IXMLDOMComment_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDOMComment, 0x2933bf88, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLDOMComment : public IXMLDOMCharacterData
{
};
#else
typedef struct IXMLDOMCommentVtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    HRESULT (STDMETHODCALLTYPE *get_length)(
        IXMLDOMComment* This,
        long* len);

    HRESULT (STDMETHODCALLTYPE *substringData)(
        IXMLDOMComment* This,
        long offset,
        long count,
        BSTR* p);

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

    HRESULT (STDMETHODCALLTYPE *insertData)(
        IXMLDOMComment* This,
        long offset,
        BSTR p);

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

    HRESULT (STDMETHODCALLTYPE *replaceData)(
        IXMLDOMComment* This,
        long offset,
        long count,
        BSTR p);

    END_INTERFACE
} IXMLDOMCommentVtbl;
interface IXMLDOMComment {
    const IXMLDOMCommentVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMComment_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IXMLDOMComment_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IXMLDOMComment_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IXMLDOMComment_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IXMLDOMComment_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IXMLDOMComment_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IXMLDOMComment_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IXMLDOMNode methods ***/
#define IXMLDOMComment_get_nodeName(p,a) (p)->lpVtbl->get_nodeName(p,a)
#define IXMLDOMComment_get_nodeValue(p,a) (p)->lpVtbl->get_nodeValue(p,a)
#define IXMLDOMComment_put_nodeValue(p,a) (p)->lpVtbl->put_nodeValue(p,a)
#define IXMLDOMComment_get_nodeType(p,a) (p)->lpVtbl->get_nodeType(p,a)
#define IXMLDOMComment_get_parentNode(p,a) (p)->lpVtbl->get_parentNode(p,a)
#define IXMLDOMComment_get_childNodes(p,a) (p)->lpVtbl->get_childNodes(p,a)
#define IXMLDOMComment_get_firstChild(p,a) (p)->lpVtbl->get_firstChild(p,a)
#define IXMLDOMComment_get_lastChild(p,a) (p)->lpVtbl->get_lastChild(p,a)
#define IXMLDOMComment_get_previousSibling(p,a) (p)->lpVtbl->get_previousSibling(p,a)
#define IXMLDOMComment_get_nextSibling(p,a) (p)->lpVtbl->get_nextSibling(p,a)
#define IXMLDOMComment_get_attributes(p,a) (p)->lpVtbl->get_attributes(p,a)
#define IXMLDOMComment_insertBefore(p,a,b,c) (p)->lpVtbl->insertBefore(p,a,b,c)
#define IXMLDOMComment_replaceChild(p,a,b,c) (p)->lpVtbl->replaceChild(p,a,b,c)
#define IXMLDOMComment_removeChild(p,a,b) (p)->lpVtbl->removeChild(p,a,b)
#define IXMLDOMComment_appendChild(p,a,b) (p)->lpVtbl->appendChild(p,a,b)
#define IXMLDOMComment_hasChildNodes(p,a) (p)->lpVtbl->hasChildNodes(p,a)
#define IXMLDOMComment_get_ownerDocument(p,a) (p)->lpVtbl->get_ownerDocument(p,a)
#define IXMLDOMComment_cloneNode(p,a,b) (p)->lpVtbl->cloneNode(p,a,b)
#define IXMLDOMComment_get_nodeTypeString(p,a) (p)->lpVtbl->get_nodeTypeString(p,a)
#define IXMLDOMComment_get_text(p,a) (p)->lpVtbl->get_text(p,a)
#define IXMLDOMComment_put_text(p,a) (p)->lpVtbl->put_text(p,a)
#define IXMLDOMComment_get_specified(p,a) (p)->lpVtbl->get_specified(p,a)
#define IXMLDOMComment_get_definition(p,a) (p)->lpVtbl->get_definition(p,a)
#define IXMLDOMComment_get_nodeTypedValue(p,a) (p)->lpVtbl->get_nodeTypedValue(p,a)
#define IXMLDOMComment_put_nodeTypedValue(p,a) (p)->lpVtbl->put_nodeTypedValue(p,a)
#define IXMLDOMComment_get_dataType(p,a) (p)->lpVtbl->get_dataType(p,a)
#define IXMLDOMComment_put_dataType(p,a) (p)->lpVtbl->put_dataType(p,a)
#define IXMLDOMComment_get_xml(p,a) (p)->lpVtbl->get_xml(p,a)
#define IXMLDOMComment_transformNode(p,a,b) (p)->lpVtbl->transformNode(p,a,b)
#define IXMLDOMComment_selectNodes(p,a,b) (p)->lpVtbl->selectNodes(p,a,b)
#define IXMLDOMComment_selectSingleNode(p,a,b) (p)->lpVtbl->selectSingleNode(p,a,b)
#define IXMLDOMComment_get_parsed(p,a) (p)->lpVtbl->get_parsed(p,a)
#define IXMLDOMComment_get_namespaceURI(p,a) (p)->lpVtbl->get_namespaceURI(p,a)
#define IXMLDOMComment_get_prefix(p,a) (p)->lpVtbl->get_prefix(p,a)
#define IXMLDOMComment_get_baseName(p,a) (p)->lpVtbl->get_baseName(p,a)
#define IXMLDOMComment_transformNodeToObject(p,a,b) (p)->lpVtbl->transformNodeToObject(p,a,b)
/*** IXMLDOMCharacterData methods ***/
#define IXMLDOMComment_get_data(p,a) (p)->lpVtbl->get_data(p,a)
#define IXMLDOMComment_put_data(p,a) (p)->lpVtbl->put_data(p,a)
#define IXMLDOMComment_get_length(p,a) (p)->lpVtbl->get_length(p,a)
#define IXMLDOMComment_substringData(p,a,b,c) (p)->lpVtbl->substringData(p,a,b,c)
#define IXMLDOMComment_appendData(p,a) (p)->lpVtbl->appendData(p,a)
#define IXMLDOMComment_insertData(p,a,b) (p)->lpVtbl->insertData(p,a,b)
#define IXMLDOMComment_deleteData(p,a,b) (p)->lpVtbl->deleteData(p,a,b)
#define IXMLDOMComment_replaceData(p,a,b,c) (p)->lpVtbl->replaceData(p,a,b,c)
#endif

#endif


#endif  /* __IXMLDOMComment_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMProcessingInstruction interface
 */
#ifndef __IXMLDOMProcessingInstruction_INTERFACE_DEFINED__
#define __IXMLDOMProcessingInstruction_INTERFACE_DEFINED__

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

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

    virtual HRESULT STDMETHODCALLTYPE put_data(
        BSTR p) = 0;

};
#else
typedef struct IXMLDOMProcessingInstructionVtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    END_INTERFACE
} IXMLDOMProcessingInstructionVtbl;
interface IXMLDOMProcessingInstruction {
    const IXMLDOMProcessingInstructionVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMProcessingInstruction_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IXMLDOMProcessingInstruction_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IXMLDOMProcessingInstruction_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IXMLDOMProcessingInstruction_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IXMLDOMProcessingInstruction_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IXMLDOMProcessingInstruction_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IXMLDOMProcessingInstruction_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IXMLDOMNode methods ***/
#define IXMLDOMProcessingInstruction_get_nodeName(p,a) (p)->lpVtbl->get_nodeName(p,a)
#define IXMLDOMProcessingInstruction_get_nodeValue(p,a) (p)->lpVtbl->get_nodeValue(p,a)
#define IXMLDOMProcessingInstruction_put_nodeValue(p,a) (p)->lpVtbl->put_nodeValue(p,a)
#define IXMLDOMProcessingInstruction_get_nodeType(p,a) (p)->lpVtbl->get_nodeType(p,a)
#define IXMLDOMProcessingInstruction_get_parentNode(p,a) (p)->lpVtbl->get_parentNode(p,a)
#define IXMLDOMProcessingInstruction_get_childNodes(p,a) (p)->lpVtbl->get_childNodes(p,a)
#define IXMLDOMProcessingInstruction_get_firstChild(p,a) (p)->lpVtbl->get_firstChild(p,a)
#define IXMLDOMProcessingInstruction_get_lastChild(p,a) (p)->lpVtbl->get_lastChild(p,a)
#define IXMLDOMProcessingInstruction_get_previousSibling(p,a) (p)->lpVtbl->get_previousSibling(p,a)
#define IXMLDOMProcessingInstruction_get_nextSibling(p,a) (p)->lpVtbl->get_nextSibling(p,a)
#define IXMLDOMProcessingInstruction_get_attributes(p,a) (p)->lpVtbl->get_attributes(p,a)
#define IXMLDOMProcessingInstruction_insertBefore(p,a,b,c) (p)->lpVtbl->insertBefore(p,a,b,c)
#define IXMLDOMProcessingInstruction_replaceChild(p,a,b,c) (p)->lpVtbl->replaceChild(p,a,b,c)
#define IXMLDOMProcessingInstruction_removeChild(p,a,b) (p)->lpVtbl->removeChild(p,a,b)
#define IXMLDOMProcessingInstruction_appendChild(p,a,b) (p)->lpVtbl->appendChild(p,a,b)
#define IXMLDOMProcessingInstruction_hasChildNodes(p,a) (p)->lpVtbl->hasChildNodes(p,a)
#define IXMLDOMProcessingInstruction_get_ownerDocument(p,a) (p)->lpVtbl->get_ownerDocument(p,a)
#define IXMLDOMProcessingInstruction_cloneNode(p,a,b) (p)->lpVtbl->cloneNode(p,a,b)
#define IXMLDOMProcessingInstruction_get_nodeTypeString(p,a) (p)->lpVtbl->get_nodeTypeString(p,a)
#define IXMLDOMProcessingInstruction_get_text(p,a) (p)->lpVtbl->get_text(p,a)
#define IXMLDOMProcessingInstruction_put_text(p,a) (p)->lpVtbl->put_text(p,a)
#define IXMLDOMProcessingInstruction_get_specified(p,a) (p)->lpVtbl->get_specified(p,a)
#define IXMLDOMProcessingInstruction_get_definition(p,a) (p)->lpVtbl->get_definition(p,a)
#define IXMLDOMProcessingInstruction_get_nodeTypedValue(p,a) (p)->lpVtbl->get_nodeTypedValue(p,a)
#define IXMLDOMProcessingInstruction_put_nodeTypedValue(p,a) (p)->lpVtbl->put_nodeTypedValue(p,a)
#define IXMLDOMProcessingInstruction_get_dataType(p,a) (p)->lpVtbl->get_dataType(p,a)
#define IXMLDOMProcessingInstruction_put_dataType(p,a) (p)->lpVtbl->put_dataType(p,a)
#define IXMLDOMProcessingInstruction_get_xml(p,a) (p)->lpVtbl->get_xml(p,a)
#define IXMLDOMProcessingInstruction_transformNode(p,a,b) (p)->lpVtbl->transformNode(p,a,b)
#define IXMLDOMProcessingInstruction_selectNodes(p,a,b) (p)->lpVtbl->selectNodes(p,a,b)
#define IXMLDOMProcessingInstruction_selectSingleNode(p,a,b) (p)->lpVtbl->selectSingleNode(p,a,b)
#define IXMLDOMProcessingInstruction_get_parsed(p,a) (p)->lpVtbl->get_parsed(p,a)
#define IXMLDOMProcessingInstruction_get_namespaceURI(p,a) (p)->lpVtbl->get_namespaceURI(p,a)
#define IXMLDOMProcessingInstruction_get_prefix(p,a) (p)->lpVtbl->get_prefix(p,a)
#define IXMLDOMProcessingInstruction_get_baseName(p,a) (p)->lpVtbl->get_baseName(p,a)
#define IXMLDOMProcessingInstruction_transformNodeToObject(p,a,b) (p)->lpVtbl->transformNodeToObject(p,a,b)
/*** IXMLDOMProcessingInstruction methods ***/
#define IXMLDOMProcessingInstruction_get_target(p,a) (p)->lpVtbl->get_target(p,a)
#define IXMLDOMProcessingInstruction_get_data(p,a) (p)->lpVtbl->get_data(p,a)
#define IXMLDOMProcessingInstruction_put_data(p,a) (p)->lpVtbl->put_data(p,a)
#endif

#endif

HRESULT CALLBACK IXMLDOMProcessingInstruction_get_target_Proxy(
    IXMLDOMProcessingInstruction* This,
    BSTR* p);
void __RPC_STUB IXMLDOMProcessingInstruction_get_target_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMProcessingInstruction_get_data_Proxy(
    IXMLDOMProcessingInstruction* This,
    BSTR* p);
void __RPC_STUB IXMLDOMProcessingInstruction_get_data_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMProcessingInstruction_put_data_Proxy(
    IXMLDOMProcessingInstruction* This,
    BSTR p);
void __RPC_STUB IXMLDOMProcessingInstruction_put_data_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMProcessingInstruction_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMCDATASection interface
 */
#ifndef __IXMLDOMCDATASection_INTERFACE_DEFINED__
#define __IXMLDOMCDATASection_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDOMCDATASection, 0x2933bf8a, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLDOMCDATASection : public IXMLDOMText
{
};
#else
typedef struct IXMLDOMCDATASectionVtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    HRESULT (STDMETHODCALLTYPE *get_length)(
        IXMLDOMCDATASection* This,
        long* len);

    HRESULT (STDMETHODCALLTYPE *substringData)(
        IXMLDOMCDATASection* This,
        long offset,
        long count,
        BSTR* p);

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

    HRESULT (STDMETHODCALLTYPE *insertData)(
        IXMLDOMCDATASection* This,
        long offset,
        BSTR p);

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

    HRESULT (STDMETHODCALLTYPE *replaceData)(
        IXMLDOMCDATASection* This,
        long offset,
        long count,
        BSTR p);

    /*** IXMLDOMText methods ***/
    HRESULT (STDMETHODCALLTYPE *splitText)(
        IXMLDOMCDATASection* This,
        long offset,
        IXMLDOMText** txtNode);

    END_INTERFACE
} IXMLDOMCDATASectionVtbl;
interface IXMLDOMCDATASection {
    const IXMLDOMCDATASectionVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMCDATASection_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IXMLDOMCDATASection_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IXMLDOMCDATASection_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IXMLDOMCDATASection_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IXMLDOMCDATASection_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IXMLDOMCDATASection_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IXMLDOMCDATASection_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IXMLDOMNode methods ***/
#define IXMLDOMCDATASection_get_nodeName(p,a) (p)->lpVtbl->get_nodeName(p,a)
#define IXMLDOMCDATASection_get_nodeValue(p,a) (p)->lpVtbl->get_nodeValue(p,a)
#define IXMLDOMCDATASection_put_nodeValue(p,a) (p)->lpVtbl->put_nodeValue(p,a)
#define IXMLDOMCDATASection_get_nodeType(p,a) (p)->lpVtbl->get_nodeType(p,a)
#define IXMLDOMCDATASection_get_parentNode(p,a) (p)->lpVtbl->get_parentNode(p,a)
#define IXMLDOMCDATASection_get_childNodes(p,a) (p)->lpVtbl->get_childNodes(p,a)
#define IXMLDOMCDATASection_get_firstChild(p,a) (p)->lpVtbl->get_firstChild(p,a)
#define IXMLDOMCDATASection_get_lastChild(p,a) (p)->lpVtbl->get_lastChild(p,a)
#define IXMLDOMCDATASection_get_previousSibling(p,a) (p)->lpVtbl->get_previousSibling(p,a)
#define IXMLDOMCDATASection_get_nextSibling(p,a) (p)->lpVtbl->get_nextSibling(p,a)
#define IXMLDOMCDATASection_get_attributes(p,a) (p)->lpVtbl->get_attributes(p,a)
#define IXMLDOMCDATASection_insertBefore(p,a,b,c) (p)->lpVtbl->insertBefore(p,a,b,c)
#define IXMLDOMCDATASection_replaceChild(p,a,b,c) (p)->lpVtbl->replaceChild(p,a,b,c)
#define IXMLDOMCDATASection_removeChild(p,a,b) (p)->lpVtbl->removeChild(p,a,b)
#define IXMLDOMCDATASection_appendChild(p,a,b) (p)->lpVtbl->appendChild(p,a,b)
#define IXMLDOMCDATASection_hasChildNodes(p,a) (p)->lpVtbl->hasChildNodes(p,a)
#define IXMLDOMCDATASection_get_ownerDocument(p,a) (p)->lpVtbl->get_ownerDocument(p,a)
#define IXMLDOMCDATASection_cloneNode(p,a,b) (p)->lpVtbl->cloneNode(p,a,b)
#define IXMLDOMCDATASection_get_nodeTypeString(p,a) (p)->lpVtbl->get_nodeTypeString(p,a)
#define IXMLDOMCDATASection_get_text(p,a) (p)->lpVtbl->get_text(p,a)
#define IXMLDOMCDATASection_put_text(p,a) (p)->lpVtbl->put_text(p,a)
#define IXMLDOMCDATASection_get_specified(p,a) (p)->lpVtbl->get_specified(p,a)
#define IXMLDOMCDATASection_get_definition(p,a) (p)->lpVtbl->get_definition(p,a)
#define IXMLDOMCDATASection_get_nodeTypedValue(p,a) (p)->lpVtbl->get_nodeTypedValue(p,a)
#define IXMLDOMCDATASection_put_nodeTypedValue(p,a) (p)->lpVtbl->put_nodeTypedValue(p,a)
#define IXMLDOMCDATASection_get_dataType(p,a) (p)->lpVtbl->get_dataType(p,a)
#define IXMLDOMCDATASection_put_dataType(p,a) (p)->lpVtbl->put_dataType(p,a)
#define IXMLDOMCDATASection_get_xml(p,a) (p)->lpVtbl->get_xml(p,a)
#define IXMLDOMCDATASection_transformNode(p,a,b) (p)->lpVtbl->transformNode(p,a,b)
#define IXMLDOMCDATASection_selectNodes(p,a,b) (p)->lpVtbl->selectNodes(p,a,b)
#define IXMLDOMCDATASection_selectSingleNode(p,a,b) (p)->lpVtbl->selectSingleNode(p,a,b)
#define IXMLDOMCDATASection_get_parsed(p,a) (p)->lpVtbl->get_parsed(p,a)
#define IXMLDOMCDATASection_get_namespaceURI(p,a) (p)->lpVtbl->get_namespaceURI(p,a)
#define IXMLDOMCDATASection_get_prefix(p,a) (p)->lpVtbl->get_prefix(p,a)
#define IXMLDOMCDATASection_get_baseName(p,a) (p)->lpVtbl->get_baseName(p,a)
#define IXMLDOMCDATASection_transformNodeToObject(p,a,b) (p)->lpVtbl->transformNodeToObject(p,a,b)
/*** IXMLDOMCharacterData methods ***/
#define IXMLDOMCDATASection_get_data(p,a) (p)->lpVtbl->get_data(p,a)
#define IXMLDOMCDATASection_put_data(p,a) (p)->lpVtbl->put_data(p,a)
#define IXMLDOMCDATASection_get_length(p,a) (p)->lpVtbl->get_length(p,a)
#define IXMLDOMCDATASection_substringData(p,a,b,c) (p)->lpVtbl->substringData(p,a,b,c)
#define IXMLDOMCDATASection_appendData(p,a) (p)->lpVtbl->appendData(p,a)
#define IXMLDOMCDATASection_insertData(p,a,b) (p)->lpVtbl->insertData(p,a,b)
#define IXMLDOMCDATASection_deleteData(p,a,b) (p)->lpVtbl->deleteData(p,a,b)
#define IXMLDOMCDATASection_replaceData(p,a,b,c) (p)->lpVtbl->replaceData(p,a,b,c)
/*** IXMLDOMText methods ***/
#define IXMLDOMCDATASection_splitText(p,a,b) (p)->lpVtbl->splitText(p,a,b)
#endif

#endif


#endif  /* __IXMLDOMCDATASection_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMDocumentType interface
 */
#ifndef __IXMLDOMDocumentType_INTERFACE_DEFINED__
#define __IXMLDOMDocumentType_INTERFACE_DEFINED__

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

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

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

};
#else
typedef struct IXMLDOMDocumentTypeVtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

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

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

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

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

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

    HRESULT (STDMETHODCALLTYPE *get_childNodes)(
        IXMLDOMDocumentType* This,
        IXMLDOMNodeList** outList);

    HRESULT (STDMETHODCALLTYPE *get_firstChild)(
        IXMLDOMDocumentType* This,
        IXMLDOMNode** domNode);

    HRESULT (STDMETHODCALLTYPE *get_lastChild)(
        IXMLDOMDocumentType* This,
        IXMLDOMNode** domNode);

    HRESULT (STDMETHODCALLTYPE *get_previousSibling)(
        IXMLDOMDocumentType* This,
        IXMLDOMNode** domNode);

    HRESULT (STDMETHODCALLTYPE *get_nextSibling)(
        IXMLDOMDocumentType* This,
        IXMLDOMNode** domNode);

    HRESULT (STDMETHODCALLTYPE *get_attributes)(
        IXMLDOMDocumentType* This,
        IXMLDOMNamedNodeMap** attributeMap);

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXMLDOMDocumentType* This,
        IXMLDOMNode* newNode,
        VARIANT var1,
        IXMLDOMNode** outOldNode);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXMLDOMDocumentType* This,
        IXMLDOMNode* newNode,
        IXMLDOMNode* oldNode,
        IXMLDOMNode** outOldNode);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXMLDOMDocumentType* This,
        IXMLDOMNode* domNode,
        IXMLDOMNode** oldNode);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXMLDOMDocumentType* This,
        IXMLDOMNode* newNode,
        IXMLDOMNode** outNewNode);

    HRESULT (STDMETHODCALLTYPE *hasChildNodes)(
        IXMLDOMDocumentType* This,
        VARIANT_BOOL* pbool);

    HRESULT (STDMETHODCALLTYPE *get_ownerDocument)(
        IXMLDOMDocumentType* This,
        IXMLDOMDocument** domDocument);

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXMLDOMDocumentType* This,
        VARIANT_BOOL pbool,
        IXMLDOMNode** outNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypeString)(
        IXMLDOMDocumentType* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *get_text)(
        IXMLDOMDocumentType* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *put_text)(
        IXMLDOMDocumentType* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_specified)(
        IXMLDOMDocumentType* This,
        VARIANT_BOOL* pbool);

    HRESULT (STDMETHODCALLTYPE *get_definition)(
        IXMLDOMDocumentType* This,
        IXMLDOMNode** domNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypedValue)(
        IXMLDOMDocumentType* This,
        VARIANT* var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeTypedValue)(
        IXMLDOMDocumentType* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_dataType)(
        IXMLDOMDocumentType* This,
        VARIANT* var1);

    HRESULT (STDMETHODCALLTYPE *put_dataType)(
        IXMLDOMDocumentType* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_xml)(
        IXMLDOMDocumentType* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXMLDOMDocumentType* This,
        IXMLDOMNode* domNode,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXMLDOMDocumentType* This,
        BSTR p,
        IXMLDOMNodeList** outList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXMLDOMDocumentType* This,
        BSTR p,
        IXMLDOMNode** outNode);

    HRESULT (STDMETHODCALLTYPE *get_parsed)(
        IXMLDOMDocumentType* This,
        VARIANT_BOOL* pbool);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        IXMLDOMDocumentType* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *get_prefix)(
        IXMLDOMDocumentType* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *get_baseName)(
        IXMLDOMDocumentType* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXMLDOMDocumentType* This,
        IXMLDOMNode* domNode,
        VARIANT var1);

    /*** IXMLDOMDocumentType methods ***/
    HRESULT (STDMETHODCALLTYPE *get_name)(
        IXMLDOMDocumentType* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *get_entities)(
        IXMLDOMDocumentType* This,
        IXMLDOMNamedNodeMap** entityMap);

    HRESULT (STDMETHODCALLTYPE *get_notations)(
        IXMLDOMDocumentType* This,
        IXMLDOMNamedNodeMap** notationMap);

    END_INTERFACE
} IXMLDOMDocumentTypeVtbl;
interface IXMLDOMDocumentType {
    const IXMLDOMDocumentTypeVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMDocumentType_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IXMLDOMDocumentType_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IXMLDOMDocumentType_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IXMLDOMDocumentType_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IXMLDOMDocumentType_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IXMLDOMDocumentType_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IXMLDOMDocumentType_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IXMLDOMNode methods ***/
#define IXMLDOMDocumentType_get_nodeName(p,a) (p)->lpVtbl->get_nodeName(p,a)
#define IXMLDOMDocumentType_get_nodeValue(p,a) (p)->lpVtbl->get_nodeValue(p,a)
#define IXMLDOMDocumentType_put_nodeValue(p,a) (p)->lpVtbl->put_nodeValue(p,a)
#define IXMLDOMDocumentType_get_nodeType(p,a) (p)->lpVtbl->get_nodeType(p,a)
#define IXMLDOMDocumentType_get_parentNode(p,a) (p)->lpVtbl->get_parentNode(p,a)
#define IXMLDOMDocumentType_get_childNodes(p,a) (p)->lpVtbl->get_childNodes(p,a)
#define IXMLDOMDocumentType_get_firstChild(p,a) (p)->lpVtbl->get_firstChild(p,a)
#define IXMLDOMDocumentType_get_lastChild(p,a) (p)->lpVtbl->get_lastChild(p,a)
#define IXMLDOMDocumentType_get_previousSibling(p,a) (p)->lpVtbl->get_previousSibling(p,a)
#define IXMLDOMDocumentType_get_nextSibling(p,a) (p)->lpVtbl->get_nextSibling(p,a)
#define IXMLDOMDocumentType_get_attributes(p,a) (p)->lpVtbl->get_attributes(p,a)
#define IXMLDOMDocumentType_insertBefore(p,a,b,c) (p)->lpVtbl->insertBefore(p,a,b,c)
#define IXMLDOMDocumentType_replaceChild(p,a,b,c) (p)->lpVtbl->replaceChild(p,a,b,c)
#define IXMLDOMDocumentType_removeChild(p,a,b) (p)->lpVtbl->removeChild(p,a,b)
#define IXMLDOMDocumentType_appendChild(p,a,b) (p)->lpVtbl->appendChild(p,a,b)
#define IXMLDOMDocumentType_hasChildNodes(p,a) (p)->lpVtbl->hasChildNodes(p,a)
#define IXMLDOMDocumentType_get_ownerDocument(p,a) (p)->lpVtbl->get_ownerDocument(p,a)
#define IXMLDOMDocumentType_cloneNode(p,a,b) (p)->lpVtbl->cloneNode(p,a,b)
#define IXMLDOMDocumentType_get_nodeTypeString(p,a) (p)->lpVtbl->get_nodeTypeString(p,a)
#define IXMLDOMDocumentType_get_text(p,a) (p)->lpVtbl->get_text(p,a)
#define IXMLDOMDocumentType_put_text(p,a) (p)->lpVtbl->put_text(p,a)
#define IXMLDOMDocumentType_get_specified(p,a) (p)->lpVtbl->get_specified(p,a)
#define IXMLDOMDocumentType_get_definition(p,a) (p)->lpVtbl->get_definition(p,a)
#define IXMLDOMDocumentType_get_nodeTypedValue(p,a) (p)->lpVtbl->get_nodeTypedValue(p,a)
#define IXMLDOMDocumentType_put_nodeTypedValue(p,a) (p)->lpVtbl->put_nodeTypedValue(p,a)
#define IXMLDOMDocumentType_get_dataType(p,a) (p)->lpVtbl->get_dataType(p,a)
#define IXMLDOMDocumentType_put_dataType(p,a) (p)->lpVtbl->put_dataType(p,a)
#define IXMLDOMDocumentType_get_xml(p,a) (p)->lpVtbl->get_xml(p,a)
#define IXMLDOMDocumentType_transformNode(p,a,b) (p)->lpVtbl->transformNode(p,a,b)
#define IXMLDOMDocumentType_selectNodes(p,a,b) (p)->lpVtbl->selectNodes(p,a,b)
#define IXMLDOMDocumentType_selectSingleNode(p,a,b) (p)->lpVtbl->selectSingleNode(p,a,b)
#define IXMLDOMDocumentType_get_parsed(p,a) (p)->lpVtbl->get_parsed(p,a)
#define IXMLDOMDocumentType_get_namespaceURI(p,a) (p)->lpVtbl->get_namespaceURI(p,a)
#define IXMLDOMDocumentType_get_prefix(p,a) (p)->lpVtbl->get_prefix(p,a)
#define IXMLDOMDocumentType_get_baseName(p,a) (p)->lpVtbl->get_baseName(p,a)
#define IXMLDOMDocumentType_transformNodeToObject(p,a,b) (p)->lpVtbl->transformNodeToObject(p,a,b)
/*** IXMLDOMDocumentType methods ***/
#define IXMLDOMDocumentType_get_name(p,a) (p)->lpVtbl->get_name(p,a)
#define IXMLDOMDocumentType_get_entities(p,a) (p)->lpVtbl->get_entities(p,a)
#define IXMLDOMDocumentType_get_notations(p,a) (p)->lpVtbl->get_notations(p,a)
#endif

#endif

HRESULT CALLBACK IXMLDOMDocumentType_get_name_Proxy(
    IXMLDOMDocumentType* This,
    BSTR* p);
void __RPC_STUB IXMLDOMDocumentType_get_name_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK 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 CALLBACK IXMLDOMDocumentType_get_notations_Proxy(
    IXMLDOMDocumentType* This,
    IXMLDOMNamedNodeMap** notationMap);
void __RPC_STUB IXMLDOMDocumentType_get_notations_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMDocumentType_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMNotation interface
 */
#ifndef __IXMLDOMNotation_INTERFACE_DEFINED__
#define __IXMLDOMNotation_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDOMNotation, 0x2933bf8c, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLDOMNotation : public IXMLDOMNode
{
    virtual HRESULT STDMETHODCALLTYPE get_publicId(
        VARIANT* id) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_systemId(
        VARIANT* id) = 0;

};
#else
typedef struct IXMLDOMNotationVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXMLDOMNotation* This,
        REFIID riid,
        void** ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXMLDOMNotation* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXMLDOMNotation* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXMLDOMNotation* This,
        UINT* pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXMLDOMNotation* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo** ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXMLDOMNotation* This,
        REFIID riid,
        LPOLESTR* rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID* rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXMLDOMNotation* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS* pDispParams,
        VARIANT* pVarResult,
        EXCEPINFO* pExcepInfo,
        UINT* puArgErr);

    /*** IXMLDOMNode methods ***/
    HRESULT (STDMETHODCALLTYPE *get_nodeName)(
        IXMLDOMNotation* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *get_nodeValue)(
        IXMLDOMNotation* This,
        VARIANT* var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeValue)(
        IXMLDOMNotation* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_nodeType)(
        IXMLDOMNotation* This,
        DOMNodeType* domNodeType);

    HRESULT (STDMETHODCALLTYPE *get_parentNode)(
        IXMLDOMNotation* This,
        IXMLDOMNode** parent);

    HRESULT (STDMETHODCALLTYPE *get_childNodes)(
        IXMLDOMNotation* This,
        IXMLDOMNodeList** outList);

    HRESULT (STDMETHODCALLTYPE *get_firstChild)(
        IXMLDOMNotation* This,
        IXMLDOMNode** domNode);

    HRESULT (STDMETHODCALLTYPE *get_lastChild)(
        IXMLDOMNotation* This,
        IXMLDOMNode** domNode);

    HRESULT (STDMETHODCALLTYPE *get_previousSibling)(
        IXMLDOMNotation* This,
        IXMLDOMNode** domNode);

    HRESULT (STDMETHODCALLTYPE *get_nextSibling)(
        IXMLDOMNotation* This,
        IXMLDOMNode** domNode);

    HRESULT (STDMETHODCALLTYPE *get_attributes)(
        IXMLDOMNotation* This,
        IXMLDOMNamedNodeMap** attributeMap);

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXMLDOMNotation* This,
        IXMLDOMNode* newNode,
        VARIANT var1,
        IXMLDOMNode** outOldNode);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXMLDOMNotation* This,
        IXMLDOMNode* newNode,
        IXMLDOMNode* oldNode,
        IXMLDOMNode** outOldNode);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXMLDOMNotation* This,
        IXMLDOMNode* domNode,
        IXMLDOMNode** oldNode);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXMLDOMNotation* This,
        IXMLDOMNode* newNode,
        IXMLDOMNode** outNewNode);

    HRESULT (STDMETHODCALLTYPE *hasChildNodes)(
        IXMLDOMNotation* This,
        VARIANT_BOOL* pbool);

    HRESULT (STDMETHODCALLTYPE *get_ownerDocument)(
        IXMLDOMNotation* This,
        IXMLDOMDocument** domDocument);

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXMLDOMNotation* This,
        VARIANT_BOOL pbool,
        IXMLDOMNode** outNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypeString)(
        IXMLDOMNotation* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *get_text)(
        IXMLDOMNotation* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *put_text)(
        IXMLDOMNotation* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_specified)(
        IXMLDOMNotation* This,
        VARIANT_BOOL* pbool);

    HRESULT (STDMETHODCALLTYPE *get_definition)(
        IXMLDOMNotation* This,
        IXMLDOMNode** domNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypedValue)(
        IXMLDOMNotation* This,
        VARIANT* var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeTypedValue)(
        IXMLDOMNotation* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_dataType)(
        IXMLDOMNotation* This,
        VARIANT* var1);

    HRESULT (STDMETHODCALLTYPE *put_dataType)(
        IXMLDOMNotation* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_xml)(
        IXMLDOMNotation* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXMLDOMNotation* This,
        IXMLDOMNode* domNode,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXMLDOMNotation* This,
        BSTR p,
        IXMLDOMNodeList** outList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXMLDOMNotation* This,
        BSTR p,
        IXMLDOMNode** outNode);

    HRESULT (STDMETHODCALLTYPE *get_parsed)(
        IXMLDOMNotation* This,
        VARIANT_BOOL* pbool);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        IXMLDOMNotation* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *get_prefix)(
        IXMLDOMNotation* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *get_baseName)(
        IXMLDOMNotation* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXMLDOMNotation* This,
        IXMLDOMNode* domNode,
        VARIANT var1);

    /*** IXMLDOMNotation methods ***/
    HRESULT (STDMETHODCALLTYPE *get_publicId)(
        IXMLDOMNotation* This,
        VARIANT* id);

    HRESULT (STDMETHODCALLTYPE *get_systemId)(
        IXMLDOMNotation* This,
        VARIANT* id);

    END_INTERFACE
} IXMLDOMNotationVtbl;
interface IXMLDOMNotation {
    const IXMLDOMNotationVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMNotation_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IXMLDOMNotation_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IXMLDOMNotation_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IXMLDOMNotation_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IXMLDOMNotation_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IXMLDOMNotation_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IXMLDOMNotation_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IXMLDOMNode methods ***/
#define IXMLDOMNotation_get_nodeName(p,a) (p)->lpVtbl->get_nodeName(p,a)
#define IXMLDOMNotation_get_nodeValue(p,a) (p)->lpVtbl->get_nodeValue(p,a)
#define IXMLDOMNotation_put_nodeValue(p,a) (p)->lpVtbl->put_nodeValue(p,a)
#define IXMLDOMNotation_get_nodeType(p,a) (p)->lpVtbl->get_nodeType(p,a)
#define IXMLDOMNotation_get_parentNode(p,a) (p)->lpVtbl->get_parentNode(p,a)
#define IXMLDOMNotation_get_childNodes(p,a) (p)->lpVtbl->get_childNodes(p,a)
#define IXMLDOMNotation_get_firstChild(p,a) (p)->lpVtbl->get_firstChild(p,a)
#define IXMLDOMNotation_get_lastChild(p,a) (p)->lpVtbl->get_lastChild(p,a)
#define IXMLDOMNotation_get_previousSibling(p,a) (p)->lpVtbl->get_previousSibling(p,a)
#define IXMLDOMNotation_get_nextSibling(p,a) (p)->lpVtbl->get_nextSibling(p,a)
#define IXMLDOMNotation_get_attributes(p,a) (p)->lpVtbl->get_attributes(p,a)
#define IXMLDOMNotation_insertBefore(p,a,b,c) (p)->lpVtbl->insertBefore(p,a,b,c)
#define IXMLDOMNotation_replaceChild(p,a,b,c) (p)->lpVtbl->replaceChild(p,a,b,c)
#define IXMLDOMNotation_removeChild(p,a,b) (p)->lpVtbl->removeChild(p,a,b)
#define IXMLDOMNotation_appendChild(p,a,b) (p)->lpVtbl->appendChild(p,a,b)
#define IXMLDOMNotation_hasChildNodes(p,a) (p)->lpVtbl->hasChildNodes(p,a)
#define IXMLDOMNotation_get_ownerDocument(p,a) (p)->lpVtbl->get_ownerDocument(p,a)
#define IXMLDOMNotation_cloneNode(p,a,b) (p)->lpVtbl->cloneNode(p,a,b)
#define IXMLDOMNotation_get_nodeTypeString(p,a) (p)->lpVtbl->get_nodeTypeString(p,a)
#define IXMLDOMNotation_get_text(p,a) (p)->lpVtbl->get_text(p,a)
#define IXMLDOMNotation_put_text(p,a) (p)->lpVtbl->put_text(p,a)
#define IXMLDOMNotation_get_specified(p,a) (p)->lpVtbl->get_specified(p,a)
#define IXMLDOMNotation_get_definition(p,a) (p)->lpVtbl->get_definition(p,a)
#define IXMLDOMNotation_get_nodeTypedValue(p,a) (p)->lpVtbl->get_nodeTypedValue(p,a)
#define IXMLDOMNotation_put_nodeTypedValue(p,a) (p)->lpVtbl->put_nodeTypedValue(p,a)
#define IXMLDOMNotation_get_dataType(p,a) (p)->lpVtbl->get_dataType(p,a)
#define IXMLDOMNotation_put_dataType(p,a) (p)->lpVtbl->put_dataType(p,a)
#define IXMLDOMNotation_get_xml(p,a) (p)->lpVtbl->get_xml(p,a)
#define IXMLDOMNotation_transformNode(p,a,b) (p)->lpVtbl->transformNode(p,a,b)
#define IXMLDOMNotation_selectNodes(p,a,b) (p)->lpVtbl->selectNodes(p,a,b)
#define IXMLDOMNotation_selectSingleNode(p,a,b) (p)->lpVtbl->selectSingleNode(p,a,b)
#define IXMLDOMNotation_get_parsed(p,a) (p)->lpVtbl->get_parsed(p,a)
#define IXMLDOMNotation_get_namespaceURI(p,a) (p)->lpVtbl->get_namespaceURI(p,a)
#define IXMLDOMNotation_get_prefix(p,a) (p)->lpVtbl->get_prefix(p,a)
#define IXMLDOMNotation_get_baseName(p,a) (p)->lpVtbl->get_baseName(p,a)
#define IXMLDOMNotation_transformNodeToObject(p,a,b) (p)->lpVtbl->transformNodeToObject(p,a,b)
/*** IXMLDOMNotation methods ***/
#define IXMLDOMNotation_get_publicId(p,a) (p)->lpVtbl->get_publicId(p,a)
#define IXMLDOMNotation_get_systemId(p,a) (p)->lpVtbl->get_systemId(p,a)
#endif

#endif

HRESULT CALLBACK IXMLDOMNotation_get_publicId_Proxy(
    IXMLDOMNotation* This,
    VARIANT* id);
void __RPC_STUB IXMLDOMNotation_get_publicId_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMNotation_get_systemId_Proxy(
    IXMLDOMNotation* This,
    VARIANT* id);
void __RPC_STUB IXMLDOMNotation_get_systemId_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMNotation_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMEntity interface
 */
#ifndef __IXMLDOMEntity_INTERFACE_DEFINED__
#define __IXMLDOMEntity_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDOMEntity, 0x2933bf8d, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLDOMEntity : public IXMLDOMNode
{
    virtual HRESULT STDMETHODCALLTYPE get_publicId(
        VARIANT* id1) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_systemId(
        VARIANT* id1) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_notationName(
        BSTR* p) = 0;

};
#else
typedef struct IXMLDOMEntityVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXMLDOMEntity* This,
        REFIID riid,
        void** ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXMLDOMEntity* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXMLDOMEntity* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXMLDOMEntity* This,
        UINT* pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXMLDOMEntity* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo** ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXMLDOMEntity* This,
        REFIID riid,
        LPOLESTR* rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID* rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXMLDOMEntity* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS* pDispParams,
        VARIANT* pVarResult,
        EXCEPINFO* pExcepInfo,
        UINT* puArgErr);

    /*** IXMLDOMNode methods ***/
    HRESULT (STDMETHODCALLTYPE *get_nodeName)(
        IXMLDOMEntity* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *get_nodeValue)(
        IXMLDOMEntity* This,
        VARIANT* var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeValue)(
        IXMLDOMEntity* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_nodeType)(
        IXMLDOMEntity* This,
        DOMNodeType* domNodeType);

    HRESULT (STDMETHODCALLTYPE *get_parentNode)(
        IXMLDOMEntity* This,
        IXMLDOMNode** parent);

    HRESULT (STDMETHODCALLTYPE *get_childNodes)(
        IXMLDOMEntity* This,
        IXMLDOMNodeList** outList);

    HRESULT (STDMETHODCALLTYPE *get_firstChild)(
        IXMLDOMEntity* This,
        IXMLDOMNode** domNode);

    HRESULT (STDMETHODCALLTYPE *get_lastChild)(
        IXMLDOMEntity* This,
        IXMLDOMNode** domNode);

    HRESULT (STDMETHODCALLTYPE *get_previousSibling)(
        IXMLDOMEntity* This,
        IXMLDOMNode** domNode);

    HRESULT (STDMETHODCALLTYPE *get_nextSibling)(
        IXMLDOMEntity* This,
        IXMLDOMNode** domNode);

    HRESULT (STDMETHODCALLTYPE *get_attributes)(
        IXMLDOMEntity* This,
        IXMLDOMNamedNodeMap** attributeMap);

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXMLDOMEntity* This,
        IXMLDOMNode* newNode,
        VARIANT var1,
        IXMLDOMNode** outOldNode);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXMLDOMEntity* This,
        IXMLDOMNode* newNode,
        IXMLDOMNode* oldNode,
        IXMLDOMNode** outOldNode);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXMLDOMEntity* This,
        IXMLDOMNode* domNode,
        IXMLDOMNode** oldNode);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXMLDOMEntity* This,
        IXMLDOMNode* newNode,
        IXMLDOMNode** outNewNode);

    HRESULT (STDMETHODCALLTYPE *hasChildNodes)(
        IXMLDOMEntity* This,
        VARIANT_BOOL* pbool);

    HRESULT (STDMETHODCALLTYPE *get_ownerDocument)(
        IXMLDOMEntity* This,
        IXMLDOMDocument** domDocument);

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXMLDOMEntity* This,
        VARIANT_BOOL pbool,
        IXMLDOMNode** outNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypeString)(
        IXMLDOMEntity* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *get_text)(
        IXMLDOMEntity* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *put_text)(
        IXMLDOMEntity* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_specified)(
        IXMLDOMEntity* This,
        VARIANT_BOOL* pbool);

    HRESULT (STDMETHODCALLTYPE *get_definition)(
        IXMLDOMEntity* This,
        IXMLDOMNode** domNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypedValue)(
        IXMLDOMEntity* This,
        VARIANT* var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeTypedValue)(
        IXMLDOMEntity* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_dataType)(
        IXMLDOMEntity* This,
        VARIANT* var1);

    HRESULT (STDMETHODCALLTYPE *put_dataType)(
        IXMLDOMEntity* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_xml)(
        IXMLDOMEntity* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXMLDOMEntity* This,
        IXMLDOMNode* domNode,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXMLDOMEntity* This,
        BSTR p,
        IXMLDOMNodeList** outList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXMLDOMEntity* This,
        BSTR p,
        IXMLDOMNode** outNode);

    HRESULT (STDMETHODCALLTYPE *get_parsed)(
        IXMLDOMEntity* This,
        VARIANT_BOOL* pbool);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        IXMLDOMEntity* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *get_prefix)(
        IXMLDOMEntity* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *get_baseName)(
        IXMLDOMEntity* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXMLDOMEntity* This,
        IXMLDOMNode* domNode,
        VARIANT var1);

    /*** IXMLDOMEntity methods ***/
    HRESULT (STDMETHODCALLTYPE *get_publicId)(
        IXMLDOMEntity* This,
        VARIANT* id1);

    HRESULT (STDMETHODCALLTYPE *get_systemId)(
        IXMLDOMEntity* This,
        VARIANT* id1);

    HRESULT (STDMETHODCALLTYPE *get_notationName)(
        IXMLDOMEntity* This,
        BSTR* p);

    END_INTERFACE
} IXMLDOMEntityVtbl;
interface IXMLDOMEntity {
    const IXMLDOMEntityVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMEntity_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IXMLDOMEntity_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IXMLDOMEntity_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IXMLDOMEntity_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IXMLDOMEntity_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IXMLDOMEntity_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IXMLDOMEntity_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IXMLDOMNode methods ***/
#define IXMLDOMEntity_get_nodeName(p,a) (p)->lpVtbl->get_nodeName(p,a)
#define IXMLDOMEntity_get_nodeValue(p,a) (p)->lpVtbl->get_nodeValue(p,a)
#define IXMLDOMEntity_put_nodeValue(p,a) (p)->lpVtbl->put_nodeValue(p,a)
#define IXMLDOMEntity_get_nodeType(p,a) (p)->lpVtbl->get_nodeType(p,a)
#define IXMLDOMEntity_get_parentNode(p,a) (p)->lpVtbl->get_parentNode(p,a)
#define IXMLDOMEntity_get_childNodes(p,a) (p)->lpVtbl->get_childNodes(p,a)
#define IXMLDOMEntity_get_firstChild(p,a) (p)->lpVtbl->get_firstChild(p,a)
#define IXMLDOMEntity_get_lastChild(p,a) (p)->lpVtbl->get_lastChild(p,a)
#define IXMLDOMEntity_get_previousSibling(p,a) (p)->lpVtbl->get_previousSibling(p,a)
#define IXMLDOMEntity_get_nextSibling(p,a) (p)->lpVtbl->get_nextSibling(p,a)
#define IXMLDOMEntity_get_attributes(p,a) (p)->lpVtbl->get_attributes(p,a)
#define IXMLDOMEntity_insertBefore(p,a,b,c) (p)->lpVtbl->insertBefore(p,a,b,c)
#define IXMLDOMEntity_replaceChild(p,a,b,c) (p)->lpVtbl->replaceChild(p,a,b,c)
#define IXMLDOMEntity_removeChild(p,a,b) (p)->lpVtbl->removeChild(p,a,b)
#define IXMLDOMEntity_appendChild(p,a,b) (p)->lpVtbl->appendChild(p,a,b)
#define IXMLDOMEntity_hasChildNodes(p,a) (p)->lpVtbl->hasChildNodes(p,a)
#define IXMLDOMEntity_get_ownerDocument(p,a) (p)->lpVtbl->get_ownerDocument(p,a)
#define IXMLDOMEntity_cloneNode(p,a,b) (p)->lpVtbl->cloneNode(p,a,b)
#define IXMLDOMEntity_get_nodeTypeString(p,a) (p)->lpVtbl->get_nodeTypeString(p,a)
#define IXMLDOMEntity_get_text(p,a) (p)->lpVtbl->get_text(p,a)
#define IXMLDOMEntity_put_text(p,a) (p)->lpVtbl->put_text(p,a)
#define IXMLDOMEntity_get_specified(p,a) (p)->lpVtbl->get_specified(p,a)
#define IXMLDOMEntity_get_definition(p,a) (p)->lpVtbl->get_definition(p,a)
#define IXMLDOMEntity_get_nodeTypedValue(p,a) (p)->lpVtbl->get_nodeTypedValue(p,a)
#define IXMLDOMEntity_put_nodeTypedValue(p,a) (p)->lpVtbl->put_nodeTypedValue(p,a)
#define IXMLDOMEntity_get_dataType(p,a) (p)->lpVtbl->get_dataType(p,a)
#define IXMLDOMEntity_put_dataType(p,a) (p)->lpVtbl->put_dataType(p,a)
#define IXMLDOMEntity_get_xml(p,a) (p)->lpVtbl->get_xml(p,a)
#define IXMLDOMEntity_transformNode(p,a,b) (p)->lpVtbl->transformNode(p,a,b)
#define IXMLDOMEntity_selectNodes(p,a,b) (p)->lpVtbl->selectNodes(p,a,b)
#define IXMLDOMEntity_selectSingleNode(p,a,b) (p)->lpVtbl->selectSingleNode(p,a,b)
#define IXMLDOMEntity_get_parsed(p,a) (p)->lpVtbl->get_parsed(p,a)
#define IXMLDOMEntity_get_namespaceURI(p,a) (p)->lpVtbl->get_namespaceURI(p,a)
#define IXMLDOMEntity_get_prefix(p,a) (p)->lpVtbl->get_prefix(p,a)
#define IXMLDOMEntity_get_baseName(p,a) (p)->lpVtbl->get_baseName(p,a)
#define IXMLDOMEntity_transformNodeToObject(p,a,b) (p)->lpVtbl->transformNodeToObject(p,a,b)
/*** IXMLDOMEntity methods ***/
#define IXMLDOMEntity_get_publicId(p,a) (p)->lpVtbl->get_publicId(p,a)
#define IXMLDOMEntity_get_systemId(p,a) (p)->lpVtbl->get_systemId(p,a)
#define IXMLDOMEntity_get_notationName(p,a) (p)->lpVtbl->get_notationName(p,a)
#endif

#endif

HRESULT CALLBACK IXMLDOMEntity_get_publicId_Proxy(
    IXMLDOMEntity* This,
    VARIANT* id1);
void __RPC_STUB IXMLDOMEntity_get_publicId_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMEntity_get_systemId_Proxy(
    IXMLDOMEntity* This,
    VARIANT* id1);
void __RPC_STUB IXMLDOMEntity_get_systemId_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMEntity_get_notationName_Proxy(
    IXMLDOMEntity* This,
    BSTR* p);
void __RPC_STUB IXMLDOMEntity_get_notationName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMEntity_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMEntityReference interface
 */
#ifndef __IXMLDOMEntityReference_INTERFACE_DEFINED__
#define __IXMLDOMEntityReference_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDOMEntityReference, 0x2933bf8e, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLDOMEntityReference : public IXMLDOMNode
{
};
#else
typedef struct IXMLDOMEntityReferenceVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXMLDOMEntityReference* This,
        REFIID riid,
        void** ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXMLDOMEntityReference* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXMLDOMEntityReference* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXMLDOMEntityReference* This,
        UINT* pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXMLDOMEntityReference* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo** ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXMLDOMEntityReference* This,
        REFIID riid,
        LPOLESTR* rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID* rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXMLDOMEntityReference* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS* pDispParams,
        VARIANT* pVarResult,
        EXCEPINFO* pExcepInfo,
        UINT* puArgErr);

    /*** IXMLDOMNode methods ***/
    HRESULT (STDMETHODCALLTYPE *get_nodeName)(
        IXMLDOMEntityReference* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *get_nodeValue)(
        IXMLDOMEntityReference* This,
        VARIANT* var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeValue)(
        IXMLDOMEntityReference* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_nodeType)(
        IXMLDOMEntityReference* This,
        DOMNodeType* domNodeType);

    HRESULT (STDMETHODCALLTYPE *get_parentNode)(
        IXMLDOMEntityReference* This,
        IXMLDOMNode** parent);

    HRESULT (STDMETHODCALLTYPE *get_childNodes)(
        IXMLDOMEntityReference* This,
        IXMLDOMNodeList** outList);

    HRESULT (STDMETHODCALLTYPE *get_firstChild)(
        IXMLDOMEntityReference* This,
        IXMLDOMNode** domNode);

    HRESULT (STDMETHODCALLTYPE *get_lastChild)(
        IXMLDOMEntityReference* This,
        IXMLDOMNode** domNode);

    HRESULT (STDMETHODCALLTYPE *get_previousSibling)(
        IXMLDOMEntityReference* This,
        IXMLDOMNode** domNode);

    HRESULT (STDMETHODCALLTYPE *get_nextSibling)(
        IXMLDOMEntityReference* This,
        IXMLDOMNode** domNode);

    HRESULT (STDMETHODCALLTYPE *get_attributes)(
        IXMLDOMEntityReference* This,
        IXMLDOMNamedNodeMap** attributeMap);

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXMLDOMEntityReference* This,
        IXMLDOMNode* newNode,
        VARIANT var1,
        IXMLDOMNode** outOldNode);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXMLDOMEntityReference* This,
        IXMLDOMNode* newNode,
        IXMLDOMNode* oldNode,
        IXMLDOMNode** outOldNode);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXMLDOMEntityReference* This,
        IXMLDOMNode* domNode,
        IXMLDOMNode** oldNode);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXMLDOMEntityReference* This,
        IXMLDOMNode* newNode,
        IXMLDOMNode** outNewNode);

    HRESULT (STDMETHODCALLTYPE *hasChildNodes)(
        IXMLDOMEntityReference* This,
        VARIANT_BOOL* pbool);

    HRESULT (STDMETHODCALLTYPE *get_ownerDocument)(
        IXMLDOMEntityReference* This,
        IXMLDOMDocument** domDocument);

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXMLDOMEntityReference* This,
        VARIANT_BOOL pbool,
        IXMLDOMNode** outNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypeString)(
        IXMLDOMEntityReference* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *get_text)(
        IXMLDOMEntityReference* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *put_text)(
        IXMLDOMEntityReference* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_specified)(
        IXMLDOMEntityReference* This,
        VARIANT_BOOL* pbool);

    HRESULT (STDMETHODCALLTYPE *get_definition)(
        IXMLDOMEntityReference* This,
        IXMLDOMNode** domNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypedValue)(
        IXMLDOMEntityReference* This,
        VARIANT* var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeTypedValue)(
        IXMLDOMEntityReference* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_dataType)(
        IXMLDOMEntityReference* This,
        VARIANT* var1);

    HRESULT (STDMETHODCALLTYPE *put_dataType)(
        IXMLDOMEntityReference* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_xml)(
        IXMLDOMEntityReference* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXMLDOMEntityReference* This,
        IXMLDOMNode* domNode,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXMLDOMEntityReference* This,
        BSTR p,
        IXMLDOMNodeList** outList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXMLDOMEntityReference* This,
        BSTR p,
        IXMLDOMNode** outNode);

    HRESULT (STDMETHODCALLTYPE *get_parsed)(
        IXMLDOMEntityReference* This,
        VARIANT_BOOL* pbool);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        IXMLDOMEntityReference* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *get_prefix)(
        IXMLDOMEntityReference* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *get_baseName)(
        IXMLDOMEntityReference* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXMLDOMEntityReference* This,
        IXMLDOMNode* domNode,
        VARIANT var1);

    END_INTERFACE
} IXMLDOMEntityReferenceVtbl;
interface IXMLDOMEntityReference {
    const IXMLDOMEntityReferenceVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMEntityReference_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IXMLDOMEntityReference_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IXMLDOMEntityReference_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IXMLDOMEntityReference_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IXMLDOMEntityReference_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IXMLDOMEntityReference_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IXMLDOMEntityReference_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IXMLDOMNode methods ***/
#define IXMLDOMEntityReference_get_nodeName(p,a) (p)->lpVtbl->get_nodeName(p,a)
#define IXMLDOMEntityReference_get_nodeValue(p,a) (p)->lpVtbl->get_nodeValue(p,a)
#define IXMLDOMEntityReference_put_nodeValue(p,a) (p)->lpVtbl->put_nodeValue(p,a)
#define IXMLDOMEntityReference_get_nodeType(p,a) (p)->lpVtbl->get_nodeType(p,a)
#define IXMLDOMEntityReference_get_parentNode(p,a) (p)->lpVtbl->get_parentNode(p,a)
#define IXMLDOMEntityReference_get_childNodes(p,a) (p)->lpVtbl->get_childNodes(p,a)
#define IXMLDOMEntityReference_get_firstChild(p,a) (p)->lpVtbl->get_firstChild(p,a)
#define IXMLDOMEntityReference_get_lastChild(p,a) (p)->lpVtbl->get_lastChild(p,a)
#define IXMLDOMEntityReference_get_previousSibling(p,a) (p)->lpVtbl->get_previousSibling(p,a)
#define IXMLDOMEntityReference_get_nextSibling(p,a) (p)->lpVtbl->get_nextSibling(p,a)
#define IXMLDOMEntityReference_get_attributes(p,a) (p)->lpVtbl->get_attributes(p,a)
#define IXMLDOMEntityReference_insertBefore(p,a,b,c) (p)->lpVtbl->insertBefore(p,a,b,c)
#define IXMLDOMEntityReference_replaceChild(p,a,b,c) (p)->lpVtbl->replaceChild(p,a,b,c)
#define IXMLDOMEntityReference_removeChild(p,a,b) (p)->lpVtbl->removeChild(p,a,b)
#define IXMLDOMEntityReference_appendChild(p,a,b) (p)->lpVtbl->appendChild(p,a,b)
#define IXMLDOMEntityReference_hasChildNodes(p,a) (p)->lpVtbl->hasChildNodes(p,a)
#define IXMLDOMEntityReference_get_ownerDocument(p,a) (p)->lpVtbl->get_ownerDocument(p,a)
#define IXMLDOMEntityReference_cloneNode(p,a,b) (p)->lpVtbl->cloneNode(p,a,b)
#define IXMLDOMEntityReference_get_nodeTypeString(p,a) (p)->lpVtbl->get_nodeTypeString(p,a)
#define IXMLDOMEntityReference_get_text(p,a) (p)->lpVtbl->get_text(p,a)
#define IXMLDOMEntityReference_put_text(p,a) (p)->lpVtbl->put_text(p,a)
#define IXMLDOMEntityReference_get_specified(p,a) (p)->lpVtbl->get_specified(p,a)
#define IXMLDOMEntityReference_get_definition(p,a) (p)->lpVtbl->get_definition(p,a)
#define IXMLDOMEntityReference_get_nodeTypedValue(p,a) (p)->lpVtbl->get_nodeTypedValue(p,a)
#define IXMLDOMEntityReference_put_nodeTypedValue(p,a) (p)->lpVtbl->put_nodeTypedValue(p,a)
#define IXMLDOMEntityReference_get_dataType(p,a) (p)->lpVtbl->get_dataType(p,a)
#define IXMLDOMEntityReference_put_dataType(p,a) (p)->lpVtbl->put_dataType(p,a)
#define IXMLDOMEntityReference_get_xml(p,a) (p)->lpVtbl->get_xml(p,a)
#define IXMLDOMEntityReference_transformNode(p,a,b) (p)->lpVtbl->transformNode(p,a,b)
#define IXMLDOMEntityReference_selectNodes(p,a,b) (p)->lpVtbl->selectNodes(p,a,b)
#define IXMLDOMEntityReference_selectSingleNode(p,a,b) (p)->lpVtbl->selectSingleNode(p,a,b)
#define IXMLDOMEntityReference_get_parsed(p,a) (p)->lpVtbl->get_parsed(p,a)
#define IXMLDOMEntityReference_get_namespaceURI(p,a) (p)->lpVtbl->get_namespaceURI(p,a)
#define IXMLDOMEntityReference_get_prefix(p,a) (p)->lpVtbl->get_prefix(p,a)
#define IXMLDOMEntityReference_get_baseName(p,a) (p)->lpVtbl->get_baseName(p,a)
#define IXMLDOMEntityReference_transformNodeToObject(p,a,b) (p)->lpVtbl->transformNodeToObject(p,a,b)
#endif

#endif


#endif  /* __IXMLDOMEntityReference_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMImplementation interface
 */
#ifndef __IXMLDOMImplementation_INTERFACE_DEFINED__
#define __IXMLDOMImplementation_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDOMImplementation, 0x2933bf8f, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLDOMImplementation : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE hasFeature(
        BSTR feature,
        BSTR version,
        VARIANT_BOOL* pbool) = 0;

};
#else
typedef struct IXMLDOMImplementationVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXMLDOMImplementation* This,
        REFIID riid,
        void** ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXMLDOMImplementation* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXMLDOMImplementation* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXMLDOMImplementation* This,
        UINT* pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXMLDOMImplementation* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo** ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXMLDOMImplementation* This,
        REFIID riid,
        LPOLESTR* rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID* rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXMLDOMImplementation* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS* pDispParams,
        VARIANT* pVarResult,
        EXCEPINFO* pExcepInfo,
        UINT* puArgErr);

    /*** IXMLDOMImplementation methods ***/
    HRESULT (STDMETHODCALLTYPE *hasFeature)(
        IXMLDOMImplementation* This,
        BSTR feature,
        BSTR version,
        VARIANT_BOOL* pbool);

    END_INTERFACE
} IXMLDOMImplementationVtbl;
interface IXMLDOMImplementation {
    const IXMLDOMImplementationVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMImplementation_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IXMLDOMImplementation_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IXMLDOMImplementation_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IXMLDOMImplementation_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IXMLDOMImplementation_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IXMLDOMImplementation_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IXMLDOMImplementation_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IXMLDOMImplementation methods ***/
#define IXMLDOMImplementation_hasFeature(p,a,b,c) (p)->lpVtbl->hasFeature(p,a,b,c)
#endif

#endif

HRESULT CALLBACK IXMLDOMImplementation_hasFeature_Proxy(
    IXMLDOMImplementation* This,
    BSTR feature,
    BSTR version,
    VARIANT_BOOL* pbool);
void __RPC_STUB IXMLDOMImplementation_hasFeature_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMImplementation_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXTLRuntime interface
 */
#ifndef __IXTLRuntime_INTERFACE_DEFINED__
#define __IXTLRuntime_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXTLRuntime, 0x3efaa425, 0x272f, 0x11d2, 0x83,0x6f, 0x00,0x00,0xf8,0x7a,0x77,0x82);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXTLRuntime : public IXMLDOMNode
{
    virtual HRESULT STDMETHODCALLTYPE uniqueID(
        IXMLDOMNode* pNode,
        long* pID) = 0;

    virtual HRESULT STDMETHODCALLTYPE depth(
        IXMLDOMNode* pNode,
        long* pDepth) = 0;

    virtual HRESULT STDMETHODCALLTYPE childNumber(
        IXMLDOMNode* pNode,
        long* pNumber) = 0;

    virtual HRESULT STDMETHODCALLTYPE ancestorChildNumber(
        BSTR bstr,
        IXMLDOMNode* pNode,
        long* pNumber) = 0;

    virtual HRESULT STDMETHODCALLTYPE absoluteChildNumber(
        IXMLDOMNode* pNode,
        long* pNumber) = 0;

    virtual HRESULT STDMETHODCALLTYPE formatIndex(
        long lIndex,
        BSTR bstr,
        BSTR* pbstr) = 0;

    virtual HRESULT STDMETHODCALLTYPE formatNumber(
        double dblNumber,
        BSTR bstr,
        BSTR* pbstr) = 0;

    virtual HRESULT STDMETHODCALLTYPE formatDate(
        VARIANT var1,
        BSTR bstr,
        VARIANT var2,
        BSTR* pbstr) = 0;

    virtual HRESULT STDMETHODCALLTYPE formatTime(
        VARIANT var1,
        BSTR bstr,
        VARIANT var2,
        BSTR* pbstr) = 0;

};
#else
typedef struct IXTLRuntimeVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXTLRuntime* This,
        REFIID riid,
        void** ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXTLRuntime* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXTLRuntime* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXTLRuntime* This,
        UINT* pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXTLRuntime* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo** ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXTLRuntime* This,
        REFIID riid,
        LPOLESTR* rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID* rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXTLRuntime* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS* pDispParams,
        VARIANT* pVarResult,
        EXCEPINFO* pExcepInfo,
        UINT* puArgErr);

    /*** IXMLDOMNode methods ***/
    HRESULT (STDMETHODCALLTYPE *get_nodeName)(
        IXTLRuntime* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *get_nodeValue)(
        IXTLRuntime* This,
        VARIANT* var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeValue)(
        IXTLRuntime* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_nodeType)(
        IXTLRuntime* This,
        DOMNodeType* domNodeType);

    HRESULT (STDMETHODCALLTYPE *get_parentNode)(
        IXTLRuntime* This,
        IXMLDOMNode** parent);

    HRESULT (STDMETHODCALLTYPE *get_childNodes)(
        IXTLRuntime* This,
        IXMLDOMNodeList** outList);

    HRESULT (STDMETHODCALLTYPE *get_firstChild)(
        IXTLRuntime* This,
        IXMLDOMNode** domNode);

    HRESULT (STDMETHODCALLTYPE *get_lastChild)(
        IXTLRuntime* This,
        IXMLDOMNode** domNode);

    HRESULT (STDMETHODCALLTYPE *get_previousSibling)(
        IXTLRuntime* This,
        IXMLDOMNode** domNode);

    HRESULT (STDMETHODCALLTYPE *get_nextSibling)(
        IXTLRuntime* This,
        IXMLDOMNode** domNode);

    HRESULT (STDMETHODCALLTYPE *get_attributes)(
        IXTLRuntime* This,
        IXMLDOMNamedNodeMap** attributeMap);

    HRESULT (STDMETHODCALLTYPE *insertBefore)(
        IXTLRuntime* This,
        IXMLDOMNode* newNode,
        VARIANT var1,
        IXMLDOMNode** outOldNode);

    HRESULT (STDMETHODCALLTYPE *replaceChild)(
        IXTLRuntime* This,
        IXMLDOMNode* newNode,
        IXMLDOMNode* oldNode,
        IXMLDOMNode** outOldNode);

    HRESULT (STDMETHODCALLTYPE *removeChild)(
        IXTLRuntime* This,
        IXMLDOMNode* domNode,
        IXMLDOMNode** oldNode);

    HRESULT (STDMETHODCALLTYPE *appendChild)(
        IXTLRuntime* This,
        IXMLDOMNode* newNode,
        IXMLDOMNode** outNewNode);

    HRESULT (STDMETHODCALLTYPE *hasChildNodes)(
        IXTLRuntime* This,
        VARIANT_BOOL* pbool);

    HRESULT (STDMETHODCALLTYPE *get_ownerDocument)(
        IXTLRuntime* This,
        IXMLDOMDocument** domDocument);

    HRESULT (STDMETHODCALLTYPE *cloneNode)(
        IXTLRuntime* This,
        VARIANT_BOOL pbool,
        IXMLDOMNode** outNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypeString)(
        IXTLRuntime* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *get_text)(
        IXTLRuntime* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *put_text)(
        IXTLRuntime* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_specified)(
        IXTLRuntime* This,
        VARIANT_BOOL* pbool);

    HRESULT (STDMETHODCALLTYPE *get_definition)(
        IXTLRuntime* This,
        IXMLDOMNode** domNode);

    HRESULT (STDMETHODCALLTYPE *get_nodeTypedValue)(
        IXTLRuntime* This,
        VARIANT* var1);

    HRESULT (STDMETHODCALLTYPE *put_nodeTypedValue)(
        IXTLRuntime* This,
        VARIANT var1);

    HRESULT (STDMETHODCALLTYPE *get_dataType)(
        IXTLRuntime* This,
        VARIANT* var1);

    HRESULT (STDMETHODCALLTYPE *put_dataType)(
        IXTLRuntime* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_xml)(
        IXTLRuntime* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *transformNode)(
        IXTLRuntime* This,
        IXMLDOMNode* domNode,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *selectNodes)(
        IXTLRuntime* This,
        BSTR p,
        IXMLDOMNodeList** outList);

    HRESULT (STDMETHODCALLTYPE *selectSingleNode)(
        IXTLRuntime* This,
        BSTR p,
        IXMLDOMNode** outNode);

    HRESULT (STDMETHODCALLTYPE *get_parsed)(
        IXTLRuntime* This,
        VARIANT_BOOL* pbool);

    HRESULT (STDMETHODCALLTYPE *get_namespaceURI)(
        IXTLRuntime* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *get_prefix)(
        IXTLRuntime* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *get_baseName)(
        IXTLRuntime* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *transformNodeToObject)(
        IXTLRuntime* This,
        IXMLDOMNode* domNode,
        VARIANT var1);

    /*** IXTLRuntime methods ***/
    HRESULT (STDMETHODCALLTYPE *uniqueID)(
        IXTLRuntime* This,
        IXMLDOMNode* pNode,
        long* pID);

    HRESULT (STDMETHODCALLTYPE *depth)(
        IXTLRuntime* This,
        IXMLDOMNode* pNode,
        long* pDepth);

    HRESULT (STDMETHODCALLTYPE *childNumber)(
        IXTLRuntime* This,
        IXMLDOMNode* pNode,
        long* pNumber);

    HRESULT (STDMETHODCALLTYPE *ancestorChildNumber)(
        IXTLRuntime* This,
        BSTR bstr,
        IXMLDOMNode* pNode,
        long* pNumber);

    HRESULT (STDMETHODCALLTYPE *absoluteChildNumber)(
        IXTLRuntime* This,
        IXMLDOMNode* pNode,
        long* pNumber);

    HRESULT (STDMETHODCALLTYPE *formatIndex)(
        IXTLRuntime* This,
        long lIndex,
        BSTR bstr,
        BSTR* pbstr);

    HRESULT (STDMETHODCALLTYPE *formatNumber)(
        IXTLRuntime* This,
        double dblNumber,
        BSTR bstr,
        BSTR* pbstr);

    HRESULT (STDMETHODCALLTYPE *formatDate)(
        IXTLRuntime* This,
        VARIANT var1,
        BSTR bstr,
        VARIANT var2,
        BSTR* pbstr);

    HRESULT (STDMETHODCALLTYPE *formatTime)(
        IXTLRuntime* This,
        VARIANT var1,
        BSTR bstr,
        VARIANT var2,
        BSTR* pbstr);

    END_INTERFACE
} IXTLRuntimeVtbl;
interface IXTLRuntime {
    const IXTLRuntimeVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXTLRuntime_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IXTLRuntime_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IXTLRuntime_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IXTLRuntime_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IXTLRuntime_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IXTLRuntime_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IXTLRuntime_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IXMLDOMNode methods ***/
#define IXTLRuntime_get_nodeName(p,a) (p)->lpVtbl->get_nodeName(p,a)
#define IXTLRuntime_get_nodeValue(p,a) (p)->lpVtbl->get_nodeValue(p,a)
#define IXTLRuntime_put_nodeValue(p,a) (p)->lpVtbl->put_nodeValue(p,a)
#define IXTLRuntime_get_nodeType(p,a) (p)->lpVtbl->get_nodeType(p,a)
#define IXTLRuntime_get_parentNode(p,a) (p)->lpVtbl->get_parentNode(p,a)
#define IXTLRuntime_get_childNodes(p,a) (p)->lpVtbl->get_childNodes(p,a)
#define IXTLRuntime_get_firstChild(p,a) (p)->lpVtbl->get_firstChild(p,a)
#define IXTLRuntime_get_lastChild(p,a) (p)->lpVtbl->get_lastChild(p,a)
#define IXTLRuntime_get_previousSibling(p,a) (p)->lpVtbl->get_previousSibling(p,a)
#define IXTLRuntime_get_nextSibling(p,a) (p)->lpVtbl->get_nextSibling(p,a)
#define IXTLRuntime_get_attributes(p,a) (p)->lpVtbl->get_attributes(p,a)
#define IXTLRuntime_insertBefore(p,a,b,c) (p)->lpVtbl->insertBefore(p,a,b,c)
#define IXTLRuntime_replaceChild(p,a,b,c) (p)->lpVtbl->replaceChild(p,a,b,c)
#define IXTLRuntime_removeChild(p,a,b) (p)->lpVtbl->removeChild(p,a,b)
#define IXTLRuntime_appendChild(p,a,b) (p)->lpVtbl->appendChild(p,a,b)
#define IXTLRuntime_hasChildNodes(p,a) (p)->lpVtbl->hasChildNodes(p,a)
#define IXTLRuntime_get_ownerDocument(p,a) (p)->lpVtbl->get_ownerDocument(p,a)
#define IXTLRuntime_cloneNode(p,a,b) (p)->lpVtbl->cloneNode(p,a,b)
#define IXTLRuntime_get_nodeTypeString(p,a) (p)->lpVtbl->get_nodeTypeString(p,a)
#define IXTLRuntime_get_text(p,a) (p)->lpVtbl->get_text(p,a)
#define IXTLRuntime_put_text(p,a) (p)->lpVtbl->put_text(p,a)
#define IXTLRuntime_get_specified(p,a) (p)->lpVtbl->get_specified(p,a)
#define IXTLRuntime_get_definition(p,a) (p)->lpVtbl->get_definition(p,a)
#define IXTLRuntime_get_nodeTypedValue(p,a) (p)->lpVtbl->get_nodeTypedValue(p,a)
#define IXTLRuntime_put_nodeTypedValue(p,a) (p)->lpVtbl->put_nodeTypedValue(p,a)
#define IXTLRuntime_get_dataType(p,a) (p)->lpVtbl->get_dataType(p,a)
#define IXTLRuntime_put_dataType(p,a) (p)->lpVtbl->put_dataType(p,a)
#define IXTLRuntime_get_xml(p,a) (p)->lpVtbl->get_xml(p,a)
#define IXTLRuntime_transformNode(p,a,b) (p)->lpVtbl->transformNode(p,a,b)
#define IXTLRuntime_selectNodes(p,a,b) (p)->lpVtbl->selectNodes(p,a,b)
#define IXTLRuntime_selectSingleNode(p,a,b) (p)->lpVtbl->selectSingleNode(p,a,b)
#define IXTLRuntime_get_parsed(p,a) (p)->lpVtbl->get_parsed(p,a)
#define IXTLRuntime_get_namespaceURI(p,a) (p)->lpVtbl->get_namespaceURI(p,a)
#define IXTLRuntime_get_prefix(p,a) (p)->lpVtbl->get_prefix(p,a)
#define IXTLRuntime_get_baseName(p,a) (p)->lpVtbl->get_baseName(p,a)
#define IXTLRuntime_transformNodeToObject(p,a,b) (p)->lpVtbl->transformNodeToObject(p,a,b)
/*** IXTLRuntime methods ***/
#define IXTLRuntime_uniqueID(p,a,b) (p)->lpVtbl->uniqueID(p,a,b)
#define IXTLRuntime_depth(p,a,b) (p)->lpVtbl->depth(p,a,b)
#define IXTLRuntime_childNumber(p,a,b) (p)->lpVtbl->childNumber(p,a,b)
#define IXTLRuntime_ancestorChildNumber(p,a,b,c) (p)->lpVtbl->ancestorChildNumber(p,a,b,c)
#define IXTLRuntime_absoluteChildNumber(p,a,b) (p)->lpVtbl->absoluteChildNumber(p,a,b)
#define IXTLRuntime_formatIndex(p,a,b,c) (p)->lpVtbl->formatIndex(p,a,b,c)
#define IXTLRuntime_formatNumber(p,a,b,c) (p)->lpVtbl->formatNumber(p,a,b,c)
#define IXTLRuntime_formatDate(p,a,b,c,d) (p)->lpVtbl->formatDate(p,a,b,c,d)
#define IXTLRuntime_formatTime(p,a,b,c,d) (p)->lpVtbl->formatTime(p,a,b,c,d)
#endif

#endif

HRESULT CALLBACK IXTLRuntime_uniqueID_Proxy(
    IXTLRuntime* This,
    IXMLDOMNode* pNode,
    long* pID);
void __RPC_STUB IXTLRuntime_uniqueID_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXTLRuntime_depth_Proxy(
    IXTLRuntime* This,
    IXMLDOMNode* pNode,
    long* pDepth);
void __RPC_STUB IXTLRuntime_depth_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXTLRuntime_childNumber_Proxy(
    IXTLRuntime* This,
    IXMLDOMNode* pNode,
    long* pNumber);
void __RPC_STUB IXTLRuntime_childNumber_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXTLRuntime_ancestorChildNumber_Proxy(
    IXTLRuntime* This,
    BSTR bstr,
    IXMLDOMNode* pNode,
    long* pNumber);
void __RPC_STUB IXTLRuntime_ancestorChildNumber_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXTLRuntime_absoluteChildNumber_Proxy(
    IXTLRuntime* This,
    IXMLDOMNode* pNode,
    long* pNumber);
void __RPC_STUB IXTLRuntime_absoluteChildNumber_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXTLRuntime_formatIndex_Proxy(
    IXTLRuntime* This,
    long lIndex,
    BSTR bstr,
    BSTR* pbstr);
void __RPC_STUB IXTLRuntime_formatIndex_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXTLRuntime_formatNumber_Proxy(
    IXTLRuntime* This,
    double dblNumber,
    BSTR bstr,
    BSTR* pbstr);
void __RPC_STUB IXTLRuntime_formatNumber_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXTLRuntime_formatDate_Proxy(
    IXTLRuntime* This,
    VARIANT var1,
    BSTR bstr,
    VARIANT var2,
    BSTR* pbstr);
void __RPC_STUB IXTLRuntime_formatDate_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXTLRuntime_formatTime_Proxy(
    IXTLRuntime* This,
    VARIANT var1,
    BSTR bstr,
    VARIANT var2,
    BSTR* pbstr);
void __RPC_STUB IXTLRuntime_formatTime_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXTLRuntime_INTERFACE_DEFINED__ */

#ifndef __XMLDOMDocumentEvents_FWD_DEFINED__
#define __XMLDOMDocumentEvents_FWD_DEFINED__
typedef interface XMLDOMDocumentEvents XMLDOMDocumentEvents;
#endif

/*****************************************************************************
 * XMLDOMDocumentEvents dispinterface
 */
#ifndef __XMLDOMDocumentEvents_DISPINTERFACE_DEFINED__
#define __XMLDOMDocumentEvents_DISPINTERFACE_DEFINED__

DEFINE_GUID(DIID_XMLDOMDocumentEvents, 0x3efaa427, 0x272f, 0x11d2, 0x83,0x6f, 0x00,0x00,0xf8,0x7a,0x77,0x82);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface XMLDOMDocumentEvents : public IDispatch
{
};
#else
typedef struct XMLDOMDocumentEventsVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        XMLDOMDocumentEvents* This,
        REFIID riid,
        void** ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        XMLDOMDocumentEvents* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        XMLDOMDocumentEvents* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        XMLDOMDocumentEvents* This,
        UINT* pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        XMLDOMDocumentEvents* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo** ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        XMLDOMDocumentEvents* This,
        REFIID riid,
        LPOLESTR* rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID* rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        XMLDOMDocumentEvents* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS* pDispParams,
        VARIANT* pVarResult,
        EXCEPINFO* pExcepInfo,
        UINT* puArgErr);

    END_INTERFACE
} XMLDOMDocumentEventsVtbl;
interface XMLDOMDocumentEvents {
    const XMLDOMDocumentEventsVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define XMLDOMDocumentEvents_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define XMLDOMDocumentEvents_AddRef(p) (p)->lpVtbl->AddRef(p)
#define XMLDOMDocumentEvents_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define XMLDOMDocumentEvents_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define XMLDOMDocumentEvents_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define XMLDOMDocumentEvents_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define XMLDOMDocumentEvents_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
#endif

#endif

#endif  /* __XMLDOMDocumentEvents_DISPINTERFACE_DEFINED__ */

/*****************************************************************************
 * IXSLProcessor interface
 */
#ifndef __IXSLProcessor_INTERFACE_DEFINED__
#define __IXSLProcessor_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXSLProcessor, 0x2933bf92, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXSLProcessor : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE put_input(
        VARIANT var) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_input(
        VARIANT* var) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_ownerTemplate(
        IXSLTemplate** ppTemplate) = 0;

    virtual HRESULT STDMETHODCALLTYPE setStartMode(
        BSTR p,
        BSTR uri) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_startMode(
        BSTR* p) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_startModeURI(
        BSTR* uri) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_output(
        VARIANT var) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_output(
        VARIANT* var) = 0;

    virtual HRESULT STDMETHODCALLTYPE transform(
        VARIANT_BOOL* pbool) = 0;

    virtual HRESULT STDMETHODCALLTYPE reset(
        ) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_readyState(
        long* pstate) = 0;

    virtual HRESULT STDMETHODCALLTYPE addParameter(
        BSTR p,
        VARIANT var,
        BSTR uri) = 0;

    virtual HRESULT STDMETHODCALLTYPE addObject(
        IDispatch* obj,
        BSTR uri) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_stylesheet(
        IXMLDOMNode** node) = 0;

};
#else
typedef struct IXSLProcessorVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXSLProcessor* This,
        REFIID riid,
        void** ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXSLProcessor* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXSLProcessor* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXSLProcessor* This,
        UINT* pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXSLProcessor* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo** ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXSLProcessor* This,
        REFIID riid,
        LPOLESTR* rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID* rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXSLProcessor* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS* pDispParams,
        VARIANT* pVarResult,
        EXCEPINFO* pExcepInfo,
        UINT* puArgErr);

    /*** IXSLProcessor methods ***/
    HRESULT (STDMETHODCALLTYPE *put_input)(
        IXSLProcessor* This,
        VARIANT var);

    HRESULT (STDMETHODCALLTYPE *get_input)(
        IXSLProcessor* This,
        VARIANT* var);

    HRESULT (STDMETHODCALLTYPE *get_ownerTemplate)(
        IXSLProcessor* This,
        IXSLTemplate** ppTemplate);

    HRESULT (STDMETHODCALLTYPE *setStartMode)(
        IXSLProcessor* This,
        BSTR p,
        BSTR uri);

    HRESULT (STDMETHODCALLTYPE *get_startMode)(
        IXSLProcessor* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *get_startModeURI)(
        IXSLProcessor* This,
        BSTR* uri);

    HRESULT (STDMETHODCALLTYPE *put_output)(
        IXSLProcessor* This,
        VARIANT var);

    HRESULT (STDMETHODCALLTYPE *get_output)(
        IXSLProcessor* This,
        VARIANT* var);

    HRESULT (STDMETHODCALLTYPE *transform)(
        IXSLProcessor* This,
        VARIANT_BOOL* pbool);

    HRESULT (STDMETHODCALLTYPE *reset)(
        IXSLProcessor* This);

    HRESULT (STDMETHODCALLTYPE *get_readyState)(
        IXSLProcessor* This,
        long* pstate);

    HRESULT (STDMETHODCALLTYPE *addParameter)(
        IXSLProcessor* This,
        BSTR p,
        VARIANT var,
        BSTR uri);

    HRESULT (STDMETHODCALLTYPE *addObject)(
        IXSLProcessor* This,
        IDispatch* obj,
        BSTR uri);

    HRESULT (STDMETHODCALLTYPE *get_stylesheet)(
        IXSLProcessor* This,
        IXMLDOMNode** node);

    END_INTERFACE
} IXSLProcessorVtbl;
interface IXSLProcessor {
    const IXSLProcessorVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXSLProcessor_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IXSLProcessor_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IXSLProcessor_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IXSLProcessor_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IXSLProcessor_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IXSLProcessor_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IXSLProcessor_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IXSLProcessor methods ***/
#define IXSLProcessor_put_input(p,a) (p)->lpVtbl->put_input(p,a)
#define IXSLProcessor_get_input(p,a) (p)->lpVtbl->get_input(p,a)
#define IXSLProcessor_get_ownerTemplate(p,a) (p)->lpVtbl->get_ownerTemplate(p,a)
#define IXSLProcessor_setStartMode(p,a,b) (p)->lpVtbl->setStartMode(p,a,b)
#define IXSLProcessor_get_startMode(p,a) (p)->lpVtbl->get_startMode(p,a)
#define IXSLProcessor_get_startModeURI(p,a) (p)->lpVtbl->get_startModeURI(p,a)
#define IXSLProcessor_put_output(p,a) (p)->lpVtbl->put_output(p,a)
#define IXSLProcessor_get_output(p,a) (p)->lpVtbl->get_output(p,a)
#define IXSLProcessor_transform(p,a) (p)->lpVtbl->transform(p,a)
#define IXSLProcessor_reset(p) (p)->lpVtbl->reset(p)
#define IXSLProcessor_get_readyState(p,a) (p)->lpVtbl->get_readyState(p,a)
#define IXSLProcessor_addParameter(p,a,b,c) (p)->lpVtbl->addParameter(p,a,b,c)
#define IXSLProcessor_addObject(p,a,b) (p)->lpVtbl->addObject(p,a,b)
#define IXSLProcessor_get_stylesheet(p,a) (p)->lpVtbl->get_stylesheet(p,a)
#endif

#endif

HRESULT CALLBACK IXSLProcessor_put_input_Proxy(
    IXSLProcessor* This,
    VARIANT var);
void __RPC_STUB IXSLProcessor_put_input_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXSLProcessor_get_input_Proxy(
    IXSLProcessor* This,
    VARIANT* var);
void __RPC_STUB IXSLProcessor_get_input_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXSLProcessor_get_ownerTemplate_Proxy(
    IXSLProcessor* This,
    IXSLTemplate** ppTemplate);
void __RPC_STUB IXSLProcessor_get_ownerTemplate_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXSLProcessor_setStartMode_Proxy(
    IXSLProcessor* This,
    BSTR p,
    BSTR uri);
void __RPC_STUB IXSLProcessor_setStartMode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXSLProcessor_get_startMode_Proxy(
    IXSLProcessor* This,
    BSTR* p);
void __RPC_STUB IXSLProcessor_get_startMode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXSLProcessor_get_startModeURI_Proxy(
    IXSLProcessor* This,
    BSTR* uri);
void __RPC_STUB IXSLProcessor_get_startModeURI_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXSLProcessor_put_output_Proxy(
    IXSLProcessor* This,
    VARIANT var);
void __RPC_STUB IXSLProcessor_put_output_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXSLProcessor_get_output_Proxy(
    IXSLProcessor* This,
    VARIANT* var);
void __RPC_STUB IXSLProcessor_get_output_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXSLProcessor_transform_Proxy(
    IXSLProcessor* This,
    VARIANT_BOOL* pbool);
void __RPC_STUB IXSLProcessor_transform_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXSLProcessor_reset_Proxy(
    IXSLProcessor* This);
void __RPC_STUB IXSLProcessor_reset_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXSLProcessor_get_readyState_Proxy(
    IXSLProcessor* This,
    long* pstate);
void __RPC_STUB IXSLProcessor_get_readyState_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXSLProcessor_addParameter_Proxy(
    IXSLProcessor* This,
    BSTR p,
    VARIANT var,
    BSTR uri);
void __RPC_STUB IXSLProcessor_addParameter_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXSLProcessor_addObject_Proxy(
    IXSLProcessor* This,
    IDispatch* obj,
    BSTR uri);
void __RPC_STUB IXSLProcessor_addObject_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXSLProcessor_get_stylesheet_Proxy(
    IXSLProcessor* This,
    IXMLDOMNode** node);
void __RPC_STUB IXSLProcessor_get_stylesheet_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXSLProcessor_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXSLTemplate interface
 */
#ifndef __IXSLTemplate_INTERFACE_DEFINED__
#define __IXSLTemplate_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXSLTemplate, 0x2933bf93, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXSLTemplate : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE putref_stylesheet(
        IXMLDOMNode* node) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_stylesheet(
        IXMLDOMNode** node) = 0;

    virtual HRESULT STDMETHODCALLTYPE createProcessor(
        IXSLProcessor** ppProcessor) = 0;

};
#else
typedef struct IXSLTemplateVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXSLTemplate* This,
        REFIID riid,
        void** ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXSLTemplate* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXSLTemplate* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXSLTemplate* This,
        UINT* pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXSLTemplate* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo** ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXSLTemplate* This,
        REFIID riid,
        LPOLESTR* rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID* rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXSLTemplate* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS* pDispParams,
        VARIANT* pVarResult,
        EXCEPINFO* pExcepInfo,
        UINT* puArgErr);

    /*** IXSLTemplate methods ***/
    HRESULT (STDMETHODCALLTYPE *putref_stylesheet)(
        IXSLTemplate* This,
        IXMLDOMNode* node);

    HRESULT (STDMETHODCALLTYPE *get_stylesheet)(
        IXSLTemplate* This,
        IXMLDOMNode** node);

    HRESULT (STDMETHODCALLTYPE *createProcessor)(
        IXSLTemplate* This,
        IXSLProcessor** ppProcessor);

    END_INTERFACE
} IXSLTemplateVtbl;
interface IXSLTemplate {
    const IXSLTemplateVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXSLTemplate_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IXSLTemplate_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IXSLTemplate_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IXSLTemplate_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IXSLTemplate_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IXSLTemplate_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IXSLTemplate_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IXSLTemplate methods ***/
#define IXSLTemplate_putref_stylesheet(p,a) (p)->lpVtbl->putref_stylesheet(p,a)
#define IXSLTemplate_get_stylesheet(p,a) (p)->lpVtbl->get_stylesheet(p,a)
#define IXSLTemplate_createProcessor(p,a) (p)->lpVtbl->createProcessor(p,a)
#endif

#endif

HRESULT CALLBACK IXSLTemplate_putref_stylesheet_Proxy(
    IXSLTemplate* This,
    IXMLDOMNode* node);
void __RPC_STUB IXSLTemplate_putref_stylesheet_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXSLTemplate_get_stylesheet_Proxy(
    IXSLTemplate* This,
    IXMLDOMNode** node);
void __RPC_STUB IXSLTemplate_get_stylesheet_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXSLTemplate_createProcessor_Proxy(
    IXSLTemplate* This,
    IXSLProcessor** ppProcessor);
void __RPC_STUB IXSLTemplate_createProcessor_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXSLTemplate_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IXMLDOMParseError interface
 */
#ifndef __IXMLDOMParseError_INTERFACE_DEFINED__
#define __IXMLDOMParseError_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDOMParseError, 0x3efaa426, 0x272f, 0x11d2, 0x83,0x6f, 0x00,0x00,0xf8,0x7a,0x77,0x82);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLDOMParseError : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_errorCode(
        long* errCode) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_url(
        BSTR* p) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_reason(
        BSTR* p) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_srcText(
        BSTR* p) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_line(
        long* lineNo) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_linepos(
        long* linePos) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_filepos(
        long* filePos) = 0;

};
#else
typedef struct IXMLDOMParseErrorVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        IXMLDOMParseError* This,
        REFIID riid,
        void** ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        IXMLDOMParseError* This);

    ULONG (STDMETHODCALLTYPE *Release)(
        IXMLDOMParseError* This);

    /*** IDispatch methods ***/
    HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
        IXMLDOMParseError* This,
        UINT* pctinfo);

    HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
        IXMLDOMParseError* This,
        UINT iTInfo,
        LCID lcid,
        ITypeInfo** ppTInfo);

    HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
        IXMLDOMParseError* This,
        REFIID riid,
        LPOLESTR* rgszNames,
        UINT cNames,
        LCID lcid,
        DISPID* rgDispId);

    HRESULT (STDMETHODCALLTYPE *Invoke)(
        IXMLDOMParseError* This,
        DISPID dispIdMember,
        REFIID riid,
        LCID lcid,
        WORD wFlags,
        DISPPARAMS* pDispParams,
        VARIANT* pVarResult,
        EXCEPINFO* pExcepInfo,
        UINT* puArgErr);

    /*** IXMLDOMParseError methods ***/
    HRESULT (STDMETHODCALLTYPE *get_errorCode)(
        IXMLDOMParseError* This,
        long* errCode);

    HRESULT (STDMETHODCALLTYPE *get_url)(
        IXMLDOMParseError* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *get_reason)(
        IXMLDOMParseError* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *get_srcText)(
        IXMLDOMParseError* This,
        BSTR* p);

    HRESULT (STDMETHODCALLTYPE *get_line)(
        IXMLDOMParseError* This,
        long* lineNo);

    HRESULT (STDMETHODCALLTYPE *get_linepos)(
        IXMLDOMParseError* This,
        long* linePos);

    HRESULT (STDMETHODCALLTYPE *get_filepos)(
        IXMLDOMParseError* This,
        long* filePos);

    END_INTERFACE
} IXMLDOMParseErrorVtbl;
interface IXMLDOMParseError {
    const IXMLDOMParseErrorVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDOMParseError_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IXMLDOMParseError_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IXMLDOMParseError_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IXMLDOMParseError_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IXMLDOMParseError_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IXMLDOMParseError_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IXMLDOMParseError_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IXMLDOMParseError methods ***/
#define IXMLDOMParseError_get_errorCode(p,a) (p)->lpVtbl->get_errorCode(p,a)
#define IXMLDOMParseError_get_url(p,a) (p)->lpVtbl->get_url(p,a)
#define IXMLDOMParseError_get_reason(p,a) (p)->lpVtbl->get_reason(p,a)
#define IXMLDOMParseError_get_srcText(p,a) (p)->lpVtbl->get_srcText(p,a)
#define IXMLDOMParseError_get_line(p,a) (p)->lpVtbl->get_line(p,a)
#define IXMLDOMParseError_get_linepos(p,a) (p)->lpVtbl->get_linepos(p,a)
#define IXMLDOMParseError_get_filepos(p,a) (p)->lpVtbl->get_filepos(p,a)
#endif

#endif

HRESULT CALLBACK 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 CALLBACK 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 CALLBACK 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 CALLBACK 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 CALLBACK 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 CALLBACK 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 CALLBACK 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__ */

/*****************************************************************************
 * DOMDocument coclass
 */

DEFINE_GUID(CLSID_DOMDocument, 0xf6d90f11, 0x9c73, 0x11d3, 0xb3,0x2e, 0x00,0xc0,0x4f,0x99,0x0b,0xb4);

#ifndef __DOMDocument_FWD_DEFINED__
#define __DOMDocument_FWD_DEFINED__
typedef struct DOMDocument DOMDocument;
#endif /* defined __DOMDocument_FWD_DEFINED__ */

/*****************************************************************************
 * DOMDocument26 coclass
 */

DEFINE_GUID(CLSID_DOMDocument26, 0xf5078f1b, 0xc551, 0x11d3, 0x89,0xb9, 0x00,0x00,0xf8,0x1f,0xe2,0x21);

#ifndef __DOMDocument26_FWD_DEFINED__
#define __DOMDocument26_FWD_DEFINED__
typedef struct DOMDocument26 DOMDocument26;
#endif /* defined __DOMDocument26_FWD_DEFINED__ */

/*****************************************************************************
 * DOMDocument30 coclass
 */

DEFINE_GUID(CLSID_DOMDocument30, 0xf5078f32, 0xc551, 0x11d3, 0x89,0xb9, 0x00,0x00,0xf8,0x1f,0xe2,0x21);

#ifndef __DOMDocument30_FWD_DEFINED__
#define __DOMDocument30_FWD_DEFINED__
typedef struct DOMDocument30 DOMDocument30;
#endif /* defined __DOMDocument30_FWD_DEFINED__ */

/*****************************************************************************
 * FreeThreadedDOMDocument coclass
 */

DEFINE_GUID(CLSID_FreeThreadedDOMDocument, 0xf6d90f12, 0x9c73, 0x11d3, 0xb3,0x2e, 0x00,0xc0,0x4f,0x99,0x0b,0xb4);

#ifndef __FreeThreadedDOMDocument_FWD_DEFINED__
#define __FreeThreadedDOMDocument_FWD_DEFINED__
typedef struct FreeThreadedDOMDocument FreeThreadedDOMDocument;
#endif /* defined __FreeThreadedDOMDocument_FWD_DEFINED__ */

/*****************************************************************************
 * FreeThreadedDOMDocument26 coclass
 */

DEFINE_GUID(CLSID_FreeThreadedDOMDocument26, 0xf5078f1c, 0xc551, 0x11d3, 0x89,0xb9, 0x00,0x00,0xf8,0x1f,0xe2,0x21);

#ifndef __FreeThreadedDOMDocument26_FWD_DEFINED__
#define __FreeThreadedDOMDocument26_FWD_DEFINED__
typedef struct FreeThreadedDOMDocument26 FreeThreadedDOMDocument26;
#endif /* defined __FreeThreadedDOMDocument26_FWD_DEFINED__ */

/*****************************************************************************
 * FreeThreadedDOMDocument30 coclass
 */

DEFINE_GUID(CLSID_FreeThreadedDOMDocument30, 0xf5078f33, 0xc551, 0x11d3, 0x89,0xb9, 0x00,0x00,0xf8,0x1f,0xe2,0x21);

#ifndef __FreeThreadedDOMDocument30_FWD_DEFINED__
#define __FreeThreadedDOMDocument30_FWD_DEFINED__
typedef struct FreeThreadedDOMDocument30 FreeThreadedDOMDocument30;
#endif /* defined __FreeThreadedDOMDocument30_FWD_DEFINED__ */

/*****************************************************************************
 * XMLSchemaCache coclass
 */

DEFINE_GUID(CLSID_XMLSchemaCache, 0x373984c9, 0xb845, 0x449b, 0x91,0xe7, 0x45,0xac,0x83,0x03,0x6a,0xde);

#ifndef __XMLSchemaCache_FWD_DEFINED__
#define __XMLSchemaCache_FWD_DEFINED__
typedef struct XMLSchemaCache XMLSchemaCache;
#endif /* defined __XMLSchemaCache_FWD_DEFINED__ */

/*****************************************************************************
 * XMLSchemaCache26 coclass
 */

DEFINE_GUID(CLSID_XMLSchemaCache26, 0xf5078f1d, 0xc551, 0x11d3, 0x89,0xb9, 0x00,0x00,0xf8,0x1f,0xe2,0x21);

#ifndef __XMLSchemaCache26_FWD_DEFINED__
#define __XMLSchemaCache26_FWD_DEFINED__
typedef struct XMLSchemaCache26 XMLSchemaCache26;
#endif /* defined __XMLSchemaCache26_FWD_DEFINED__ */

/*****************************************************************************
 * XMLSchemaCache30 coclass
 */

DEFINE_GUID(CLSID_XMLSchemaCache30, 0xf5078f34, 0xc551, 0x11d3, 0x89,0xb9, 0x00,0x00,0xf8,0x1f,0xe2,0x21);

#ifndef __XMLSchemaCache30_FWD_DEFINED__
#define __XMLSchemaCache30_FWD_DEFINED__
typedef struct XMLSchemaCache30 XMLSchemaCache30;
#endif /* defined __XMLSchemaCache30_FWD_DEFINED__ */

/*****************************************************************************
 * XSLTemplate coclass
 */

DEFINE_GUID(CLSID_XSLTemplate, 0x2933bf94, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60);

#ifndef __XSLTemplate_FWD_DEFINED__
#define __XSLTemplate_FWD_DEFINED__
typedef struct XSLTemplate XSLTemplate;
#endif /* defined __XSLTemplate_FWD_DEFINED__ */

/*****************************************************************************
 * XSLTemplate26 coclass
 */

DEFINE_GUID(CLSID_XSLTemplate26, 0xf5078f21, 0xc551, 0x11d3, 0x89,0xb9, 0x00,0x00,0xf8,0x1f,0xe2,0x21);

#ifndef __XSLTemplate26_FWD_DEFINED__
#define __XSLTemplate26_FWD_DEFINED__
typedef struct XSLTemplate26 XSLTemplate26;
#endif /* defined __XSLTemplate26_FWD_DEFINED__ */

/*****************************************************************************
 * XSLTemplate30 coclass
 */

DEFINE_GUID(CLSID_XSLTemplate30, 0xf5078f36, 0xc551, 0x11d3, 0x89,0xb9, 0x00,0x00,0xf8,0x1f,0xe2,0x21);

#ifndef __XSLTemplate30_FWD_DEFINED__
#define __XSLTemplate30_FWD_DEFINED__
typedef struct XSLTemplate30 XSLTemplate30;
#endif /* defined __XSLTemplate30_FWD_DEFINED__ */

/* Begin additional prototypes for all interfaces */

unsigned long   __RPC_USER VARIANT_UserSize     (unsigned long *, unsigned long,   VARIANT *);
unsigned char * __RPC_USER VARIANT_UserMarshal  (unsigned long *, unsigned char *, VARIANT *);
unsigned char * __RPC_USER VARIANT_UserUnmarshal(unsigned long *, unsigned char *, VARIANT *);
void            __RPC_USER VARIANT_UserFree     (unsigned long *, VARIANT *);
unsigned long   __RPC_USER BSTR_UserSize     (unsigned long *, unsigned long,   BSTR *);
unsigned char * __RPC_USER BSTR_UserMarshal  (unsigned long *, unsigned char *, BSTR *);
unsigned char * __RPC_USER BSTR_UserUnmarshal(unsigned long *, unsigned char *, BSTR *);
void            __RPC_USER BSTR_UserFree     (unsigned long *, BSTR *);

/* End additional prototypes */

#ifdef __cplusplus
}
#endif
#endif /* __WIDL_MSXML2_H */
