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

#ifndef __WIDL_XMLDOM_H
#define __WIDL_XMLDOM_H
#ifdef __cplusplus
extern "C" {
#endif
#include <ocidl.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 __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

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* name) = 0;

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

    virtual HRESULT STDMETHODCALLTYPE put_nodeValue(
        VARIANT value) = 0;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    virtual HRESULT STDMETHODCALLTYPE put_text(
        BSTR text) = 0;

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

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

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

    virtual HRESULT STDMETHODCALLTYPE put_nodeTypedValue(
        VARIANT typedValue) = 0;

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

    virtual HRESULT STDMETHODCALLTYPE put_dataType(
        BSTR dataTypeName) = 0;

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

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

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

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

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

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

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

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

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

};
#else
typedef struct IXMLDOMNodeVtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    END_INTERFACE
} IXMLDOMNodeVtbl;
interface IXMLDOMNode {
    const 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* name);
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* value);
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 value);
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* type);
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** childList);
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** firstChild);
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** lastChild);
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** previousSibling);
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** nextSibling);
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* newChild,
    VARIANT refChild,
    IXMLDOMNode** outNewChild);
void __RPC_STUB IXMLDOMNode_insertBefore_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMNode_replaceChild_Proxy(
    IXMLDOMNode* This,
    IXMLDOMNode* newChild,
    IXMLDOMNode* oldChild,
    IXMLDOMNode** outOldChild);
void __RPC_STUB IXMLDOMNode_replaceChild_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMNode_removeChild_Proxy(
    IXMLDOMNode* This,
    IXMLDOMNode* childNode,
    IXMLDOMNode** oldChild);
void __RPC_STUB IXMLDOMNode_removeChild_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMNode_appendChild_Proxy(
    IXMLDOMNode* This,
    IXMLDOMNode* newChild,
    IXMLDOMNode** outNewChild);
void __RPC_STUB IXMLDOMNode_appendChild_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMNode_hasChildNodes_Proxy(
    IXMLDOMNode* This,
    VARIANT_BOOL* hasChild);
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 deep,
    IXMLDOMNode** cloneRoot);
void __RPC_STUB IXMLDOMNode_cloneNode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMNode_get_nodeTypeString_Proxy(
    IXMLDOMNode* This,
    BSTR* nodeType);
void __RPC_STUB IXMLDOMNode_get_nodeTypeString_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMNode_get_text_Proxy(
    IXMLDOMNode* This,
    BSTR* text);
void __RPC_STUB IXMLDOMNode_get_text_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMNode_put_text_Proxy(
    IXMLDOMNode* This,
    BSTR text);
void __RPC_STUB IXMLDOMNode_put_text_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMNode_get_specified_Proxy(
    IXMLDOMNode* This,
    VARIANT_BOOL* isSpecified);
void __RPC_STUB IXMLDOMNode_get_specified_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMNode_get_definition_Proxy(
    IXMLDOMNode* This,
    IXMLDOMNode** definitionNode);
void __RPC_STUB IXMLDOMNode_get_definition_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMNode_get_nodeTypedValue_Proxy(
    IXMLDOMNode* This,
    VARIANT* typedValue);
void __RPC_STUB IXMLDOMNode_get_nodeTypedValue_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMNode_put_nodeTypedValue_Proxy(
    IXMLDOMNode* This,
    VARIANT typedValue);
void __RPC_STUB IXMLDOMNode_put_nodeTypedValue_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMNode_get_dataType_Proxy(
    IXMLDOMNode* This,
    VARIANT* dataTypeName);
void __RPC_STUB IXMLDOMNode_get_dataType_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMNode_put_dataType_Proxy(
    IXMLDOMNode* This,
    BSTR dataTypeName);
void __RPC_STUB IXMLDOMNode_put_dataType_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMNode_get_xml_Proxy(
    IXMLDOMNode* This,
    BSTR* xmlString);
void __RPC_STUB IXMLDOMNode_get_xml_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMNode_transformNode_Proxy(
    IXMLDOMNode* This,
    IXMLDOMNode* styleSheet,
    BSTR* xmlString);
void __RPC_STUB IXMLDOMNode_transformNode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMNode_selectNodes_Proxy(
    IXMLDOMNode* This,
    BSTR queryString,
    IXMLDOMNodeList** resultList);
void __RPC_STUB IXMLDOMNode_selectNodes_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMNode_selectSingleNode_Proxy(
    IXMLDOMNode* This,
    BSTR queryString,
    IXMLDOMNode** resultNode);
