diff fuhtark_test/include/winapi/docobj.h @ 1500:91c8c3b7cbf0

add: futhark tests for generating vulkan api
author sam <sam@basx.dev>
date Wed, 26 Nov 2025 21:36:48 +0700
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/fuhtark_test/include/winapi/docobj.h	Wed Nov 26 21:36:48 2025 +0700
@@ -0,0 +1,1086 @@
+/*** Autogenerated by WIDL 0.9.14 from ../../wine-src/include/docobj.idl - Do not edit ***/
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifndef __WIDL_DOCOBJ_H
+#define __WIDL_DOCOBJ_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+#include <ocidl.h>
+#include <objidl.h>
+#include <oleidl.h>
+#include <oaidl.h>
+#include <servprov.h>
+#ifndef __IOleDocumentView_FWD_DEFINED__
+#define __IOleDocumentView_FWD_DEFINED__
+typedef interface IOleDocumentView IOleDocumentView;
+#endif
+
+#ifndef __IEnumOleDocumentViews_FWD_DEFINED__
+#define __IEnumOleDocumentViews_FWD_DEFINED__
+typedef interface IEnumOleDocumentViews IEnumOleDocumentViews;
+#endif
+
+#ifndef __IOleDocument_FWD_DEFINED__
+#define __IOleDocument_FWD_DEFINED__
+typedef interface IOleDocument IOleDocument;
+#endif
+
+typedef IOleDocument *LPOLEDOCUMENT;
+typedef enum {
+    DOCMISC_CANCREATEMULTIPLEVIEWS = 1,
+    DOCMISC_SUPPORTCOMPLEXRECTANGLES = 2,
+    DOCMISC_CANTOPENEDIT = 4,
+    DOCMISC_NOFILESUPPORT = 8
+} DOCMISC;
+/*****************************************************************************
+ * IOleDocument interface
+ */
+#ifndef __IOleDocument_INTERFACE_DEFINED__
+#define __IOleDocument_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IOleDocument, 0xb722bcc5, 0x4e68, 0x101b, 0xa2,0xbc, 0x00,0xaa,0x00,0x40,0x47,0x70);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+interface IOleDocument : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE CreateView(
+        IOleInPlaceSite *pIPSite,
+        IStream *pstm,
+        DWORD dwReserved,
+        IOleDocumentView **ppView) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetDocMiscStatus(
+        DWORD *pdwStatus) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE EnumViews(
+        IEnumOleDocumentViews **ppEnum,
+        IOleDocumentView **ppView) = 0;
+
+};
+#else
+typedef struct IOleDocumentVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IOleDocument* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IOleDocument* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IOleDocument* This);
+
+    /*** IOleDocument methods ***/
+    HRESULT (STDMETHODCALLTYPE *CreateView)(
+        IOleDocument* This,
+        IOleInPlaceSite *pIPSite,
+        IStream *pstm,
+        DWORD dwReserved,
+        IOleDocumentView **ppView);
+
+    HRESULT (STDMETHODCALLTYPE *GetDocMiscStatus)(
+        IOleDocument* This,
+        DWORD *pdwStatus);
+
+    HRESULT (STDMETHODCALLTYPE *EnumViews)(
+        IOleDocument* This,
+        IEnumOleDocumentViews **ppEnum,
+        IOleDocumentView **ppView);
+
+    END_INTERFACE
+} IOleDocumentVtbl;
+interface IOleDocument {
+    const IOleDocumentVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+/*** IUnknown methods ***/
+#define IOleDocument_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IOleDocument_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IOleDocument_Release(p) (p)->lpVtbl->Release(p)
+/*** IOleDocument methods ***/
+#define IOleDocument_CreateView(p,a,b,c,d) (p)->lpVtbl->CreateView(p,a,b,c,d)
+#define IOleDocument_GetDocMiscStatus(p,a) (p)->lpVtbl->GetDocMiscStatus(p,a)
+#define IOleDocument_EnumViews(p,a,b) (p)->lpVtbl->EnumViews(p,a,b)
+#endif
+
+#endif
+
+HRESULT CALLBACK IOleDocument_CreateView_Proxy(
+    IOleDocument* This,
+    IOleInPlaceSite *pIPSite,
+    IStream *pstm,
+    DWORD dwReserved,
+    IOleDocumentView **ppView);
+void __RPC_STUB IOleDocument_CreateView_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IOleDocument_GetDocMiscStatus_Proxy(
+    IOleDocument* This,
+    DWORD *pdwStatus);
+void __RPC_STUB IOleDocument_GetDocMiscStatus_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IOleDocument_EnumViews_Proxy(
+    IOleDocument* This,
+    IEnumOleDocumentViews **ppEnum,
+    IOleDocumentView **ppView);
+void __RPC_STUB IOleDocument_EnumViews_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IOleDocument_INTERFACE_DEFINED__ */
+
+#ifndef __IOleDocumentSite_FWD_DEFINED__
+#define __IOleDocumentSite_FWD_DEFINED__
+typedef interface IOleDocumentSite IOleDocumentSite;
+#endif
+
+typedef IOleDocumentSite *LPOLEDOCUMENTSITE;
+/*****************************************************************************
+ * IOleDocumentSite interface
+ */
+#ifndef __IOleDocumentSite_INTERFACE_DEFINED__
+#define __IOleDocumentSite_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IOleDocumentSite, 0xb722bcc7, 0x4e68, 0x101b, 0xa2,0xbc, 0x00,0xaa,0x00,0x40,0x47,0x70);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+interface IOleDocumentSite : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE ActivateMe(
+        IOleDocumentView *pViewToActivate) = 0;
+
+};
+#else
+typedef struct IOleDocumentSiteVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IOleDocumentSite* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IOleDocumentSite* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IOleDocumentSite* This);
+
+    /*** IOleDocumentSite methods ***/
+    HRESULT (STDMETHODCALLTYPE *ActivateMe)(
+        IOleDocumentSite* This,
+        IOleDocumentView *pViewToActivate);
+
+    END_INTERFACE
+} IOleDocumentSiteVtbl;
+interface IOleDocumentSite {
+    const IOleDocumentSiteVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+/*** IUnknown methods ***/
+#define IOleDocumentSite_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IOleDocumentSite_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IOleDocumentSite_Release(p) (p)->lpVtbl->Release(p)
+/*** IOleDocumentSite methods ***/
+#define IOleDocumentSite_ActivateMe(p,a) (p)->lpVtbl->ActivateMe(p,a)
+#endif
+
+#endif
+
+HRESULT CALLBACK IOleDocumentSite_ActivateMe_Proxy(
+    IOleDocumentSite* This,
+    IOleDocumentView *pViewToActivate);
+void __RPC_STUB IOleDocumentSite_ActivateMe_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IOleDocumentSite_INTERFACE_DEFINED__ */
+
+typedef IOleDocumentView *LPOLEDOCUMENTVIEW;
+/*****************************************************************************
+ * IOleDocumentView interface
+ */
+#ifndef __IOleDocumentView_INTERFACE_DEFINED__
+#define __IOleDocumentView_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IOleDocumentView, 0xb722bcc6, 0x4e68, 0x101b, 0xa2,0xbc, 0x00,0xaa,0x00,0x40,0x47,0x70);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+interface IOleDocumentView : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE SetInPlaceSite(
+        IOleInPlaceSite *pIPSite) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetInPlaceSite(
+        IOleInPlaceSite **ppIPSite) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetDocument(
+        IUnknown **ppunk) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetRect(
+        LPRECT prcView) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetRect(
+        LPRECT prcView) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetRectComplex(
+        LPRECT prcView,
+        LPRECT prcHScroll,
+        LPRECT prcVScroll,
+        LPRECT prcSizeBox) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Show(
+        BOOL fShow) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE UIActivate(
+        BOOL fUIActivate) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Open(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CloseView(
+        DWORD dwReserved) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SaveViewState(
+        LPSTREAM pstm) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ApplyViewState(
+        LPSTREAM pstm) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Clone(
+        IOleInPlaceSite *pIPSiteNew,
+        IOleDocumentView **ppViewNew) = 0;
+
+};
+#else
+typedef struct IOleDocumentViewVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IOleDocumentView* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IOleDocumentView* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IOleDocumentView* This);
+
+    /*** IOleDocumentView methods ***/
+    HRESULT (STDMETHODCALLTYPE *SetInPlaceSite)(
+        IOleDocumentView* This,
+        IOleInPlaceSite *pIPSite);
+
+    HRESULT (STDMETHODCALLTYPE *GetInPlaceSite)(
+        IOleDocumentView* This,
+        IOleInPlaceSite **ppIPSite);
+
+    HRESULT (STDMETHODCALLTYPE *GetDocument)(
+        IOleDocumentView* This,
+        IUnknown **ppunk);
+
+    HRESULT (STDMETHODCALLTYPE *SetRect)(
+        IOleDocumentView* This,
+        LPRECT prcView);
+
+    HRESULT (STDMETHODCALLTYPE *GetRect)(
+        IOleDocumentView* This,
+        LPRECT prcView);
+
+    HRESULT (STDMETHODCALLTYPE *SetRectComplex)(
+        IOleDocumentView* This,
+        LPRECT prcView,
+        LPRECT prcHScroll,
+        LPRECT prcVScroll,
+        LPRECT prcSizeBox);
+
+    HRESULT (STDMETHODCALLTYPE *Show)(
+        IOleDocumentView* This,
+        BOOL fShow);
+
+    HRESULT (STDMETHODCALLTYPE *UIActivate)(
+        IOleDocumentView* This,
+        BOOL fUIActivate);
+
+    HRESULT (STDMETHODCALLTYPE *Open)(
+        IOleDocumentView* This);
+
+    HRESULT (STDMETHODCALLTYPE *CloseView)(
+        IOleDocumentView* This,
+        DWORD dwReserved);
+
+    HRESULT (STDMETHODCALLTYPE *SaveViewState)(
+        IOleDocumentView* This,
+        LPSTREAM pstm);
+
+    HRESULT (STDMETHODCALLTYPE *ApplyViewState)(
+        IOleDocumentView* This,
+        LPSTREAM pstm);
+
+    HRESULT (STDMETHODCALLTYPE *Clone)(
+        IOleDocumentView* This,
+        IOleInPlaceSite *pIPSiteNew,
+        IOleDocumentView **ppViewNew);
+
+    END_INTERFACE
+} IOleDocumentViewVtbl;
+interface IOleDocumentView {
+    const IOleDocumentViewVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+/*** IUnknown methods ***/
+#define IOleDocumentView_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IOleDocumentView_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IOleDocumentView_Release(p) (p)->lpVtbl->Release(p)
+/*** IOleDocumentView methods ***/
+#define IOleDocumentView_SetInPlaceSite(p,a) (p)->lpVtbl->SetInPlaceSite(p,a)
+#define IOleDocumentView_GetInPlaceSite(p,a) (p)->lpVtbl->GetInPlaceSite(p,a)
+#define IOleDocumentView_GetDocument(p,a) (p)->lpVtbl->GetDocument(p,a)
+#define IOleDocumentView_SetRect(p,a) (p)->lpVtbl->SetRect(p,a)
+#define IOleDocumentView_GetRect(p,a) (p)->lpVtbl->GetRect(p,a)
+#define IOleDocumentView_SetRectComplex(p,a,b,c,d) (p)->lpVtbl->SetRectComplex(p,a,b,c,d)
+#define IOleDocumentView_Show(p,a) (p)->lpVtbl->Show(p,a)
+#define IOleDocumentView_UIActivate(p,a) (p)->lpVtbl->UIActivate(p,a)
+#define IOleDocumentView_Open(p) (p)->lpVtbl->Open(p)
+#define IOleDocumentView_CloseView(p,a) (p)->lpVtbl->CloseView(p,a)
+#define IOleDocumentView_SaveViewState(p,a) (p)->lpVtbl->SaveViewState(p,a)
+#define IOleDocumentView_ApplyViewState(p,a) (p)->lpVtbl->ApplyViewState(p,a)
+#define IOleDocumentView_Clone(p,a,b) (p)->lpVtbl->Clone(p,a,b)
+#endif
+
+#endif
+
+HRESULT CALLBACK IOleDocumentView_SetInPlaceSite_Proxy(
+    IOleDocumentView* This,
+    IOleInPlaceSite *pIPSite);
+void __RPC_STUB IOleDocumentView_SetInPlaceSite_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IOleDocumentView_GetInPlaceSite_Proxy(
+    IOleDocumentView* This,
+    IOleInPlaceSite **ppIPSite);
+void __RPC_STUB IOleDocumentView_GetInPlaceSite_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IOleDocumentView_GetDocument_Proxy(
+    IOleDocumentView* This,
+    IUnknown **ppunk);
+void __RPC_STUB IOleDocumentView_GetDocument_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IOleDocumentView_SetRect_Proxy(
+    IOleDocumentView* This,
+    LPRECT prcView);
+void __RPC_STUB IOleDocumentView_SetRect_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IOleDocumentView_GetRect_Proxy(
+    IOleDocumentView* This,
+    LPRECT prcView);
+void __RPC_STUB IOleDocumentView_GetRect_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IOleDocumentView_SetRectComplex_Proxy(
+    IOleDocumentView* This,
+    LPRECT prcView,
+    LPRECT prcHScroll,
+    LPRECT prcVScroll,
+    LPRECT prcSizeBox);
+void __RPC_STUB IOleDocumentView_SetRectComplex_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IOleDocumentView_Show_Proxy(
+    IOleDocumentView* This,
+    BOOL fShow);
+void __RPC_STUB IOleDocumentView_Show_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IOleDocumentView_UIActivate_Proxy(
+    IOleDocumentView* This,
+    BOOL fUIActivate);
+void __RPC_STUB IOleDocumentView_UIActivate_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IOleDocumentView_Open_Proxy(
+    IOleDocumentView* This);
+void __RPC_STUB IOleDocumentView_Open_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IOleDocumentView_CloseView_Proxy(
+    IOleDocumentView* This,
+    DWORD dwReserved);
+void __RPC_STUB IOleDocumentView_CloseView_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IOleDocumentView_SaveViewState_Proxy(
+    IOleDocumentView* This,
+    LPSTREAM pstm);
+void __RPC_STUB IOleDocumentView_SaveViewState_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IOleDocumentView_ApplyViewState_Proxy(
+    IOleDocumentView* This,
+    LPSTREAM pstm);
+void __RPC_STUB IOleDocumentView_ApplyViewState_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IOleDocumentView_Clone_Proxy(
+    IOleDocumentView* This,
+    IOleInPlaceSite *pIPSiteNew,
+    IOleDocumentView **ppViewNew);
+void __RPC_STUB IOleDocumentView_Clone_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IOleDocumentView_INTERFACE_DEFINED__ */
+
+typedef IEnumOleDocumentViews *LPENUMOLEDOCUMENTVIEWS;
+/*****************************************************************************
+ * IEnumOleDocumentViews interface
+ */
+#ifndef __IEnumOleDocumentViews_INTERFACE_DEFINED__
+#define __IEnumOleDocumentViews_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IEnumOleDocumentViews, 0xb722bcc8, 0x4e68, 0x101b, 0xa2,0xbc, 0x00,0xaa,0x00,0x40,0x47,0x70);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+interface IEnumOleDocumentViews : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Next(
+        ULONG cViews,
+        IOleDocumentView **rgpView,
+        ULONG *pcFetched) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Skip(
+        ULONG cViews) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Reset(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Clone(
+        IEnumOleDocumentViews **ppEnum) = 0;
+
+};
+#else
+typedef struct IEnumOleDocumentViewsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IEnumOleDocumentViews* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IEnumOleDocumentViews* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IEnumOleDocumentViews* This);
+
+    /*** IEnumOleDocumentViews methods ***/
+    HRESULT (STDMETHODCALLTYPE *Next)(
+        IEnumOleDocumentViews* This,
+        ULONG cViews,
+        IOleDocumentView **rgpView,
+        ULONG *pcFetched);
+
+    HRESULT (STDMETHODCALLTYPE *Skip)(
+        IEnumOleDocumentViews* This,
+        ULONG cViews);
+
+    HRESULT (STDMETHODCALLTYPE *Reset)(
+        IEnumOleDocumentViews* This);
+
+    HRESULT (STDMETHODCALLTYPE *Clone)(
+        IEnumOleDocumentViews* This,
+        IEnumOleDocumentViews **ppEnum);
+
+    END_INTERFACE
+} IEnumOleDocumentViewsVtbl;
+interface IEnumOleDocumentViews {
+    const IEnumOleDocumentViewsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+/*** IUnknown methods ***/
+#define IEnumOleDocumentViews_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IEnumOleDocumentViews_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IEnumOleDocumentViews_Release(p) (p)->lpVtbl->Release(p)
+/*** IEnumOleDocumentViews methods ***/
+#define IEnumOleDocumentViews_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
+#define IEnumOleDocumentViews_Skip(p,a) (p)->lpVtbl->Skip(p,a)
+#define IEnumOleDocumentViews_Reset(p) (p)->lpVtbl->Reset(p)
+#define IEnumOleDocumentViews_Clone(p,a) (p)->lpVtbl->Clone(p,a)
+#endif
+
+#endif
+
+HRESULT CALLBACK IEnumOleDocumentViews_RemoteNext_Proxy(
+    IEnumOleDocumentViews* This,
+    ULONG cViews,
+    IOleDocumentView **rgpView,
+    ULONG *pcFetched);
+void __RPC_STUB IEnumOleDocumentViews_RemoteNext_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumOleDocumentViews_Next_Proxy(
+    IEnumOleDocumentViews* This,
+    ULONG cViews,
+    IOleDocumentView** rgpView,
+    ULONG* pcFetched);
+HRESULT __RPC_STUB IEnumOleDocumentViews_Next_Stub(
+    IEnumOleDocumentViews* This,
+    ULONG cViews,
+    IOleDocumentView** rgpView,
+    ULONG* pcFetched);
+HRESULT CALLBACK IEnumOleDocumentViews_Skip_Proxy(
+    IEnumOleDocumentViews* This,
+    ULONG cViews);
+void __RPC_STUB IEnumOleDocumentViews_Skip_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumOleDocumentViews_Reset_Proxy(
+    IEnumOleDocumentViews* This);
+void __RPC_STUB IEnumOleDocumentViews_Reset_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IEnumOleDocumentViews_Clone_Proxy(
+    IEnumOleDocumentViews* This,
+    IEnumOleDocumentViews **ppEnum);
+void __RPC_STUB IEnumOleDocumentViews_Clone_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IEnumOleDocumentViews_INTERFACE_DEFINED__ */
+
+#ifndef __IOleCommandTarget_FWD_DEFINED__
+#define __IOleCommandTarget_FWD_DEFINED__
+typedef interface IOleCommandTarget IOleCommandTarget;
+#endif
+
+typedef IOleCommandTarget *LPOLECOMMANDTARGET;
+typedef enum OLECMDF {
+    OLECMDF_SUPPORTED = 0x1,
+    OLECMDF_ENABLED = 0x2,
+    OLECMDF_LATCHED = 0x4,
+    OLECMDF_NINCHED = 0x8,
+    OLECMDF_INVISIBLE = 0x10,
+    OLECMDF_DEFHIDEONCTXTMENU = 0x20
+} OLECMDF;
+typedef struct _tagOLECMD {
+    ULONG cmdID;
+    DWORD cmdf;
+} OLECMD;
+typedef struct _tagOLECMDTEXT {
+    DWORD cmdtextf;
+    ULONG cwActual;
+    ULONG cwBuf;
+    WCHAR rgwz[1];
+} OLECMDTEXT;
+typedef enum OLECMDTEXTF {
+    OLECMDTEXTF_NONE = 0,
+    OLECMDTEXTF_NAME = 1,
+    OLECMDTEXTF_STATUS = 2
+} OLECMDTEXTF;
+typedef enum OLECMDEXECOPT {
+    OLECMDEXECOPT_DODEFAULT = 0,
+    OLECMDEXECOPT_PROMPTUSER = 1,
+    OLECMDEXECOPT_DONTPROMPTUSER = 2,
+    OLECMDEXECOPT_SHOWHELP = 3
+} OLECMDEXECOPT;
+typedef enum OLECMDID {
+    OLECMDID_OPEN = 1,
+    OLECMDID_NEW = 2,
+    OLECMDID_SAVE = 3,
+    OLECMDID_SAVEAS = 4,
+    OLECMDID_SAVECOPYAS = 5,
+    OLECMDID_PRINT = 6,
+    OLECMDID_PRINTPREVIEW = 7,
+    OLECMDID_PAGESETUP = 8,
+    OLECMDID_SPELL = 9,
+    OLECMDID_PROPERTIES = 10,
+    OLECMDID_CUT = 11,
+    OLECMDID_COPY = 12,
+    OLECMDID_PASTE = 13,
+    OLECMDID_PASTESPECIAL = 14,
+    OLECMDID_UNDO = 15,
+    OLECMDID_REDO = 16,
+    OLECMDID_SELECTALL = 17,
+    OLECMDID_CLEARSELECTION = 18,
+    OLECMDID_ZOOM = 19,
+    OLECMDID_GETZOOMRANGE = 20,
+    OLECMDID_UPDATECOMMANDS = 21,
+    OLECMDID_REFRESH = 22,
+    OLECMDID_STOP = 23,
+    OLECMDID_HIDETOOLBARS = 24,
+    OLECMDID_SETPROGRESSMAX = 25,
+    OLECMDID_SETPROGRESSPOS = 26,
+    OLECMDID_SETPROGRESSTEXT = 27,
+    OLECMDID_SETTITLE = 28,
+    OLECMDID_SETDOWNLOADSTATE = 29,
+    OLECMDID_STOPDOWNLOAD = 30,
+    OLECMDID_ONTOOLBARACTIVATED = 31,
+    OLECMDID_FIND = 32,
+    OLECMDID_DELETE = 33,
+    OLECMDID_HTTPEQUIV = 34,
+    OLECMDID_HTTPEQUIV_DONE = 35,
+    OLECMDID_ENABLE_INTERACTION = 36,
+    OLECMDID_ONUNLOAD = 37,
+    OLECMDID_PROPERTYBAG2 = 38,
+    OLECMDID_PREREFRESH = 39,
+    OLECMDID_SHOWSCRIPTERROR = 40,
+    OLECMDID_SHOWMESSAGE = 41,
+    OLECMDID_SHOWFIND = 42,
+    OLECMDID_SHOWPAGESETUP = 43,
+    OLECMDID_SHOWPRINT = 44,
+    OLECMDID_CLOSE = 45,
+    OLECMDID_ALLOWUILESSSAVEAS = 46,
+    OLECMDID_DONTDOWNLOADCSS = 47,
+    OLECMDID_UPDATEPAGESTATUS = 48,
+    OLECMDID_PRINT2 = 49,
+    OLECMDID_PRINTPREVIEW2 = 50,
+    OLECMDID_SETPRINTTEMPLATE = 51,
+    OLECMDID_GETPRINTTEMPLATE = 52
+} OLECMDID;
+/*****************************************************************************
+ * IOleCommandTarget interface
+ */
+#ifndef __IOleCommandTarget_INTERFACE_DEFINED__
+#define __IOleCommandTarget_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IOleCommandTarget, 0xb722bccb, 0x4e68, 0x101b, 0xa2,0xbc, 0x00,0xaa,0x00,0x40,0x47,0x70);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+interface IOleCommandTarget : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE QueryStatus(
+        const GUID *pguidCmdGroup,
+        ULONG cCmds,
+        OLECMD prgCmds[],
+        OLECMDTEXT *pCmdText) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Exec(
+        const GUID *pguidCmdGroup,
+        DWORD nCmdID,
+        DWORD nCmdexecopt,
+        VARIANT *pvaIn,
+        VARIANT *pvaOut) = 0;
+
+};
+#else
+typedef struct IOleCommandTargetVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IOleCommandTarget* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IOleCommandTarget* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IOleCommandTarget* This);
+
+    /*** IOleCommandTarget methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryStatus)(
+        IOleCommandTarget* This,
+        const GUID *pguidCmdGroup,
+        ULONG cCmds,
+        OLECMD prgCmds[],
+        OLECMDTEXT *pCmdText);
+
+    HRESULT (STDMETHODCALLTYPE *Exec)(
+        IOleCommandTarget* This,
+        const GUID *pguidCmdGroup,
+        DWORD nCmdID,
+        DWORD nCmdexecopt,
+        VARIANT *pvaIn,
+        VARIANT *pvaOut);
+
+    END_INTERFACE
+} IOleCommandTargetVtbl;
+interface IOleCommandTarget {
+    const IOleCommandTargetVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+/*** IUnknown methods ***/
+#define IOleCommandTarget_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IOleCommandTarget_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IOleCommandTarget_Release(p) (p)->lpVtbl->Release(p)
+/*** IOleCommandTarget methods ***/
+#define IOleCommandTarget_QueryStatus(p,a,b,c,d) (p)->lpVtbl->QueryStatus(p,a,b,c,d)
+#define IOleCommandTarget_Exec(p,a,b,c,d,e) (p)->lpVtbl->Exec(p,a,b,c,d,e)
+#endif
+
+#endif
+
+HRESULT CALLBACK IOleCommandTarget_QueryStatus_Proxy(
+    IOleCommandTarget* This,
+    const GUID *pguidCmdGroup,
+    ULONG cCmds,
+    OLECMD prgCmds[],
+    OLECMDTEXT *pCmdText);
+void __RPC_STUB IOleCommandTarget_QueryStatus_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IOleCommandTarget_Exec_Proxy(
+    IOleCommandTarget* This,
+    const GUID *pguidCmdGroup,
+    DWORD nCmdID,
+    DWORD nCmdexecopt,
+    VARIANT *pvaIn,
+    VARIANT *pvaOut);
+void __RPC_STUB IOleCommandTarget_Exec_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IOleCommandTarget_INTERFACE_DEFINED__ */
+
+#ifndef __IContinueCallback_FWD_DEFINED__
+#define __IContinueCallback_FWD_DEFINED__
+typedef interface IContinueCallback IContinueCallback;
+#endif
+
+typedef IContinueCallback *LPCONTINUECALLBACK;
+/*****************************************************************************
+ * IContinueCallback interface
+ */
+#ifndef __IContinueCallback_INTERFACE_DEFINED__
+#define __IContinueCallback_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IContinueCallback, 0xb722bcca, 0x4e68, 0x101b, 0xa2,0xbc, 0x00,0xaa,0x00,0x40,0x47,0x70);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+interface IContinueCallback : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE FContinue(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE FContinuePrinting(
+        LONG nCntPrinted,
+        LONG nCurPage,
+        WCHAR *pwszPrintStatus) = 0;
+
+};
+#else
+typedef struct IContinueCallbackVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IContinueCallback* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IContinueCallback* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IContinueCallback* This);
+
+    /*** IContinueCallback methods ***/
+    HRESULT (STDMETHODCALLTYPE *FContinue)(
+        IContinueCallback* This);
+
+    HRESULT (STDMETHODCALLTYPE *FContinuePrinting)(
+        IContinueCallback* This,
+        LONG nCntPrinted,
+        LONG nCurPage,
+        WCHAR *pwszPrintStatus);
+
+    END_INTERFACE
+} IContinueCallbackVtbl;
+interface IContinueCallback {
+    const IContinueCallbackVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+/*** IUnknown methods ***/
+#define IContinueCallback_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IContinueCallback_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IContinueCallback_Release(p) (p)->lpVtbl->Release(p)
+/*** IContinueCallback methods ***/
+#define IContinueCallback_FContinue(p) (p)->lpVtbl->FContinue(p)
+#define IContinueCallback_FContinuePrinting(p,a,b,c) (p)->lpVtbl->FContinuePrinting(p,a,b,c)
+#endif
+
+#endif
+
+HRESULT CALLBACK IContinueCallback_FContinue_Proxy(
+    IContinueCallback* This);
+void __RPC_STUB IContinueCallback_FContinue_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IContinueCallback_FContinuePrinting_Proxy(
+    IContinueCallback* This,
+    LONG nCntPrinted,
+    LONG nCurPage,
+    WCHAR *pwszPrintStatus);
+void __RPC_STUB IContinueCallback_FContinuePrinting_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IContinueCallback_INTERFACE_DEFINED__ */
+
+#ifndef __IPrint_FWD_DEFINED__
+#define __IPrint_FWD_DEFINED__
+typedef interface IPrint IPrint;
+#endif
+
+typedef IPrint *LPPRINT;
+typedef enum {
+    PRINTFLAG_MAYBOTHERUSER = 1,
+    PRINTFLAG_PROMPTUSER = 2,
+    PRINTFLAG_USERMAYCHANGEPRINTER = 4,
+    PRINTFLAG_RECOMPOSETODEVICE = 8,
+    PRINTFLAG_DONTACTUALLYPRINT = 16,
+    PRINTFLAG_FORCEPROPERTIES = 32,
+    PRINTFLAG_PRINTTOFILE = 64
+} PRINTFLAG;
+typedef struct tagPAGERANGE {
+    LONG nFromPage;
+    LONG nToPage;
+} PAGERANGE;
+typedef struct tagPAGESET {
+    ULONG cbStruct;
+    BOOL fOddPages;
+    BOOL fEvenPages;
+    ULONG cPageRange;
+    PAGERANGE rgPages[1];
+} PAGESET;
+/*****************************************************************************
+ * IPrint interface
+ */
+#ifndef __IPrint_INTERFACE_DEFINED__
+#define __IPrint_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IPrint, 0xb722bcc9, 0x4e68, 0x101b, 0xa2,0xbc, 0x00,0xaa,0x00,0x40,0x47,0x70);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+interface IPrint : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE SetInitialPageNum(
+        LONG nFirstPage) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetPageInfo(
+        LONG *pnFirstPage,
+        LONG *pcPages) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Print(
+        DWORD grfFlags,
+        DVTARGETDEVICE **pptd,
+        PAGESET **ppPageSet,
+        STGMEDIUM *pstgmOptions,
+        IContinueCallback *pcallback,
+        LONG nFirstPage,
+        LONG *pcPagesPrinted,
+        LONG *pnLastPage) = 0;
+
+};
+#else
+typedef struct IPrintVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IPrint* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IPrint* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IPrint* This);
+
+    /*** IPrint methods ***/
+    HRESULT (STDMETHODCALLTYPE *SetInitialPageNum)(
+        IPrint* This,
+        LONG nFirstPage);
+
+    HRESULT (STDMETHODCALLTYPE *GetPageInfo)(
+        IPrint* This,
+        LONG *pnFirstPage,
+        LONG *pcPages);
+
+    HRESULT (STDMETHODCALLTYPE *Print)(
+        IPrint* This,
+        DWORD grfFlags,
+        DVTARGETDEVICE **pptd,
+        PAGESET **ppPageSet,
+        STGMEDIUM *pstgmOptions,
+        IContinueCallback *pcallback,
+        LONG nFirstPage,
+        LONG *pcPagesPrinted,
+        LONG *pnLastPage);
+
+    END_INTERFACE
+} IPrintVtbl;
+interface IPrint {
+    const IPrintVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+/*** IUnknown methods ***/
+#define IPrint_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IPrint_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IPrint_Release(p) (p)->lpVtbl->Release(p)
+/*** IPrint methods ***/
+#define IPrint_SetInitialPageNum(p,a) (p)->lpVtbl->SetInitialPageNum(p,a)
+#define IPrint_GetPageInfo(p,a,b) (p)->lpVtbl->GetPageInfo(p,a,b)
+#define IPrint_Print(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Print(p,a,b,c,d,e,f,g,h)
+#endif
+
+#endif
+
+HRESULT CALLBACK IPrint_SetInitialPageNum_Proxy(
+    IPrint* This,
+    LONG nFirstPage);
+void __RPC_STUB IPrint_SetInitialPageNum_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IPrint_GetPageInfo_Proxy(
+    IPrint* This,
+    LONG *pnFirstPage,
+    LONG *pcPages);
+void __RPC_STUB IPrint_GetPageInfo_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IPrint_RemotePrint_Proxy(
+    IPrint* This,
+    DWORD grfFlags,
+    DVTARGETDEVICE **pptd,
+    PAGESET **pppageset,
+    RemSTGMEDIUM *pstgmOptions,
+    IContinueCallback *pcallback,
+    LONG nFirstPage,
+    LONG *pcPagesPrinted,
+    LONG *pnLastPage);
+void __RPC_STUB IPrint_RemotePrint_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT CALLBACK IPrint_Print_Proxy(
+    IPrint* This,
+    DWORD grfFlags,
+    DVTARGETDEVICE **pptd,
+    PAGESET **ppPageSet,
+    STGMEDIUM *pstgmOptions,
+    IContinueCallback *pcallback,
+    LONG nFirstPage,
+    LONG *pcPagesPrinted,
+    LONG *pnLastPage);
+HRESULT __RPC_STUB IPrint_Print_Stub(
+    IPrint* This,
+    DWORD grfFlags,
+    DVTARGETDEVICE **pptd,
+    PAGESET **pppageset,
+    RemSTGMEDIUM *pstgmOptions,
+    IContinueCallback *pcallback,
+    LONG nFirstPage,
+    LONG *pcPagesPrinted,
+    LONG *pnLastPage);
+
+#endif  /* __IPrint_INTERFACE_DEFINED__ */
+
+#define OLECMDERR_E_FIRST            (OLE_E_LAST+1)
+#define OLECMDERR_E_NOTSUPPORTED     (OLECMDERR_E_FIRST)
+#define OLECMDERR_E_DISABLED         (OLECMDERR_E_FIRST+1)
+#define OLECMDERR_E_NOHELP           (OLECMDERR_E_FIRST+2)
+#define OLECMDERR_E_CANCELED         (OLECMDERR_E_FIRST+3)
+#define OLECMDERR_E_UNKNOWNGROUP     (OLECMDERR_E_FIRST+4)
+#define MSOCMDERR_E_FIRST OLECMDERR_E_FIRST
+#define MSOCMDERR_E_NOTSUPPORTED OLECMDERR_E_NOTSUPPORTED
+#define MSOCMDERR_E_DISABLED OLECMDERR_E_DISABLED
+#define MSOCMDERR_E_NOHELP OLECMDERR_E_NOHELP
+#define MSOCMDERR_E_CANCELED OLECMDERR_E_CANCELED
+#define MSOCMDERR_E_UNKNOWNGROUP OLECMDERR_E_UNKNOWNGROUP
+#define LPMSODOCUMENT                  LPOLEDOCUMENT
+#define LPMSODOCUMENTSITE              LPOLEDOCUMENTSITE
+#define LPMSOVIEW                      LPOLEDOCUMENTVIEW
+#define LPENUMMSOVIEW                  LPENUMOLEDOCUMENTVIEWS
+#define LPMSOCOMMANDTARGET             LPOLECOMMANDTARGET
+#define IID_IMsoDocument               IID_IOleDocument
+#define IID_IMsoDocumentSite           IID_IOleDocumentSite
+#define IID_IMsoView                   IID_IOleDocumentView
+#define IID_IEnumMsoView               IID_IEnumOleDocumentViews
+#define IID_IMsoCommandTarget          IID_IOleCommandTarget
+/* Begin additional prototypes for all interfaces */
+
+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 *);
+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 *);
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* __WIDL_DOCOBJ_H */