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

#ifndef __WIDL_MSXML_H
#define __WIDL_MSXML_H
#ifdef __cplusplus
extern "C" {
#endif
#include <unknwn.h>
#include <wtypes.h>
#include <objidl.h>
#include <oaidl.h>
#ifndef __IXMLElementCollection_FWD_DEFINED__
#define __IXMLElementCollection_FWD_DEFINED__
typedef interface IXMLElementCollection IXMLElementCollection;
#endif

/*****************************************************************************
 * IXMLElementCollection interface
 */
#ifndef __IXMLElementCollection_INTERFACE_DEFINED__
#define __IXMLElementCollection_INTERFACE_DEFINED__

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

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

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

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

};
#else
typedef struct IXMLElementCollectionVtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

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

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

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

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

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

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLElementCollection_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IXMLElementCollection_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IXMLElementCollection_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IXMLElementCollection_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IXMLElementCollection_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IXMLElementCollection_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IXMLElementCollection_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IXMLElementCollection methods ***/
#define IXMLElementCollection_put_length(p,a) (p)->lpVtbl->put_length(p,a)
#define IXMLElementCollection_get_length(p,a) (p)->lpVtbl->get_length(p,a)
#define IXMLElementCollection_get__newEnum(p,a) (p)->lpVtbl->get__newEnum(p,a)
#define IXMLElementCollection_item(p,a,b,c) (p)->lpVtbl->item(p,a,b,c)
#endif

#endif

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

#endif  /* __IXMLElementCollection_INTERFACE_DEFINED__ */

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

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

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

    virtual HRESULT STDMETHODCALLTYPE put_tagName(
        BSTR p) = 0;

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

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

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

    virtual HRESULT STDMETHODCALLTYPE removeAttribute(
        BSTR strPropertyName) = 0;

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

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

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

    virtual HRESULT STDMETHODCALLTYPE put_text(
        BSTR p) = 0;

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

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

};
#else
typedef struct IXMLElementVtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLElement_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IXMLElement_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IXMLElement_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IXMLElement_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IXMLElement_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IXMLElement_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IXMLElement_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IXMLElement methods ***/
#define IXMLElement_get_tagName(p,a) (p)->lpVtbl->get_tagName(p,a)
#define IXMLElement_put_tagName(p,a) (p)->lpVtbl->put_tagName(p,a)
#define IXMLElement_get_parent(p,a) (p)->lpVtbl->get_parent(p,a)
#define IXMLElement_setAttribute(p,a,b) (p)->lpVtbl->setAttribute(p,a,b)
#define IXMLElement_getAttribute(p,a,b) (p)->lpVtbl->getAttribute(p,a,b)
#define IXMLElement_removeAttribute(p,a) (p)->lpVtbl->removeAttribute(p,a)
#define IXMLElement_get_children(p,a) (p)->lpVtbl->get_children(p,a)
#define IXMLElement_get_type(p,a) (p)->lpVtbl->get_type(p,a)
#define IXMLElement_get_text(p,a) (p)->lpVtbl->get_text(p,a)
#define IXMLElement_put_text(p,a) (p)->lpVtbl->put_text(p,a)
#define IXMLElement_addChild(p,a,b,c) (p)->lpVtbl->addChild(p,a,b,c)
#define IXMLElement_removeChild(p,a) (p)->lpVtbl->removeChild(p,a)
#endif

#endif

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

#endif  /* __IXMLElement_INTERFACE_DEFINED__ */

#ifndef __IXMLDocument_FWD_DEFINED__
#define __IXMLDocument_FWD_DEFINED__
typedef interface IXMLDocument IXMLDocument;
#endif

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