void __RPC_STUB IXMLDOMNode_selectSingleNode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMNode_get_parsed_Proxy(
    IXMLDOMNode* This,
    VARIANT_BOOL* isParsed);
void __RPC_STUB IXMLDOMNode_get_parsed_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMNode_get_namespaceURI_Proxy(
    IXMLDOMNode* This,
    BSTR* namespaceURI);
void __RPC_STUB IXMLDOMNode_get_namespaceURI_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMNode_get_prefix_Proxy(
    IXMLDOMNode* This,
    BSTR* prefixString);
void __RPC_STUB IXMLDOMNode_get_prefix_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMNode_get_baseName_Proxy(
    IXMLDOMNode* This,
    BSTR* nameString);
void __RPC_STUB IXMLDOMNode_get_baseName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMNode_transformNodeToObject_Proxy(
    IXMLDOMNode* This,
    IXMLDOMNode* stylesheet,
    VARIANT outputObject);
void __RPC_STUB IXMLDOMNode_transformNodeToObject_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMNode_INTERFACE_DEFINED__ */

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

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

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

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

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

    virtual HRESULT STDMETHODCALLTYPE createElement(
        BSTR tagname,
        IXMLDOMElement** element) = 0;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    virtual HRESULT STDMETHODCALLTYPE put_async(
        VARIANT_BOOL isAsync) = 0;

    virtual HRESULT STDMETHODCALLTYPE abort(
        ) = 0;

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

    virtual HRESULT STDMETHODCALLTYPE save(
        VARIANT destination) = 0;

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

    virtual HRESULT STDMETHODCALLTYPE put_validateOnParse(
        VARIANT_BOOL isValidating) = 0;

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

    virtual HRESULT STDMETHODCALLTYPE put_resolveExternals(
        VARIANT_BOOL isValidating) = 0;

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

    virtual HRESULT STDMETHODCALLTYPE put_preserveWhiteSpace(
        VARIANT_BOOL isPreserving) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_onreadystatechange(
        VARIANT readystatechangeSink) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_ondataavailable(
        VARIANT ondataavailableSink) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_ontransformnode(
        VARIANT ontransformnodeSink) = 0;

};
#else
typedef struct IXMLDOMDocumentVtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    HRESULT (STDMETHODCALLTYPE *createElement)(
        IXMLDOMDocument* This,
        BSTR tagname,
        IXMLDOMElement** element);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#endif  /* __IXMLDOMDocument_INTERFACE_DEFINED__ */

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

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

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

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

    virtual HRESULT STDMETHODCALLTYPE reset(
        ) = 0;

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

};
#else
typedef struct IXMLDOMNodeListVtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

    /*** IXMLDOMNodeList methods ***/
    HRESULT (STDMETHODCALLTYPE *get_item)(
        IXMLDOMNodeList* This,
        long index,
        IXMLDOMNode** listItem);

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

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

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

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

    END_INTERFACE
} IXMLDOMNodeListVtbl;
interface IXMLDOMNodeList {
    const 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__newEnum(p,a) (p)->lpVtbl->_newEnum(p,a)
#endif

#endif

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

#endif  /* __IXMLDOMNodeList_INTERFACE_DEFINED__ */

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

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

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

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

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

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

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

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

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

