blob: afa4be1215d72ecf64ac6b2f0c3d0fb296b371d5 [file] [log] [blame]
Paul Quinn384a8941999-03-25 10:48:48 +00001#ifndef __WINE_DOCOBJ_H
2#define __WINE_DOCOBJ_H
3
4#include "winbase.h"
Jeremy Whited3e22d92000-02-10 19:03:02 +00005#include "windef.h"
6#include "wingdi.h"
Paul Quinn384a8941999-03-25 10:48:48 +00007#include "winuser.h"
8#include "ole2.h"
9#include "wine/obj_oleaut.h"
10
11/*****************************************************************************
12 * Declare the structures
13 */
14typedef enum
15{
16 OLECMDF_SUPPORTED = 0x1,
17 OLECMDF_ENABLED = 0x2,
18 OLECMDF_LATCHED = 0x4,
19 OLECMDF_NINCHED = 0x8
20} OLECMDF;
21
22typedef struct _tagOLECMD
23{
24 ULONG cmdID;
25 DWORD cmdf;
26} OLECMD;
27
28typedef struct _tagOLECMDTEXT
29{
30 DWORD cmdtextf;
31 ULONG cwActual;
32 ULONG cwBuf;
33 WCHAR rgwz[1];
34} OLECMDTEXT;
35
36typedef enum
37{
38 PRINTFLAG_MAYBOTHERUSER = 1,
39 PRINTFLAG_PROMPTUSER = 2,
40 PRINTFLAG_USERMAYCHANGEPRINTER = 4,
41 PRINTFLAG_RECOMPOSETODEVICE = 8,
42 PRINTFLAG_DONTACTUALLYPRINT = 16,
43 PRINTFLAG_FORCEPROPERTIES = 32,
44 PRINTFLAG_PRINTTOFILE = 64
45} PRINTFLAG;
46
47typedef struct tagPAGERANGE
48{
49 LONG nFromPage;
50 LONG nToPage;
51} PAGERANGE;
52
53typedef struct tagPAGESET
54{
55 ULONG cbStruct;
56 BOOL fOddPages;
57 BOOL fEvenPages;
58 ULONG cPageRange;
59 PAGERANGE rgPages[ 1 ];
60} PAGESET;
61
62typedef enum
63{
64 OLECMDTEXTF_NONE = 0,
65 OLECMDTEXTF_NAME = 1,
66 OLECMDTEXTF_STATUS = 2
67} OLECMDTEXTF;
68
69typedef enum
70{
71 OLECMDEXECOPT_DODEFAULT = 0,
72 OLECMDEXECOPT_PROMPTUSER = 1,
73 OLECMDEXECOPT_DONTPROMPTUSER = 2,
74 OLECMDEXECOPT_SHOWHELP = 3
75} OLECMDEXECOPT;
Juergen Schmiedc4804be1999-07-10 11:56:34 +000076
77typedef enum OLECMDID
78{
79 OLECMDID_OPEN = 1,
80 OLECMDID_NEW = 2,
81 OLECMDID_SAVE = 3,
82 OLECMDID_SAVEAS = 4,
83 OLECMDID_SAVECOPYAS = 5,
84 OLECMDID_PRINT = 6,
85 OLECMDID_PRINTPREVIEW = 7,
86 OLECMDID_PAGESETUP = 8,
87 OLECMDID_SPELL = 9,
88 OLECMDID_PROPERTIES = 10,
89 OLECMDID_CUT = 11,
90 OLECMDID_COPY = 12,
91 OLECMDID_PASTE = 13,
92 OLECMDID_PASTESPECIAL = 14,
93 OLECMDID_UNDO = 15,
94 OLECMDID_REDO = 16,
95 OLECMDID_SELECTALL = 17,
96 OLECMDID_CLEARSELECTION = 18,
97 OLECMDID_ZOOM = 19,
98 OLECMDID_GETZOOMRANGE = 20,
99 OLECMDID_UPDATECOMMANDS = 21,
100 OLECMDID_REFRESH = 22,
101 OLECMDID_STOP = 23,
102 OLECMDID_HIDETOOLBARS = 24,
103 OLECMDID_SETPROGRESSMAX = 25,
104 OLECMDID_SETPROGRESSPOS = 26,
105 OLECMDID_SETPROGRESSTEXT = 27,
106 OLECMDID_SETTITLE = 28,
107 OLECMDID_SETDOWNLOADSTATE = 29,
108 OLECMDID_STOPDOWNLOAD = 30,
109 OLECMDID_ONTOOLBARACTIVATED = 31,
110 OLECMDID_FIND = 32,
111 OLECMDID_DELETE = 33,
112 OLECMDID_HTTPEQUIV = 34,
113 OLECMDID_HTTPEQUIV_DONE = 35,
114 OLECMDID_ENABLE_INTERACTION = 36,
115 OLECMDID_ONUNLOAD = 37,
116 OLECMDID_PROPERTYBAG2 = 38,
117 OLECMDID_PREREFRESH = 39
118 /* iexplorer uses ... 44 */
119} OLECMDID;
Paul Quinn384a8941999-03-25 10:48:48 +0000120
121#define OLECMDERR_E_FIRST (OLE_E_LAST+1)
122#define OLECMDERR_E_NOTSUPPORTED (OLECMDERR_E_FIRST)
123#define OLECMDERR_E_DISABLED (OLECMDERR_E_FIRST+1)
124#define OLECMDERR_E_NOHELP (OLECMDERR_E_FIRST+2)
125#define OLECMDERR_E_CANCELED (OLECMDERR_E_FIRST+3)
126#define OLECMDERR_E_UNKNOWNGROUP (OLECMDERR_E_FIRST+4)
127
128/*****************************************************************************
129 * Predeclare the interfaces
130 */
131DEFINE_GUID(IID_IOleDocument, 0xb722bcc5,0x4e68,0x101b,0xa2,0xbc,0x00,0xaa,0x00,0x40,0x47,0x70);
132typedef struct IOleDocument IOleDocument, *LPOLEDOCUMENT;
133
134DEFINE_GUID(IID_IOleDocumentSite, 0xb722bcc7,0x4e68,0x101b,0xa2,0xbc,0x00,0xaa,0x00,0x40,0x47,0x70);
135typedef struct IOleDocumentSite IOleDocumentSite, *LPOLEDOCUMENTSITE;
136
137DEFINE_GUID(IID_IOleDocumentView, 0xb722bcc6,0x4e68,0x101b,0xa2,0xbc,0x00,0xaa,0x00,0x40,0x47,0x70);
138typedef struct IOleDocumentView IOleDocumentView, *LPOLEDOCUMENTVIEW;
139
140DEFINE_GUID(IID_IEnumOleDocumentViews, 0xb722bcc6,0x4e68,0x101b,0xa2,0xbc,0x00,0xaa,0x00,0x40,0x47,0x70);
141typedef struct IEnumOleDocumentViews IEnumOleDocumentViews, *LPENUMOLEDOCUMENTVIEWS;
142
143DEFINE_GUID(IID_IOleCommandTarget, 0xb722bccb,0x4e68,0x101b,0xa2,0xbc,0x00,0xaa,0x00,0x40,0x47,0x70);
144typedef struct IOleCommandTarget IOleCommandTarget, *LPOLECOMMANDTARGET;
145
146DEFINE_GUID(IID_IContinueCallback, 0xb722bcca,0x4e68,0x101b,0xa2,0xbc,0x00,0xaa,0x00,0x40,0x47,0x70);
147typedef struct IContinueCallback IContinueCallback, *LPCONTINUECALLBACK;
148
149DEFINE_GUID(IID_IPrint, 0xb722bcc9,0x4e68,0x101b,0xa2,0xbc,0x00,0xaa,0x00,0x40,0x47,0x70);
150typedef struct IPrint IPrint, *LPPRINT;
151
152
153/*****************************************************************************
154 * IOleDocument interface
155 */
156#define ICOM_INTERFACE IOleDocument
157#define IOleDocument_METHODS \
158 ICOM_METHOD4(HRESULT,CreateView, IOleInPlaceSite*,pIPSite, IStream*,pstm, DWORD,dwReserved, IOleDocumentView**,ppView) \
159 ICOM_METHOD1(HRESULT,GetDocMiscStatus, DWORD*,pdwStatus) \
160 ICOM_METHOD2(HRESULT,EnumViews, IEnumOleDocumentViews**,ppEnum, IOleDocumentView**,ppView)
161#define IOleDocument_IMETHODS \
162 IUnknown_IMETHODS \
163 IOleDocument_METHODS
164ICOM_DEFINE(IOleDocument,IUnknown)
165#undef ICOM_INTERFACE
166
Paul Quinn384a8941999-03-25 10:48:48 +0000167/*** IUnknown methods ***/
168#define IOleDocument_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
169#define IOleDocument_AddRef(p) ICOM_CALL (AddRef,p)
170#define IOleDocument_Release(p) ICOM_CALL (Release,p)
171/*** IOleDocument methods ***/
172#define IOleDocument_CreateView(p,a,b,c,d) ICOM_CALL4(CreateView,p,a,b,c,d)
173#define IOleDocument_GetDocMiscStatus(p,a) ICOM_CALL1(GetDocMiscStatus,p,a)
174#define IOleDocument_EnumViews(p,a,b) ICOM_CALL2(EnumViews,p,a,b)
Paul Quinn384a8941999-03-25 10:48:48 +0000175
176
177/*****************************************************************************
178 * IOleDocumentSite interface
179 */
180#define ICOM_INTERFACE IOleDocumentSite
181#define IOleDocumentSite_METHODS \
182 ICOM_METHOD1(HRESULT,ActivateMe, IOleDocumentView*,pViewToActivate)
183#define IOleDocumentSite_IMETHODS \
184 IUnknown_IMETHODS \
185 IOleDocumentSite_METHODS
186ICOM_DEFINE(IOleDocumentSite,IUnknown)
187#undef ICOM_INTERFACE
188
Paul Quinn384a8941999-03-25 10:48:48 +0000189/*** IUnknown methods ***/
190#define IOleDocumentSite_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
191#define IOleDocumentSite_AddRef(p) ICOM_CALL (AddRef,p)
192#define IOleDocumentSite_Release(p) ICOM_CALL (Release,p)
193/*** IOleDocumentSite methods ***/
194#define IOleDocumentSite_ActivateMe(p,a) ICOM_CALL4(ActivateMe,p,a)
Paul Quinn384a8941999-03-25 10:48:48 +0000195
196
197/*****************************************************************************
198 * IOleDocumentSite interface
199 */
200#define ICOM_INTERFACE IOleDocumentView
201#define IOleDocumentView_METHODS \
202 ICOM_METHOD1(HRESULT,SetInPlaceSite, IOleInPlaceSite*,pIPSite) \
203 ICOM_METHOD1(HRESULT,GetInPlaceSite, IOleInPlaceSite**,ppIPSite) \
204 ICOM_METHOD1(HRESULT,GetDocument, IUnknown**,ppunk) \
205 ICOM_METHOD1(HRESULT,SetRect, LPRECT,prcView) \
206 ICOM_METHOD1(HRESULT,GetRect, LPRECT,prcView) \
Paul Quinn270c23d1999-07-24 10:24:09 +0000207 ICOM_METHOD4(HRESULT,SetRectComplex, LPRECT,prcView, LPRECT,prcHScroll, LPRECT,prcVScroll, LPRECT,prcSizeBox) \
Paul Quinn384a8941999-03-25 10:48:48 +0000208 ICOM_METHOD1(HRESULT,Show, BOOL,fShow) \
209 ICOM_METHOD1(HRESULT,UIActivate, BOOL,fUIActivate) \
210 ICOM_METHOD (HRESULT,Open) \
211 ICOM_METHOD1(HRESULT,CloseView, DWORD,dwReserved) \
212 ICOM_METHOD1(HRESULT,SaveViewState, LPSTREAM,pstm) \
213 ICOM_METHOD1(HRESULT,ApplyViewState,LPSTREAM,pstm) \
214 ICOM_METHOD2(HRESULT,Clone, IOleInPlaceSite*,pIPSiteNew, IOleDocumentView**,ppViewNew)
215#define IOleDocumentView_IMETHODS \
216 IUnknown_IMETHODS \
217 IOleDocumentView_METHODS
218ICOM_DEFINE(IOleDocumentView,IUnknown)
219#undef ICOM_INTERFACE
220
Paul Quinn384a8941999-03-25 10:48:48 +0000221/*** IUnknown methods ***/
222#define IOleDocumentView_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
223#define IOleDocumentView_AddRef(p) ICOM_CALL (AddRef,p)
224#define IOleDocumentView_Release(p) ICOM_CALL (Release,p)
225/*** IOleDocumentView methods ***/
226#define IOleDocumentView_SetInPlaceSite(p,a) ICOM_CALL1(SetInPlaceSite,p,a)
227#define IOleDocumentView_GetInPlaceSite(p,a) ICOM_CALL1(GetInPlaceSite,p,a)
228#define IOleDocumentView_GetDocument(p,a) ICOM_CALL1(GetDocument,p,a)
229#define IOleDocumentView_SetRect(p,a) ICOM_CALL1(SetRect,p,a)
230#define IOleDocumentView_GetRect(p,a) ICOM_CALL1(GetRect,p,a)
231#define IOleDocumentView_GetRectComplex(p,a,b,c,d) ICOM_CALL4(GetRectComplex,p,a,b,c,d)
232#define IOleDocumentView_Show(p,a) ICOM_CALL1(Show,p,a)
233#define IOleDocumentView_UIActivate(p,a) ICOM_CALL1(UIActivate,p,a)
234#define IOleDocumentView_Open(p) ICOM_CALL (Open,p)
235#define IOleDocumentView_CloseView(p,a) ICOM_CALL1(CloseView,p,a)
236#define IOleDocumentView_SaveViewState(p,a) ICOM_CALL1(SaveViewState,p,a)
237#define IOleDocumentView_ApplyViewState(p,a) ICOM_CALL1(ApplyViewState,p,a)
238#define IOleDocumentView_Clone(p,a,b) ICOM_CALL2(Clone,p,a,b)
Paul Quinn384a8941999-03-25 10:48:48 +0000239
240
241/*****************************************************************************
242 * IOleDocumentSite interface
243 */
244#define ICOM_INTERFACE IEnumOleDocumentViews
245#define IEnumOleDocumentViews_METHODS \
246 ICOM_METHOD3(HRESULT,Next, ULONG,cViews, IOleDocumentView**,rgpView, ULONG*,pcFetched) \
247 ICOM_METHOD1(HRESULT,Skip, ULONG,cViews) \
248 ICOM_METHOD (HRESULT,Reset) \
249 ICOM_METHOD1(HRESULT,Clone, IEnumOleDocumentViews**,ppEnum)
250#define IEnumOleDocumentViews_IMETHODS \
251 IUnknown_IMETHODS \
252 IEnumOleDocumentViews_METHODS
253ICOM_DEFINE(IEnumOleDocumentViews,IUnknown)
254#undef ICOM_INTERFACE
255
Paul Quinn384a8941999-03-25 10:48:48 +0000256/*** IUnknown methods ***/
257#define IEnumOleDocumentViews_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
258#define IEnumOleDocumentViews_AddRef(p) ICOM_CALL (AddRef,p)
259#define IEnumOleDocumentViews_Release(p) ICOM_CALL (Release,p)
260/*** IEnumOleDocumentViews methods ***/
261#define IEnumOleDocumentViews_Next(p,a,b,c) ICOM_CALL3(Next,p,a,b,c)
262#define IEnumOleDocumentViews_Skip(p,a) ICOM_CALL1(Skip,p,a)
263#define IEnumOleDocumentViews_Reset(p) ICOM_CALL (Reset,p)
264#define IEnumOleDocumentViews_Clone(p,a) ICOM_CALL1(Clone,p,a)
Paul Quinn384a8941999-03-25 10:48:48 +0000265
266
267/*****************************************************************************
268 * IOleCommandTarget interface
269 */
270#define ICOM_INTERFACE IOleCommandTarget
271#define IOleCommandTarget_METHODS \
Paul Quinn270c23d1999-07-24 10:24:09 +0000272 ICOM_METHOD4(HRESULT,QueryStatus, const GUID*,pguidCmdGroup, ULONG,cCmds, OLECMD*,prgCmds, OLECMDTEXT*,pCmdText) \
Paul Quinn384a8941999-03-25 10:48:48 +0000273 ICOM_METHOD5(HRESULT,Exec, const GUID*,pguidCmdGroup, DWORD,nCmdID, DWORD,nCmdexecopt, VARIANT*,pvaIn, VARIANT*,pvaOut)
274#define IOleCommandTarget_IMETHODS \
275 IUnknown_IMETHODS \
276 IOleCommandTarget_METHODS
277ICOM_DEFINE(IOleCommandTarget,IUnknown)
278#undef ICOM_INTERFACE
279
Paul Quinn384a8941999-03-25 10:48:48 +0000280/*** IUnknown methods ***/
281#define IOleCommandTarget_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
282#define IOleCommandTarget_AddRef(p) ICOM_CALL (AddRef,p)
283#define IOleCommandTarget_Release(p) ICOM_CALL (Release,p)
284/*** IOleCommandTarget methods ***/
285#define IOleCommandTarget_QueryStatus(p,a,b,c,d) ICOM_CALL4(QueryStatus,p,a,b,c,d)
286#define IOleCommandTarget_Exec(p,a,b,c,d,e) ICOM_CALL5(Exec,p,a,b,c,d,e)
Paul Quinn384a8941999-03-25 10:48:48 +0000287
288
289/*****************************************************************************
290 * IContinueCallback interface
291 */
292#define ICOM_INTERFACE IContinueCallback
293#define IContinueCallback_METHODS \
294 ICOM_METHOD (HRESULT,FContinue) \
295 ICOM_METHOD3(HRESULT,FContinuePrinting, LONG,nCntPrinted, LONG,nCurPage, WCHAR*,pwszPrintStatus)
296#define IContinueCallback_IMETHODS \
297 IUnknown_IMETHODS \
298 IContinueCallback_METHODS
299ICOM_DEFINE(IContinueCallback,IUnknown)
300#undef ICOM_INTERFACE
301
Paul Quinn384a8941999-03-25 10:48:48 +0000302/*** IUnknown methods ***/
303#define IContinueCallback_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
304#define IContinueCallback_AddRef(p) ICOM_CALL (AddRef,p)
305#define IContinueCallback_Release(p) ICOM_CALL (Release,p)
306/*** IContinueCallback methods ***/
307#define IContinueCallback_FContinue(p) ICOM_CALL (FContinue,p)
308#define IContinueCallback_FContinuePrinting(p,a,b,c) ICOM_CALL3(FContinuePrinting,p,a,b,c)
Paul Quinn384a8941999-03-25 10:48:48 +0000309
310
311/*****************************************************************************
312 * IPrint interface
313 */
314#define ICOM_INTERFACE IPrint
315#define IPrint_METHODS \
316 ICOM_METHOD1(HRESULT,SetInitialPageNum, LONG,nFirstPage) \
317 ICOM_METHOD2(HRESULT,GetPageInfo, LONG*,pnFirstPage, LONG*,pcPages) \
318 ICOM_METHOD8(HRESULT,Print, DWORD,grfFlags, DVTARGETDEVICE**,pptd, PAGESET**,ppPageSet, STGMEDIUM*,pstgmOptions, IContinueCallback*,pcallback, LONG,nFirstPage, LONG*,pcPagesPrinted, LONG*,pnLastPage)
319#define IPrint_IMETHODS \
320 IUnknown_IMETHODS \
321 IPrint_METHODS
322ICOM_DEFINE(IPrint,IUnknown)
323#undef ICOM_INTERFACE
324
Paul Quinn384a8941999-03-25 10:48:48 +0000325/*** IUnknown methods ***/
326#define IPrint_QueryInterface(p,a,b) ICOM_CALL2(QueryInterface,p,a,b)
327#define IPrint_AddRef(p) ICOM_CALL (AddRef,p)
328#define IPrint_Release(p) ICOM_CALL (Release,p)
329/*** Iprint methods ***/
330#define IPrint_SetInitialPageNum(p,a) ICOM_CALL1(SetInitialPageNum,p,a)
331#define IPrint_GetPageInfo(p,a,b) ICOM_CALL2(GetPageInfo,p,a,b)
332#define IPrint_Print(p,a,b,c,d,e,f,g) ICOM_CALL7(Print,p,a,b,c,d,e,f,g)
Paul Quinn384a8941999-03-25 10:48:48 +0000333
334
Jim Aston10141fe1999-04-25 12:31:20 +0000335#define LPMSODOCUMENT LPOLEDOCUMENT
336#define LPMSODOCUMENTSITE LPOLEDOCUMENTSITE
337#define LPMSOVIEW LPOLEDOCUMENTVIEW
338#define LPENUMMSOVIEW LPENUMOLEDOCUMENTVIEWS
339#define LPMSOCOMMANDTARGET LPOLECOMMANDTARGET
340#define IID_IMsoDocument IID_IOleDocument
341#define IID_IMsoDocumentSite IID_IOleDocumentSite
342#define IID_IMsoView IID_IOleDocumentView
343#define IID_IEnumMsoView IID_IEnumOleDocumentViews
344#define IID_IMsoCommandTarget IID_IOleCommandTarget
Paul Quinn384a8941999-03-25 10:48:48 +0000345
346
347#endif /* __WINE_DOCOBJ_H */