DEFINE_GUID(IID_IXMLDocument, 0xf52e2b61, 0x18a1, 0x11d1, 0xb1,0x05, 0x00,0x80,0x5f,0x49,0x91,0x6b);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLDocument : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_root(
        IXMLElement **p) = 0;

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

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

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

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

    virtual HRESULT STDMETHODCALLTYPE put_URL(
        BSTR p) = 0;

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

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

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

    virtual HRESULT STDMETHODCALLTYPE put_charset(
        BSTR p) = 0;

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

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

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

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

};
#else
typedef struct IXMLDocumentVtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

    /*** IXMLDocument methods ***/
    HRESULT (STDMETHODCALLTYPE *get_root)(
        IXMLDocument* This,
        IXMLElement **p);

    HRESULT (STDMETHODCALLTYPE *get_fileSize)(
        IXMLDocument* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_fileModifiedDate)(
        IXMLDocument* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_fileUpdatedDate)(
        IXMLDocument* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_URL)(
        IXMLDocument* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *put_URL)(
        IXMLDocument* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_mimeType)(
        IXMLDocument* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_readyState)(
        IXMLDocument* This,
        long *p);

    HRESULT (STDMETHODCALLTYPE *get_charset)(
        IXMLDocument* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *put_charset)(
        IXMLDocument* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_version)(
        IXMLDocument* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_doctype)(
        IXMLDocument* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_dtdURl)(
        IXMLDocument* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *createElement)(
        IXMLDocument* This,
        VARIANT vType,
        VARIANT var1,
        IXMLElement **ppElem);

    END_INTERFACE
} IXMLDocumentVtbl;
interface IXMLDocument {
    CONST_VTBL IXMLDocumentVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDocument_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IXMLDocument_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IXMLDocument_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IXMLDocument_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IXMLDocument_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IXMLDocument_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IXMLDocument_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IXMLDocument methods ***/
#define IXMLDocument_get_root(p,a) (p)->lpVtbl->get_root(p,a)
#define IXMLDocument_get_fileSize(p,a) (p)->lpVtbl->get_fileSize(p,a)
#define IXMLDocument_get_fileModifiedDate(p,a) (p)->lpVtbl->get_fileModifiedDate(p,a)
#define IXMLDocument_get_fileUpdatedDate(p,a) (p)->lpVtbl->get_fileUpdatedDate(p,a)
#define IXMLDocument_get_URL(p,a) (p)->lpVtbl->get_URL(p,a)
#define IXMLDocument_put_URL(p,a) (p)->lpVtbl->put_URL(p,a)
#define IXMLDocument_get_mimeType(p,a) (p)->lpVtbl->get_mimeType(p,a)
#define IXMLDocument_get_readyState(p,a) (p)->lpVtbl->get_readyState(p,a)
#define IXMLDocument_get_charset(p,a) (p)->lpVtbl->get_charset(p,a)
#define IXMLDocument_put_charset(p,a) (p)->lpVtbl->put_charset(p,a)
#define IXMLDocument_get_version(p,a) (p)->lpVtbl->get_version(p,a)
#define IXMLDocument_get_doctype(p,a) (p)->lpVtbl->get_doctype(p,a)
#define IXMLDocument_get_dtdURl(p,a) (p)->lpVtbl->get_dtdURl(p,a)
#define IXMLDocument_createElement(p,a,b,c) (p)->lpVtbl->createElement(p,a,b,c)
#endif

#endif

HRESULT CALLBACK IXMLDocument_get_root_Proxy(
    IXMLDocument* This,
    IXMLElement **p);
void __RPC_STUB IXMLDocument_get_root_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDocument_get_fileSize_Proxy(
    IXMLDocument* This,
    BSTR *p);
void __RPC_STUB IXMLDocument_get_fileSize_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDocument_get_fileModifiedDate_Proxy(
    IXMLDocument* This,
    BSTR *p);
void __RPC_STUB IXMLDocument_get_fileModifiedDate_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDocument_get_fileUpdatedDate_Proxy(
    IXMLDocument* This,
    BSTR *p);
void __RPC_STUB IXMLDocument_get_fileUpdatedDate_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDocument_get_URL_Proxy(
    IXMLDocument* This,
    BSTR *p);
void __RPC_STUB IXMLDocument_get_URL_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDocument_put_URL_Proxy(
    IXMLDocument* This,
    BSTR p);
void __RPC_STUB IXMLDocument_put_URL_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDocument_get_mimeType_Proxy(
    IXMLDocument* This,
    BSTR *p);
void __RPC_STUB IXMLDocument_get_mimeType_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDocument_get_readyState_Proxy(
    IXMLDocument* This,
    long *p);
void __RPC_STUB IXMLDocument_get_readyState_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDocument_get_charset_Proxy(
    IXMLDocument* This,
    BSTR *p);
void __RPC_STUB IXMLDocument_get_charset_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDocument_put_charset_Proxy(
    IXMLDocument* This,
    BSTR p);
void __RPC_STUB IXMLDocument_put_charset_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDocument_get_version_Proxy(
    IXMLDocument* This,
    BSTR *p);
void __RPC_STUB IXMLDocument_get_version_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDocument_get_doctype_Proxy(
    IXMLDocument* This,
    BSTR *p);
void __RPC_STUB IXMLDocument_get_doctype_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDocument_get_dtdURl_Proxy(
    IXMLDocument* This,
    BSTR *p);
void __RPC_STUB IXMLDocument_get_dtdURl_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDocument_createElement_Proxy(
    IXMLDocument* This,
    VARIANT vType,
    VARIANT var1,
    IXMLElement **ppElem);
void __RPC_STUB IXMLDocument_createElement_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDocument_INTERFACE_DEFINED__ */

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

/*****************************************************************************
 * IXMLElement2 interface
 */
#ifndef __IXMLElement2_INTERFACE_DEFINED__
#define __IXMLElement2_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLElement2, 0x2b8de2ff, 0x8d2d, 0x11d1, 0xb2,0xfc, 0x00,0xc0,0x4f,0xd9,0x15,0xa9);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLElement2 : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_tagName(
        BSTR *p) = 0;

    virtual HRESULT STDMETHODCALLTYPE put_tagName(
        BSTR p) = 0;

    virtual HRESULT STDMETHODCALLTYPE get_parent(
        IXMLElement2 **ppParent) = 0;

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

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

    virtual HRESULT STDMETHODCALLTYPE removeAttribute(
        BSTR strPropertyName) = 0;

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

    virtual HRESULT STDMETHODCALLTYPE get_type(
        long *plType) = 0;

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

    virtual HRESULT STDMETHODCALLTYPE put_text(
        BSTR p) = 0;

    virtual HRESULT STDMETHODCALLTYPE addChild(
        IXMLElement2 *pChildElem,
        long lIndex,
        long lReserved) = 0;

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

    virtual HRESULT STDMETHODCALLTYPE get_attributes(
        IXMLElementCollection **pp) = 0;

};
#else
typedef struct IXMLElement2Vtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

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

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

    HRESULT (STDMETHODCALLTYPE *get_parent)(
        IXMLElement2* This,
        IXMLElement2 **ppParent);

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

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

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

    HRESULT (STDMETHODCALLTYPE *get_children)(
        IXMLElement2* This,
        IXMLElementCollection **pp);

    HRESULT (STDMETHODCALLTYPE *get_type)(
        IXMLElement2* This,
        long *plType);

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

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

    HRESULT (STDMETHODCALLTYPE *addChild)(
        IXMLElement2* This,
        IXMLElement2 *pChildElem,
        long lIndex,
        long lReserved);

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

    HRESULT (STDMETHODCALLTYPE *get_attributes)(
        IXMLElement2* This,
        IXMLElementCollection **pp);

    END_INTERFACE
} IXMLElement2Vtbl;
interface IXMLElement2 {
    CONST_VTBL IXMLElement2Vtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLElement2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IXMLElement2_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IXMLElement2_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IXMLElement2_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IXMLElement2_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IXMLElement2_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IXMLElement2_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IXMLElement2 methods ***/
#define IXMLElement2_get_tagName(p,a) (p)->lpVtbl->get_tagName(p,a)
#define IXMLElement2_put_tagName(p,a) (p)->lpVtbl->put_tagName(p,a)
#define IXMLElement2_get_parent(p,a) (p)->lpVtbl->get_parent(p,a)
#define IXMLElement2_setAttribute(p,a,b) (p)->lpVtbl->setAttribute(p,a,b)
#define IXMLElement2_getAttribute(p,a,b) (p)->lpVtbl->getAttribute(p,a,b)
#define IXMLElement2_removeAttribute(p,a) (p)->lpVtbl->removeAttribute(p,a)
#define IXMLElement2_get_children(p,a) (p)->lpVtbl->get_children(p,a)
#define IXMLElement2_get_type(p,a) (p)->lpVtbl->get_type(p,a)
#define IXMLElement2_get_text(p,a) (p)->lpVtbl->get_text(p,a)
#define IXMLElement2_put_text(p,a) (p)->lpVtbl->put_text(p,a)
#define IXMLElement2_addChild(p,a,b,c) (p)->lpVtbl->addChild(p,a,b,c)
#define IXMLElement2_removeChild(p,a) (p)->lpVtbl->removeChild(p,a)
#define IXMLElement2_get_attributes(p,a) (p)->lpVtbl->get_attributes(p,a)
#endif

#endif

HRESULT CALLBACK IXMLElement2_get_tagName_Proxy(
    IXMLElement2* This,
    BSTR *p);
void __RPC_STUB IXMLElement2_get_tagName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLElement2_put_tagName_Proxy(
    IXMLElement2* This,
    BSTR p);
void __RPC_STUB IXMLElement2_put_tagName_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLElement2_get_parent_Proxy(
    IXMLElement2* This,
    IXMLElement2 **ppParent);
void __RPC_STUB IXMLElement2_get_parent_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLElement2_setAttribute_Proxy(
    IXMLElement2* This,
    BSTR strPropertyName,
    VARIANT PropertyValue);
void __RPC_STUB IXMLElement2_setAttribute_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLElement2_getAttribute_Proxy(
    IXMLElement2* This,
    BSTR strPropertyName,
    VARIANT *PropertyValue);
void __RPC_STUB IXMLElement2_getAttribute_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLElement2_removeAttribute_Proxy(
    IXMLElement2* This,
    BSTR strPropertyName);
void __RPC_STUB IXMLElement2_removeAttribute_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLElement2_get_children_Proxy(
    IXMLElement2* This,
    IXMLElementCollection **pp);
void __RPC_STUB IXMLElement2_get_children_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLElement2_get_type_Proxy(
    IXMLElement2* This,
    long *plType);
void __RPC_STUB IXMLElement2_get_type_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLElement2_get_text_Proxy(
    IXMLElement2* This,
    BSTR *p);
void __RPC_STUB IXMLElement2_get_text_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLElement2_put_text_Proxy(
    IXMLElement2* This,
    BSTR p);
void __RPC_STUB IXMLElement2_put_text_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLElement2_addChild_Proxy(
    IXMLElement2* This,
    IXMLElement2 *pChildElem,
    long lIndex,
    long lReserved);
void __RPC_STUB IXMLElement2_addChild_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLElement2_removeChild_Proxy(
    IXMLElement2* This,
    IXMLElement2 *pChildElem);
void __RPC_STUB IXMLElement2_removeChild_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLElement2_get_attributes_Proxy(
    IXMLElement2* This,
    IXMLElementCollection **pp);
void __RPC_STUB IXMLElement2_get_attributes_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLElement2_INTERFACE_DEFINED__ */

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

/*****************************************************************************
 * IXMLDocument2 interface
 */
#ifndef __IXMLDocument2_INTERFACE_DEFINED__
#define __IXMLDocument2_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLDocument2, 0x2b8de2fe, 0x8d2d, 0x11d1, 0xb2,0xfc, 0x00,0xc0,0x4f,0xd9,0x15,0xa9);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLDocument2 : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_root(
        IXMLElement2 **p) = 0;

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

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

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

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

    virtual HRESULT STDMETHODCALLTYPE put_URL(
        BSTR p) = 0;

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

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

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

    virtual HRESULT STDMETHODCALLTYPE put_charset(
        BSTR p) = 0;

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

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

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

    virtual HRESULT STDMETHODCALLTYPE createElement(
        VARIANT vType,
        VARIANT var,
        IXMLElement2 **ppElem) = 0;

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

    virtual HRESULT STDMETHODCALLTYPE put_async(
        VARIANT_BOOL f) = 0;

};
#else
typedef struct IXMLDocument2Vtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

    /*** IXMLDocument2 methods ***/
    HRESULT (STDMETHODCALLTYPE *get_root)(
        IXMLDocument2* This,
        IXMLElement2 **p);

    HRESULT (STDMETHODCALLTYPE *get_fileSize)(
        IXMLDocument2* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_fileModifiedDate)(
        IXMLDocument2* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_fileUpdatedDate)(
        IXMLDocument2* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_URL)(
        IXMLDocument2* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *put_URL)(
        IXMLDocument2* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_mimeType)(
        IXMLDocument2* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_readyState)(
        IXMLDocument2* This,
        long *pl);

    HRESULT (STDMETHODCALLTYPE *get_charset)(
        IXMLDocument2* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *put_charset)(
        IXMLDocument2* This,
        BSTR p);

    HRESULT (STDMETHODCALLTYPE *get_version)(
        IXMLDocument2* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_doctype)(
        IXMLDocument2* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *get_dtdURL)(
        IXMLDocument2* This,
        BSTR *p);

    HRESULT (STDMETHODCALLTYPE *createElement)(
        IXMLDocument2* This,
        VARIANT vType,
        VARIANT var,
        IXMLElement2 **ppElem);

    HRESULT (STDMETHODCALLTYPE *get_async)(
        IXMLDocument2* This,
        VARIANT_BOOL *pf);

    HRESULT (STDMETHODCALLTYPE *put_async)(
        IXMLDocument2* This,
        VARIANT_BOOL f);

    END_INTERFACE
} IXMLDocument2Vtbl;
interface IXMLDocument2 {
    CONST_VTBL IXMLDocument2Vtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLDocument2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IXMLDocument2_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IXMLDocument2_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IXMLDocument2_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IXMLDocument2_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IXMLDocument2_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IXMLDocument2_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IXMLDocument2 methods ***/
#define IXMLDocument2_get_root(p,a) (p)->lpVtbl->get_root(p,a)
#define IXMLDocument2_get_fileSize(p,a) (p)->lpVtbl->get_fileSize(p,a)
#define IXMLDocument2_get_fileModifiedDate(p,a) (p)->lpVtbl->get_fileModifiedDate(p,a)
#define IXMLDocument2_get_fileUpdatedDate(p,a) (p)->lpVtbl->get_fileUpdatedDate(p,a)
#define IXMLDocument2_get_URL(p,a) (p)->lpVtbl->get_URL(p,a)
#define IXMLDocument2_put_URL(p,a) (p)->lpVtbl->put_URL(p,a)
#define IXMLDocument2_get_mimeType(p,a) (p)->lpVtbl->get_mimeType(p,a)
#define IXMLDocument2_get_readyState(p,a) (p)->lpVtbl->get_readyState(p,a)
#define IXMLDocument2_get_charset(p,a) (p)->lpVtbl->get_charset(p,a)
#define IXMLDocument2_put_charset(p,a) (p)->lpVtbl->put_charset(p,a)
#define IXMLDocument2_get_version(p,a) (p)->lpVtbl->get_version(p,a)
#define IXMLDocument2_get_doctype(p,a) (p)->lpVtbl->get_doctype(p,a)
#define IXMLDocument2_get_dtdURL(p,a) (p)->lpVtbl->get_dtdURL(p,a)
#define IXMLDocument2_createElement(p,a,b,c) (p)->lpVtbl->createElement(p,a,b,c)
#define IXMLDocument2_get_async(p,a) (p)->lpVtbl->get_async(p,a)
#define IXMLDocument2_put_async(p,a) (p)->lpVtbl->put_async(p,a)
#endif

#endif

HRESULT CALLBACK IXMLDocument2_get_root_Proxy(
    IXMLDocument2* This,
    IXMLElement2 **p);
void __RPC_STUB IXMLDocument2_get_root_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDocument2_get_fileSize_Proxy(
    IXMLDocument2* This,
    BSTR *p);
void __RPC_STUB IXMLDocument2_get_fileSize_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDocument2_get_fileModifiedDate_Proxy(
    IXMLDocument2* This,
    BSTR *p);
void __RPC_STUB IXMLDocument2_get_fileModifiedDate_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDocument2_get_fileUpdatedDate_Proxy(
    IXMLDocument2* This,
    BSTR *p);
void __RPC_STUB IXMLDocument2_get_fileUpdatedDate_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDocument2_get_URL_Proxy(
    IXMLDocument2* This,
    BSTR *p);
void __RPC_STUB IXMLDocument2_get_URL_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDocument2_put_URL_Proxy(
    IXMLDocument2* This,
    BSTR p);
void __RPC_STUB IXMLDocument2_put_URL_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDocument2_get_mimeType_Proxy(
    IXMLDocument2* This,
    BSTR *p);
void __RPC_STUB IXMLDocument2_get_mimeType_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDocument2_get_readyState_Proxy(
    IXMLDocument2* This,
    long *pl);
void __RPC_STUB IXMLDocument2_get_readyState_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDocument2_get_charset_Proxy(
    IXMLDocument2* This,
    BSTR *p);
void __RPC_STUB IXMLDocument2_get_charset_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDocument2_put_charset_Proxy(
    IXMLDocument2* This,
    BSTR p);
void __RPC_STUB IXMLDocument2_put_charset_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDocument2_get_version_Proxy(
    IXMLDocument2* This,
    BSTR *p);
void __RPC_STUB IXMLDocument2_get_version_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDocument2_get_doctype_Proxy(
    IXMLDocument2* This,
    BSTR *p);
void __RPC_STUB IXMLDocument2_get_doctype_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDocument2_get_dtdURL_Proxy(
    IXMLDocument2* This,
    BSTR *p);
void __RPC_STUB IXMLDocument2_get_dtdURL_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDocument2_createElement_Proxy(
    IXMLDocument2* This,
    VARIANT vType,
    VARIANT var,
    IXMLElement2 **ppElem);
void __RPC_STUB IXMLDocument2_createElement_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDocument2_get_async_Proxy(
    IXMLDocument2* This,
    VARIANT_BOOL *pf);
void __RPC_STUB IXMLDocument2_get_async_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLDocument2_put_async_Proxy(
    IXMLDocument2* This,
    VARIANT_BOOL f);
void __RPC_STUB IXMLDocument2_put_async_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLDocument2_INTERFACE_DEFINED__ */

typedef enum tagXMLEMEM_TYPE {
    XMLELEMTYPE_ELEMENT = 0,
    XMLELEMTYPE_TEXT = 1,
    XMLELEMTYPE_COMMENT = 2,
    XMLELEMTYPE_DOCUMENT = 3,
    XMLELEMTYPE_DTD = 4,
    XMLELEMTYPE_PI = 5,
    XMLELEMTYPE_OTHER = 6
} XMLELEM_TYPE;
typedef struct _xml_error {
    UINT _nLine;
    BSTR _pchBuf;
    BSTR _cchBuf;
    UINT _ich;
    BSTR _pszFound;
    BSTR _pszExpected;
    DWORD _reserved1;
    DWORD _reserved2;
} XML_ERROR;
#ifndef __IXMLAttribute_FWD_DEFINED__
#define __IXMLAttribute_FWD_DEFINED__
typedef interface IXMLAttribute IXMLAttribute;
#endif

/*****************************************************************************
 * IXMLAttribute interface
 */
#ifndef __IXMLAttribute_INTERFACE_DEFINED__
#define __IXMLAttribute_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLAttribute, 0xd4d4a0fc, 0x3b73, 0x11d1, 0xb2,0xb4, 0x00,0xc0,0x4f,0xb9,0x25,0x96);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLAttribute : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE get_name(
        BSTR *p) = 0;

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

};
#else
typedef struct IXMLAttributeVtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

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

    HRESULT (STDMETHODCALLTYPE *get_value)(
        IXMLAttribute* This,
        BSTR *p);

    END_INTERFACE
} IXMLAttributeVtbl;
interface IXMLAttribute {
    CONST_VTBL IXMLAttributeVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLAttribute_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IXMLAttribute_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IXMLAttribute_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IXMLAttribute_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IXMLAttribute_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IXMLAttribute_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IXMLAttribute_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IXMLAttribute methods ***/
#define IXMLAttribute_get_name(p,a) (p)->lpVtbl->get_name(p,a)
#define IXMLAttribute_get_value(p,a) (p)->lpVtbl->get_value(p,a)
#endif

#endif

HRESULT CALLBACK IXMLAttribute_get_name_Proxy(
    IXMLAttribute* This,
    BSTR *p);
void __RPC_STUB IXMLAttribute_get_name_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);
HRESULT CALLBACK IXMLAttribute_get_value_Proxy(
    IXMLAttribute* This,
    BSTR *p);