    virtual HRESULT STDMETHODCALLTYPE reset(
        ) = 0;

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

};
#else
typedef struct IXMLDOMNamedNodeMapVtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

    /*** IXMLDOMNamedNodeMap methods ***/
    HRESULT (STDMETHODCALLTYPE *getNamedItem)(
        IXMLDOMNamedNodeMap* This,
        BSTR name,
        IXMLDOMNode** namedItem);

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

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

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

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

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

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

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

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

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

    END_INTERFACE
} IXMLDOMNamedNodeMapVtbl;
interface IXMLDOMNamedNodeMap {
    const 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__newEnum(p,a) (p)->lpVtbl->_newEnum(p,a)
#endif

#endif

HRESULT CALLBACK IXMLDOMNamedNodeMap_getNamedItem_Proxy(
    IXMLDOMNamedNodeMap* This,
    BSTR name,
    IXMLDOMNode** namedItem);
void __RPC_STUB IXMLDOMNamedNodeMap_getNamedItem_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMNamedNodeMap_setNamedItem_Proxy(
    IXMLDOMNamedNodeMap* This,
    IXMLDOMNode* newItem,
    IXMLDOMNode** namedItem);
void __RPC_STUB IXMLDOMNamedNodeMap_setNamedItem_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMNamedNodeMap_removeNamedItem_Proxy(
    IXMLDOMNamedNodeMap* This,
    BSTR name,
    IXMLDOMNode** namedItem);
void __RPC_STUB IXMLDOMNamedNodeMap_removeNamedItem_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMNamedNodeMap_get_item_Proxy(
    IXMLDOMNamedNodeMap* This,
    long index,
    IXMLDOMNode** listItem);
void __RPC_STUB IXMLDOMNamedNodeMap_get_item_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMNamedNodeMap_get_length_Proxy(
    IXMLDOMNamedNodeMap* This,
    long* listLength);
void __RPC_STUB IXMLDOMNamedNodeMap_get_length_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMNamedNodeMap_getQualifiedItem_Proxy(
    IXMLDOMNamedNodeMap* This,
    BSTR baseName,
    BSTR namespaceURI,
    IXMLDOMNode** qualifiedItem);
void __RPC_STUB IXMLDOMNamedNodeMap_getQualifiedItem_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMNamedNodeMap_removeQualifiedItem_Proxy(
    IXMLDOMNamedNodeMap* This,
    BSTR baseName,
    BSTR namespaceURI,
    IXMLDOMNode** qualifiedItem);
void __RPC_STUB IXMLDOMNamedNodeMap_removeQualifiedItem_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMNamedNodeMap_nextNode_Proxy(
    IXMLDOMNamedNodeMap* This,
    IXMLDOMNode** nextItem);
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__newEnum_Proxy(
    IXMLDOMNamedNodeMap* This,
    IUnknown** ppUnk);
void __RPC_STUB IXMLDOMNamedNodeMap__newEnum_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMNamedNodeMap_INTERFACE_DEFINED__ */

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

DEFINE_GUID(IID_IXMLDOMDocumentFragment, 0x3efaa413, 0x272f, 0x11d2, 0x83,0x6f, 0x00,0x00,0xf8,0x7a,0x77,0x82);
#if defined(__cplusplus) && !defined(CINTERFACE)
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* name);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    END_INTERFACE
} IXMLDOMDocumentFragmentVtbl;
interface IXMLDOMDocumentFragment {
    const 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* data) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_data(
        BSTR data) = 0;

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

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

    virtual HRESULT STDMETHODCALLTYPE appendData(
        BSTR data) = 0;

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

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

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

};
#else
typedef struct IXMLDOMCharacterDataVtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    END_INTERFACE
} IXMLDOMCharacterDataVtbl;
interface IXMLDOMCharacterData {
    const 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* data);
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* dataLength);
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* data);
void __RPC_STUB IXMLDOMCharacterData_substringData_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMCharacterData_appendData_Proxy(
    IXMLDOMCharacterData* This,
    BSTR data);
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 data);
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 data);
void __RPC_STUB IXMLDOMCharacterData_replaceData_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMCharacterData_INTERFACE_DEFINED__ */

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

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

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

    virtual HRESULT STDMETHODCALLTYPE put_value(
        VARIANT attributeValue) = 0;

};
#else
typedef struct IXMLDOMAttributeVtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    END_INTERFACE
} IXMLDOMAttributeVtbl;
interface IXMLDOMAttribute {
    const 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* attributeName);
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* attributeValue);
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 attributeValue);
void __RPC_STUB IXMLDOMAttribute_put_value_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMAttribute_INTERFACE_DEFINED__ */

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

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

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

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

    virtual HRESULT STDMETHODCALLTYPE removeAttribute(
        BSTR name) = 0;

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

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

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

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

    virtual HRESULT STDMETHODCALLTYPE normalize(
        ) = 0;

};
#else
typedef struct IXMLDOMElementVtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    END_INTERFACE
} IXMLDOMElementVtbl;
interface IXMLDOMElement {
    const 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* tagName);
void __RPC_STUB IXMLDOMElement_get_tagName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMElement_getAttribute_Proxy(
    IXMLDOMElement* This,
    BSTR name,
    VARIANT* value);
void __RPC_STUB IXMLDOMElement_getAttribute_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMElement_setAttribute_Proxy(
    IXMLDOMElement* This,
    BSTR name,
    VARIANT value);
void __RPC_STUB IXMLDOMElement_setAttribute_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMElement_removeAttribute_Proxy(
    IXMLDOMElement* This,
    BSTR name);
