|  | /* | 
|  | * Copyright (C) 1999 Paul Quinn | 
|  | * Copyright (C) 2003 Alexandre Julliard | 
|  | * | 
|  | * 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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | 
|  | */ | 
|  |  | 
|  | import "ocidl.idl"; | 
|  | import "objidl.idl"; | 
|  | import "oleidl.idl"; | 
|  | import "oaidl.idl"; | 
|  | import "servprov.idl"; | 
|  |  | 
|  |  | 
|  | interface IOleDocumentView; | 
|  | interface IEnumOleDocumentViews; | 
|  |  | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IOleDocument interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(b722bcc5-4e68-101b-a2bc-00aa00404770), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IOleDocument : IUnknown | 
|  | { | 
|  | typedef [unique] IOleDocument *LPOLEDOCUMENT; | 
|  |  | 
|  | typedef enum | 
|  | { | 
|  | DOCMISC_CANCREATEMULTIPLEVIEWS = 1, | 
|  | DOCMISC_SUPPORTCOMPLEXRECTANGLES = 2, | 
|  | DOCMISC_CANTOPENEDIT = 4, | 
|  | DOCMISC_NOFILESUPPORT = 8 | 
|  | } DOCMISC; | 
|  |  | 
|  | HRESULT CreateView( | 
|  | [in, unique] IOleInPlaceSite *pIPSite, | 
|  | [in, unique] IStream *pstm, | 
|  | [in] DWORD dwReserved, | 
|  | [out] IOleDocumentView **ppView); | 
|  |  | 
|  | HRESULT GetDocMiscStatus( | 
|  | [out] DWORD *pdwStatus); | 
|  |  | 
|  | HRESULT EnumViews( | 
|  | [out] IEnumOleDocumentViews **ppEnum, | 
|  | [out] IOleDocumentView **ppView); | 
|  | } | 
|  |  | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IOleDocumentSite interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(b722bcc7-4e68-101b-a2bc-00aa00404770), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IOleDocumentSite : IUnknown | 
|  | { | 
|  | typedef [unique] IOleDocumentSite *LPOLEDOCUMENTSITE; | 
|  |  | 
|  | HRESULT ActivateMe( [in] IOleDocumentView *pViewToActivate ); | 
|  | } | 
|  |  | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IOleDocumentView interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(b722bcc6-4e68-101b-a2bc-00aa00404770), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IOleDocumentView : IUnknown | 
|  | { | 
|  | typedef [unique] IOleDocumentView *LPOLEDOCUMENTVIEW; | 
|  |  | 
|  | HRESULT SetInPlaceSite( [in, unique] IOleInPlaceSite *pIPSite ); | 
|  |  | 
|  | HRESULT GetInPlaceSite( [out] IOleInPlaceSite **ppIPSite ); | 
|  |  | 
|  | HRESULT GetDocument( [out] IUnknown **ppunk ); | 
|  |  | 
|  | HRESULT SetRect( [in] LPRECT prcView ); | 
|  |  | 
|  | HRESULT GetRect( [out] LPRECT prcView ); | 
|  |  | 
|  | HRESULT SetRectComplex( | 
|  | [in, unique] LPRECT prcView, | 
|  | [in, unique] LPRECT prcHScroll, | 
|  | [in, unique] LPRECT prcVScroll, | 
|  | [in, unique] LPRECT prcSizeBox); | 
|  |  | 
|  | HRESULT Show( [in] BOOL fShow ); | 
|  |  | 
|  | HRESULT UIActivate( [in] BOOL fUIActivate ); | 
|  |  | 
|  | HRESULT Open(); | 
|  |  | 
|  | HRESULT CloseView( [in] DWORD dwReserved ); | 
|  |  | 
|  | HRESULT SaveViewState( [in] LPSTREAM pstm ); | 
|  |  | 
|  | HRESULT ApplyViewState( [in] LPSTREAM pstm ); | 
|  |  | 
|  | HRESULT Clone( | 
|  | [in] IOleInPlaceSite *pIPSiteNew, | 
|  | [out] IOleDocumentView **ppViewNew); | 
|  | } | 
|  |  | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IEnumOleDocumentViews interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(b722bcc8-4e68-101b-a2bc-00aa00404770), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IEnumOleDocumentViews : IUnknown | 
|  | { | 
|  | typedef [unique] IEnumOleDocumentViews *LPENUMOLEDOCUMENTVIEWS; | 
|  |  | 
|  | [local] | 
|  | HRESULT Next( | 
|  | [in] ULONG cViews, | 
|  | [out] IOleDocumentView **rgpView, | 
|  | [out] ULONG *pcFetched); | 
|  |  | 
|  | [call_as(Next)] | 
|  | HRESULT RemoteNext( | 
|  | [in] ULONG cViews, | 
|  | [out, size_is(cViews), length_is(*pcFetched)] IOleDocumentView **rgpView, | 
|  | [out] ULONG *pcFetched); | 
|  |  | 
|  | HRESULT Skip( [in] ULONG cViews ); | 
|  |  | 
|  | HRESULT Reset(); | 
|  |  | 
|  | HRESULT Clone( [out] IEnumOleDocumentViews **ppEnum ); | 
|  | } | 
|  |  | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IOleCommandTarget interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(b722bccb-4e68-101b-a2bc-00aa00404770), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IOleCommandTarget : IUnknown | 
|  | { | 
|  | typedef [unique] 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; | 
|  | [size_is(cwBuf)] WCHAR rgwz[]; | 
|  | } 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, | 
|  | /* 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; | 
|  |  | 
|  | HRESULT QueryStatus( | 
|  | [in, unique] const GUID *pguidCmdGroup, | 
|  | [in] ULONG cCmds, | 
|  | [in, out, size_is(cCmds)] OLECMD prgCmds[], | 
|  | [in, out, unique] OLECMDTEXT *pCmdText); | 
|  |  | 
|  | HRESULT Exec( | 
|  | [in, unique] const GUID *pguidCmdGroup, | 
|  | [in] DWORD nCmdID, | 
|  | [in] DWORD nCmdexecopt, | 
|  | [in, unique] VARIANT *pvaIn, | 
|  | [in, out, unique] VARIANT *pvaOut); | 
|  | } | 
|  |  | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IContinueCallback interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(b722bcca-4e68-101b-a2bc-00aa00404770), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IContinueCallback : IUnknown | 
|  | { | 
|  | typedef [unique] IContinueCallback *LPCONTINUECALLBACK; | 
|  |  | 
|  | HRESULT FContinue(); | 
|  |  | 
|  | HRESULT FContinuePrinting( | 
|  | [in] LONG nCntPrinted, | 
|  | [in] LONG nCurPage, | 
|  | [in, unique] WCHAR *pwszPrintStatus); | 
|  | } | 
|  |  | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IPrint interface | 
|  | */ | 
|  | [ | 
|  | object, | 
|  | uuid(b722bcc9-4e68-101b-a2bc-00aa00404770), | 
|  | pointer_default(unique) | 
|  | ] | 
|  | interface IPrint : IUnknown | 
|  | { | 
|  | typedef [unique] 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; | 
|  | [size_is(cPageRange)] PAGERANGE rgPages[]; | 
|  | } PAGESET; | 
|  |  | 
|  | HRESULT SetInitialPageNum( | 
|  | [in] LONG nFirstPage); | 
|  |  | 
|  | HRESULT GetPageInfo( | 
|  | [out] LONG *pnFirstPage, | 
|  | [out] LONG *pcPages); | 
|  |  | 
|  | [local] | 
|  | HRESULT Print( | 
|  | [in] DWORD grfFlags, | 
|  | [in, out] DVTARGETDEVICE **pptd, | 
|  | [in, out] PAGESET **ppPageSet, | 
|  | [in, out, unique] STGMEDIUM *pstgmOptions, | 
|  | [in] IContinueCallback *pcallback, | 
|  | [in]  LONG nFirstPage, | 
|  | [out] LONG *pcPagesPrinted, | 
|  | [out] LONG *pnLastPage); | 
|  |  | 
|  | [call_as(Print)] | 
|  | HRESULT RemotePrint( | 
|  | [in] DWORD grfFlags, | 
|  | [in, out] DVTARGETDEVICE **pptd, | 
|  | [in, out] PAGESET **pppageset, | 
|  | [in, out, unique] RemSTGMEDIUM *pstgmOptions, | 
|  | [in] IContinueCallback *pcallback, | 
|  | [in]  LONG nFirstPage, | 
|  | [out] LONG *pcPagesPrinted, | 
|  | [out] LONG *pnLastPage); | 
|  | } | 
|  |  | 
|  |  | 
|  | cpp_quote("#define OLECMDERR_E_FIRST            (OLE_E_LAST+1)") | 
|  | cpp_quote("#define OLECMDERR_E_NOTSUPPORTED     (OLECMDERR_E_FIRST)") | 
|  | cpp_quote("#define OLECMDERR_E_DISABLED         (OLECMDERR_E_FIRST+1)") | 
|  | cpp_quote("#define OLECMDERR_E_NOHELP           (OLECMDERR_E_FIRST+2)") | 
|  | cpp_quote("#define OLECMDERR_E_CANCELED         (OLECMDERR_E_FIRST+3)") | 
|  | cpp_quote("#define OLECMDERR_E_UNKNOWNGROUP     (OLECMDERR_E_FIRST+4)") | 
|  |  | 
|  | cpp_quote("#define MSOCMDERR_E_FIRST OLECMDERR_E_FIRST") | 
|  | cpp_quote("#define MSOCMDERR_E_NOTSUPPORTED OLECMDERR_E_NOTSUPPORTED") | 
|  | cpp_quote("#define MSOCMDERR_E_DISABLED OLECMDERR_E_DISABLED") | 
|  | cpp_quote("#define MSOCMDERR_E_NOHELP OLECMDERR_E_NOHELP") | 
|  | cpp_quote("#define MSOCMDERR_E_CANCELED OLECMDERR_E_CANCELED") | 
|  | cpp_quote("#define MSOCMDERR_E_UNKNOWNGROUP OLECMDERR_E_UNKNOWNGROUP") | 
|  |  | 
|  | cpp_quote("#define LPMSODOCUMENT                  LPOLEDOCUMENT") | 
|  | cpp_quote("#define LPMSODOCUMENTSITE              LPOLEDOCUMENTSITE") | 
|  | cpp_quote("#define LPMSOVIEW                      LPOLEDOCUMENTVIEW") | 
|  | cpp_quote("#define LPENUMMSOVIEW                  LPENUMOLEDOCUMENTVIEWS") | 
|  | cpp_quote("#define LPMSOCOMMANDTARGET             LPOLECOMMANDTARGET") | 
|  | cpp_quote("#define IID_IMsoDocument               IID_IOleDocument") | 
|  | cpp_quote("#define IID_IMsoDocumentSite           IID_IOleDocumentSite") | 
|  | cpp_quote("#define IID_IMsoView                   IID_IOleDocumentView") | 
|  | cpp_quote("#define IID_IEnumMsoView               IID_IEnumOleDocumentViews") | 
|  | cpp_quote("#define IID_IMsoCommandTarget          IID_IOleCommandTarget") |