void __RPC_STUB IXMLAttribute_get_value_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLAttribute_INTERFACE_DEFINED__ */

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

/*****************************************************************************
 * IXMLError interface
 */
#ifndef __IXMLError_INTERFACE_DEFINED__
#define __IXMLError_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLError, 0x948c5ad3, 0xc58d, 0x11d0, 0x9c,0x0b, 0x00,0xc0,0x4f,0xc9,0x9c,0x8e);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLError : public IUnknown
{
    virtual HRESULT STDMETHODCALLTYPE GetErrorInfo(
        XML_ERROR *pErrorReturn) = 0;

};
#else
typedef struct IXMLErrorVtbl {
    BEGIN_INTERFACE

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

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

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

    /*** IXMLError methods ***/
    HRESULT (STDMETHODCALLTYPE *GetErrorInfo)(
        IXMLError* This,
        XML_ERROR *pErrorReturn);

    END_INTERFACE
} IXMLErrorVtbl;
interface IXMLError {
    CONST_VTBL IXMLErrorVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLError_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IXMLError_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IXMLError_Release(p) (p)->lpVtbl->Release(p)
/*** IXMLError methods ***/
#define IXMLError_GetErrorInfo(p,a) (p)->lpVtbl->GetErrorInfo(p,a)
#endif

#endif

HRESULT CALLBACK IXMLError_GetErrorInfo_Proxy(
    IXMLError* This,
    XML_ERROR *pErrorReturn);
void __RPC_STUB IXMLError_GetErrorInfo_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLError_INTERFACE_DEFINED__ */

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

/*****************************************************************************
 * IXMLElementNotificationSink interface
 */
#ifndef __IXMLElementNotificationSink_INTERFACE_DEFINED__
#define __IXMLElementNotificationSink_INTERFACE_DEFINED__

DEFINE_GUID(IID_IXMLElementNotificationSink, 0xd9f1e15a, 0xccdb, 0x11d0, 0x9c,0x0c, 0x00,0xc0,0x4f,0xc9,0x9c,0x8e);
#if defined(__cplusplus) && !defined(CINTERFACE)
interface IXMLElementNotificationSink : public IDispatch
{
    virtual HRESULT STDMETHODCALLTYPE ChildAdded(
        IDispatch *pChildElem) = 0;

};
#else
typedef struct IXMLElementNotificationSinkVtbl {
    BEGIN_INTERFACE

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

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

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

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

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

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

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

    /*** IXMLElementNotificationSink methods ***/
    HRESULT (STDMETHODCALLTYPE *ChildAdded)(
        IXMLElementNotificationSink* This,
        IDispatch *pChildElem);

    END_INTERFACE
} IXMLElementNotificationSinkVtbl;
interface IXMLElementNotificationSink {
    CONST_VTBL IXMLElementNotificationSinkVtbl* lpVtbl;
};

#ifdef COBJMACROS
/*** IUnknown methods ***/
#define IXMLElementNotificationSink_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
#define IXMLElementNotificationSink_AddRef(p) (p)->lpVtbl->AddRef(p)
#define IXMLElementNotificationSink_Release(p) (p)->lpVtbl->Release(p)
/*** IDispatch methods ***/
#define IXMLElementNotificationSink_GetTypeInfoCount(p,a) (p)->lpVtbl->GetTypeInfoCount(p,a)
#define IXMLElementNotificationSink_GetTypeInfo(p,a,b,c) (p)->lpVtbl->GetTypeInfo(p,a,b,c)
#define IXMLElementNotificationSink_GetIDsOfNames(p,a,b,c,d,e) (p)->lpVtbl->GetIDsOfNames(p,a,b,c,d,e)
#define IXMLElementNotificationSink_Invoke(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Invoke(p,a,b,c,d,e,f,g,h)
/*** IXMLElementNotificationSink methods ***/
#define IXMLElementNotificationSink_ChildAdded(p,a) (p)->lpVtbl->ChildAdded(p,a)
#endif

#endif

HRESULT CALLBACK IXMLElementNotificationSink_ChildAdded_Proxy(
    IXMLElementNotificationSink* This,
    IDispatch *pChildElem);
void __RPC_STUB IXMLElementNotificationSink_ChildAdded_Stub(
    IRpcStubBuffer* This,
    IRpcChannelBuffer* pRpcChannelBuffer,
    PRPC_MESSAGE pRpcMessage,
    DWORD* pdwStubPhase);

#endif  /* __IXMLElementNotificationSink_INTERFACE_DEFINED__ */

/*****************************************************************************
 * XMLDocument coclass
 */

DEFINE_GUID(CLSID_XMLDocument, 0xcfc399af, 0xd876, 0x11d0, 0x9c,0x10, 0x00,0xc0,0x4f,0xc9,0x9c,0x8e);

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

/* Begin additional prototypes for all interfaces */

ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);

/* End additional prototypes */

#ifdef __cplusplus
}
#endif
#endif /* __WIDL_MSXML_H */