void __RPC_STUB IXMLDOMElement_removeAttribute_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDOMElement_getAttributeNode_Proxy(
    IXMLDOMElement* This,
    BSTR name,
    IXMLDOMAttribute** attributeNode);
void __RPC_STUB IXMLDOMElement_getAttributeNode_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT 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 tagName,
    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** rightHandTextNode) = 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* name);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    END_INTERFACE
} IXMLDOMTextVtbl;
interface IXMLDOMText {
    const 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** rightHandTextNode);
void __RPC_STUB IXMLDOMText_splitText_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMText_INTERFACE_DEFINED__ */

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    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)
#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* name) = 0;

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

    virtual HRESULT STDMETHODCALLTYPE put_data(
        BSTR value) = 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* name);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    END_INTERFACE
} IXMLDOMProcessingInstructionVtbl;
interface IXMLDOMProcessingInstruction {
    const 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* name);
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* value);
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 value);
void __RPC_STUB IXMLDOMProcessingInstruction_put_data_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDOMProcessingInstruction_INTERFACE_DEFINED__ */

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

DEFINE_GUID(IID_IXMLDOMCDATASection, 0x2933bf8a, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60);
#if defined(__cplusplus) && !defined(CINTERFACE)
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* name);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    END_INTERFACE
} IXMLDOMCDATASectionVtbl;
interface IXMLDOMCDATASection {
    const 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* rootName) = 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* name);

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    HRESULT (STDMETHODCALLTYPE *get_entities)(
        IXMLDOMDocumentType* This,
        IXMLDOMNamedNodeMap** entityMap);

    HRESULT (STDMETHODCALLTYPE *get_notations)(
        IXMLDOMDocumentType* This,
        IXMLDOMNamedNodeMap** notationMap);

    END_INTERFACE
} IXMLDOMDocumentTypeVtbl;
interface IXMLDOMDocumentType {
    const 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* rootName);
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__ */

/*****************************************************************************
 * 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, 0x2933bf90, 0x7b36, 0x11d2, 0xb2,0x0e, 0x00,0xc0,0x4f,0x98,0x3e,0x60);

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

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

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

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

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

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

/*****************************************************************************
 * IXMLHttpRequest interface
 */
