| /* | |
| * Copyright (C) 1999 Paul Quinn | |
| * | |
| * This library is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU Lesser General Public | |
| * License as published by the Free Software Foundation; either | |
| * version 2.1 of the License, or (at your option) any later version. | |
| * | |
| * This library is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| * Lesser General Public License for more details. | |
| * | |
| * You should have received a copy of the GNU Lesser General Public | |
| * License along with this library; if not, write to the Free Software | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| */ | |
| #include "rpc.h" | |
| #include "rpcndr.h" | |
| #ifndef COM_NO_WINDOWS_H | |
| #include "windows.h" | |
| #include "ole2.h" | |
| #endif | |
| #ifndef __WINE_DOCOBJ_H | |
| #define __WINE_DOCOBJ_H | |
| #include "winbase.h" | |
| #include "windef.h" | |
| #include "wingdi.h" | |
| #include "winuser.h" | |
| #include "ole2.h" | |
| #define __WINE_INCLUDE_OAIDL | |
| #include "oaidl.h" | |
| #undef __WINE_INCLUDE_OAIDL | |
| /***************************************************************************** | |
| * Declare the structures | |
| */ | |
| typedef enum | |
| { | |
| OLECMDF_SUPPORTED = 0x1, | |
| OLECMDF_ENABLED = 0x2, | |
| OLECMDF_LATCHED = 0x4, | |
| OLECMDF_NINCHED = 0x8 | |
| } OLECMDF; | |
| typedef struct _tagOLECMD | |
| { | |
| ULONG cmdID; | |
| DWORD cmdf; | |
| } OLECMD; | |
| typedef struct _tagOLECMDTEXT | |
| { | |
| DWORD cmdtextf; | |
| ULONG cwActual; | |
| ULONG cwBuf; | |
| WCHAR rgwz[1]; | |
| } OLECMDTEXT; | |
| 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; | |
| typedef enum | |
| { | |
| OLECMDTEXTF_NONE = 0, | |
| OLECMDTEXTF_NAME = 1, | |
| OLECMDTEXTF_STATUS = 2 | |
| } OLECMDTEXTF; | |
| typedef enum | |
| { | |
| 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, | |
| /* iexplorer uses ... 44 */ | |
| 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; | |
| #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) | |
| /***************************************************************************** | |
| * Predeclare the interfaces | |
| */ | |
| DEFINE_GUID(IID_IOleDocument, 0xb722bcc5,0x4e68,0x101b,0xa2,0xbc,0x00,0xaa,0x00,0x40,0x47,0x70); | |
| typedef struct IOleDocument IOleDocument, *LPOLEDOCUMENT; | |
| DEFINE_GUID(IID_IOleDocumentSite, 0xb722bcc7,0x4e68,0x101b,0xa2,0xbc,0x00,0xaa,0x00,0x40,0x47,0x70); | |
| typedef struct IOleDocumentSite IOleDocumentSite, *LPOLEDOCUMENTSITE; | |
| DEFINE_GUID(IID_IOleDocumentView, 0xb722bcc6,0x4e68,0x101b,0xa2,0xbc,0x00,0xaa,0x00,0x40,0x47,0x70); | |
| typedef struct IOleDocumentView IOleDocumentView, *LPOLEDOCUMENTVIEW; | |
| DEFINE_GUID(IID_IEnumOleDocumentViews, 0xb722bcc6,0x4e68,0x101b,0xa2,0xbc,0x00,0xaa,0x00,0x40,0x47,0x70); | |
| typedef struct IEnumOleDocumentViews IEnumOleDocumentViews, *LPENUMOLEDOCUMENTVIEWS; | |
| DEFINE_GUID(IID_IOleCommandTarget, 0xb722bccb,0x4e68,0x101b,0xa2,0xbc,0x00,0xaa,0x00,0x40,0x47,0x70); | |
| typedef struct IOleCommandTarget IOleCommandTarget, *LPOLECOMMANDTARGET; | |
| DEFINE_GUID(IID_IContinueCallback, 0xb722bcca,0x4e68,0x101b,0xa2,0xbc,0x00,0xaa,0x00,0x40,0x47,0x70); | |
| typedef struct IContinueCallback IContinueCallback, *LPCONTINUECALLBACK; | |
| DEFINE_GUID(IID_IPrint, 0xb722bcc9,0x4e68,0x101b,0xa2,0xbc,0x00,0xaa,0x00,0x40,0x47,0x70); | |
| typedef struct IPrint IPrint, *LPPRINT; | |
| /***************************************************************************** | |
| * IOleDocument interface | |
| */ | |
| #define INTERFACE IOleDocument | |
| #define IOleDocument_METHODS \ | |
| IUnknown_METHODS \ | |
| STDMETHOD(CreateView)(THIS_ IOleInPlaceSite *pIPSite, IStream *pstm, DWORD dwReserved, IOleDocumentView **ppView) PURE; \ | |
| STDMETHOD(GetDocMiscStatus)(THIS_ DWORD *pdwStatus) PURE; \ | |
| STDMETHOD(EnumViews)(THIS_ IEnumOleDocumentViews **ppEnum, IOleDocumentView **ppView) PURE; | |
| ICOM_DEFINE(IOleDocument,IUnknown) | |
| #undef INTERFACE | |
| #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 | |
| /***************************************************************************** | |
| * IOleDocumentSite interface | |
| */ | |
| #define INTERFACE IOleDocumentSite | |
| #define IOleDocumentSite_METHODS \ | |
| IUnknown_METHODS \ | |
| STDMETHOD(ActivateMe)(THIS_ IOleDocumentView *pViewToActivate) PURE; | |
| ICOM_DEFINE(IOleDocumentSite,IUnknown) | |
| #undef INTERFACE | |
| #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 | |
| /***************************************************************************** | |
| * IOleDocumentSite interface | |
| */ | |
| #define INTERFACE IOleDocumentView | |
| #define IOleDocumentView_METHODS \ | |
| IUnknown_METHODS \ | |
| STDMETHOD(SetInPlaceSite)(THIS_ IOleInPlaceSite *pIPSite) PURE; \ | |
| STDMETHOD(GetInPlaceSite)(THIS_ IOleInPlaceSite **ppIPSite) PURE; \ | |
| STDMETHOD(GetDocument)(THIS_ IUnknown **ppunk) PURE; \ | |
| STDMETHOD(SetRect)(THIS_ LPRECT prcView) PURE; \ | |
| STDMETHOD(GetRect)(THIS_ LPRECT prcView) PURE; \ | |
| STDMETHOD(SetRectComplex)(THIS_ LPRECT prcView, LPRECT prcHScroll, LPRECT prcVScroll, LPRECT prcSizeBox) PURE; \ | |
| STDMETHOD(Show)(THIS_ BOOL fShow) PURE; \ | |
| STDMETHOD(UIActivate)(THIS_ BOOL fUIActivate) PURE; \ | |
| STDMETHOD(Open)(THIS) PURE; \ | |
| STDMETHOD(CloseView)(THIS_ DWORD dwReserved) PURE; \ | |
| STDMETHOD(SaveViewState)(THIS_ LPSTREAM pstm) PURE; \ | |
| STDMETHOD(ApplyViewState)(THIS_ LPSTREAM pstm) PURE; \ | |
| STDMETHOD(Clone)(THIS_ IOleInPlaceSite *pIPSiteNew, IOleDocumentView **ppViewNew) PURE; | |
| ICOM_DEFINE(IOleDocumentView,IUnknown) | |
| #undef INTERFACE | |
| #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_GetRectComplex(p,a,b,c,d) (p)->lpVtbl->GetRectComplex(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 | |
| /***************************************************************************** | |
| * IOleDocumentSite interface | |
| */ | |
| #define INTERFACE IEnumOleDocumentViews | |
| #define IEnumOleDocumentViews_METHODS \ | |
| IUnknown_METHODS \ | |
| STDMETHOD(Next)(THIS_ ULONG cViews, IOleDocumentView **rgpView, ULONG *pcFetched) PURE; \ | |
| STDMETHOD(Skip)(THIS_ ULONG cViews) PURE; \ | |
| STDMETHOD(Reset)(THIS) PURE; \ | |
| STDMETHOD(Clone)(THIS_ IEnumOleDocumentViews **ppEnum) PURE; | |
| ICOM_DEFINE(IEnumOleDocumentViews,IUnknown) | |
| #undef INTERFACE | |
| #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 | |
| /***************************************************************************** | |
| * IOleCommandTarget interface | |
| */ | |
| #define INTERFACE IOleCommandTarget | |
| #define IOleCommandTarget_METHODS \ | |
| IUnknown_METHODS \ | |
| STDMETHOD(QueryStatus)(THIS_ const GUID *pguidCmdGroup, ULONG cCmds, OLECMD *prgCmds, OLECMDTEXT *pCmdText) PURE; \ | |
| STDMETHOD(Exec)(THIS_ const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT *pvaIn, VARIANT *pvaOut) PURE; | |
| ICOM_DEFINE(IOleCommandTarget,IUnknown) | |
| #undef INTERFACE | |
| #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 | |
| /***************************************************************************** | |
| * IContinueCallback interface | |
| */ | |
| #define INTERFACE IContinueCallback | |
| #define IContinueCallback_METHODS \ | |
| IUnknown_METHODS \ | |
| STDMETHOD(FContinue)(THIS) PURE; \ | |
| STDMETHOD(FContinuePrinting)(THIS_ LONG nCntPrinted, LONG nCurPage, WCHAR *pwszPrintStatus) PURE; | |
| ICOM_DEFINE(IContinueCallback,IUnknown) | |
| #undef INTERFACE | |
| #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 | |
| /***************************************************************************** | |
| * IPrint interface | |
| */ | |
| #define INTERFACE IPrint | |
| #define IPrint_METHODS \ | |
| IUnknown_METHODS \ | |
| STDMETHOD(SetInitialPageNum)(THIS_ LONG nFirstPage) PURE; \ | |
| STDMETHOD(GetPageInfo)(THIS_ LONG *pnFirstPage, LONG *pcPages) PURE; \ | |
| STDMETHOD(Print)(THIS_ DWORD grfFlags, DVTARGETDEVICE **pptd, PAGESET **ppPageSet, STGMEDIUM *pstgmOptions, IContinueCallback *pcallback, LONG nFirstPage, LONG *pcPagesPrinted, LONG *pnLastPage) PURE; | |
| ICOM_DEFINE(IPrint,IUnknown) | |
| #undef INTERFACE | |
| #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) (p)->lpVtbl->Print(p,a,b,c,d,e,f,g) | |
| #endif | |
| #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 | |
| #endif /* __WINE_DOCOBJ_H */ |