/*** 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 */