#ifndef __IXMLHttpRequest_INTERFACE_DEFINED__
#define __IXMLHttpRequest_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLHttpRequest, 0xed8c108d, 0x4349, 0x11d2, 0x91,0xa4, 0x00,0xc0,0x4f,0x79,0x69,0xe8);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLHttpRequest : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE open(
        BSTR bstrMethod,
        BSTR bstrUrl,
        VARIANT varAsync,
        VARIANT varUser,
        VARIANT varPassword) = 0;

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

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

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

    virtual HRESULT STDMETHODCALLTYPE send(
        VARIANT varBody) = 0;

    virtual HRESULT STDMETHODCALLTYPE abort(
        ) = 0;

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

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

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

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

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

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

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

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

};
#else
typedef struct IXMLHttpRequestVtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

    /*** IXMLHttpRequest methods ***/
    HRESULT (STDMETHODCALLTYPE *open)(
        IXMLHttpRequest* This,
        BSTR bstrMethod,
        BSTR bstrUrl,
        VARIANT varAsync,
        VARIANT varUser,
        VARIANT varPassword);

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

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

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

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

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

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

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

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

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

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

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

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

    HRESULT (STDMETHODCALLTYPE *put_onreadystatechange)(
        IXMLHttpRequest* This,
        IDispatch* pReadyStateSink);

    END_INTERFACE
} IXMLHttpRequestVtbl;
interface IXMLHttpRequest {
    const IXMLHttpRequestVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLHttpRequest_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IXMLHttpRequest_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IXMLHttpRequest_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IXMLHttpRequest_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IXMLHttpRequest_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IXMLHttpRequest_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IXMLHttpRequest_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IXMLHttpRequest methods ***/
#define IXMLHttpRequest_open(p,a,b,c,d,e) (p)->lpVtbl->open(p,a,b,c,d,e)
#define IXMLHttpRequest_setRequestHeader(p,a,b) (p)->lpVtbl->setRequestHeader(p,a,b)
#define IXMLHttpRequest_getResponseHeader(p,a,b) (p)->lpVtbl->getResponseHeader(p,a,b)
#define IXMLHttpRequest_getAllResponseHeaders(p,a) (p)->lpVtbl->getAllResponseHeaders(p,a)
#define IXMLHttpRequest_send(p,a) (p)->lpVtbl->send(p,a)
#define IXMLHttpRequest_abort(p) (p)->lpVtbl->abort(p)
#define IXMLHttpRequest_get_status(p,a) (p)->lpVtbl->get_status(p,a)
#define IXMLHttpRequest_get_statusText(p,a) (p)->lpVtbl->get_statusText(p,a)
#define IXMLHttpRequest_get_responseXML(p,a) (p)->lpVtbl->get_responseXML(p,a)
#define IXMLHttpRequest_get_responseText(p,a) (p)->lpVtbl->get_responseText(p,a)
#define IXMLHttpRequest_get_responseBody(p,a) (p)->lpVtbl->get_responseBody(p,a)
#define IXMLHttpRequest_get_responseStream(p,a) (p)->lpVtbl->get_responseStream(p,a)
#define IXMLHttpRequest_get_readyState(p,a) (p)->lpVtbl->get_readyState(p,a)
#define IXMLHttpRequest_put_onreadystatechange(p,a) (p)->lpVtbl->put_onreadystatechange(p,a)
#endif

#endif

HRESULT CALLBACK IXMLHttpRequest_open_Proxy(
    IXMLHttpRequest* This,
    BSTR bstrMethod,
    BSTR bstrUrl,
    VARIANT varAsync,
    VARIANT varUser,
    VARIANT varPassword);
void __RPC_STUB IXMLHttpRequest_open_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLHttpRequest_setRequestHeader_Proxy(
    IXMLHttpRequest* This,
    BSTR bstrHeader,
    BSTR bstrValue);
void __RPC_STUB IXMLHttpRequest_setRequestHeader_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLHttpRequest_getResponseHeader_Proxy(
    IXMLHttpRequest* This,
    BSTR bstrHeader,
    BSTR* pbstrValue);
void __RPC_STUB IXMLHttpRequest_getResponseHeader_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLHttpRequest_getAllResponseHeaders_Proxy(
    IXMLHttpRequest* This,
    BSTR* pbstrHeaders);
void __RPC_STUB IXMLHttpRequest_getAllResponseHeaders_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLHttpRequest_send_Proxy(
    IXMLHttpRequest* This,
    VARIANT varBody);
void __RPC_STUB IXMLHttpRequest_send_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLHttpRequest_abort_Proxy(
    IXMLHttpRequest* This);
void __RPC_STUB IXMLHttpRequest_abort_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLHttpRequest_get_status_Proxy(
    IXMLHttpRequest* This,
    long* plStatus);
void __RPC_STUB IXMLHttpRequest_get_status_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLHttpRequest_get_statusText_Proxy(
    IXMLHttpRequest* This,
    BSTR* bstrStatus);
void __RPC_STUB IXMLHttpRequest_get_statusText_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLHttpRequest_get_responseXML_Proxy(
    IXMLHttpRequest* This,
    IDispatch** ppBody);
void __RPC_STUB IXMLHttpRequest_get_responseXML_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLHttpRequest_get_responseText_Proxy(
    IXMLHttpRequest* This,
    BSTR* pbstrBody);
void __RPC_STUB IXMLHttpRequest_get_responseText_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLHttpRequest_get_responseBody_Proxy(
    IXMLHttpRequest* This,
    VARIANT* pvarBody);
void __RPC_STUB IXMLHttpRequest_get_responseBody_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLHttpRequest_get_responseStream_Proxy(
    IXMLHttpRequest* This,
    VARIANT* pvarBody);
void __RPC_STUB IXMLHttpRequest_get_responseStream_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLHttpRequest_get_readyState_Proxy(
    IXMLHttpRequest* This,
    long* plState);
void __RPC_STUB IXMLHttpRequest_get_readyState_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLHttpRequest_put_onreadystatechange_Proxy(
    IXMLHttpRequest* This,
    IDispatch* pReadyStateSink);
void __RPC_STUB IXMLHttpRequest_put_onreadystatechange_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLHttpRequest_INTERFACE_DEFINED__ */

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

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

#ifndef __XMLHTTPRequest_FWD_DEFINED__
#define __XMLHTTPRequest_FWD_DEFINED__
typedef struct XMLHTTPRequest XMLHTTPRequest;
#endif /* defined __XMLHTTPRequest_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_XMLDOM_H */
