119d4eab84e48b6d561d5d8990b18f52d5c84ebc
[reactos.git] / sdk / include / psdk / docobj.idl
1 /*
2 * Copyright (C) 1999 Paul Quinn
3 * Copyright (C) 2003 Alexandre Julliard
4 *
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
18 */
19
20 import "ocidl.idl";
21 import "objidl.idl";
22 import "oleidl.idl";
23 import "oaidl.idl";
24 import "servprov.idl";
25
26
27 interface IOleDocumentView;
28 interface IEnumOleDocumentViews;
29
30
31 /*****************************************************************************
32 * IOleDocument interface
33 */
34 [
35 object,
36 uuid(b722bcc5-4e68-101b-a2bc-00aa00404770),
37 pointer_default(unique)
38 ]
39 interface IOleDocument : IUnknown
40 {
41 typedef [unique] IOleDocument *LPOLEDOCUMENT;
42
43 typedef enum
44 {
45 DOCMISC_CANCREATEMULTIPLEVIEWS = 1,
46 DOCMISC_SUPPORTCOMPLEXRECTANGLES = 2,
47 DOCMISC_CANTOPENEDIT = 4,
48 DOCMISC_NOFILESUPPORT = 8
49 } DOCMISC;
50
51 HRESULT CreateView(
52 [in, unique] IOleInPlaceSite *pIPSite,
53 [in, unique] IStream *pstm,
54 [in] DWORD dwReserved,
55 [out] IOleDocumentView **ppView);
56
57 HRESULT GetDocMiscStatus(
58 [out] DWORD *pdwStatus);
59
60 HRESULT EnumViews(
61 [out] IEnumOleDocumentViews **ppEnum,
62 [out] IOleDocumentView **ppView);
63 }
64
65
66 /*****************************************************************************
67 * IOleDocumentSite interface
68 */
69 [
70 object,
71 uuid(b722bcc7-4e68-101b-a2bc-00aa00404770),
72 pointer_default(unique)
73 ]
74 interface IOleDocumentSite : IUnknown
75 {
76 typedef [unique] IOleDocumentSite *LPOLEDOCUMENTSITE;
77
78 HRESULT ActivateMe( [in] IOleDocumentView *pViewToActivate );
79 }
80
81
82 /*****************************************************************************
83 * IOleDocumentView interface
84 */
85 [
86 object,
87 uuid(b722bcc6-4e68-101b-a2bc-00aa00404770),
88 pointer_default(unique)
89 ]
90 interface IOleDocumentView : IUnknown
91 {
92 typedef [unique] IOleDocumentView *LPOLEDOCUMENTVIEW;
93
94 HRESULT SetInPlaceSite( [in, unique] IOleInPlaceSite *pIPSite );
95
96 HRESULT GetInPlaceSite( [out] IOleInPlaceSite **ppIPSite );
97
98 HRESULT GetDocument( [out] IUnknown **ppunk );
99
100 HRESULT SetRect( [in] LPRECT prcView );
101
102 HRESULT GetRect( [out] LPRECT prcView );
103
104 HRESULT SetRectComplex(
105 [in, unique] LPRECT prcView,
106 [in, unique] LPRECT prcHScroll,
107 [in, unique] LPRECT prcVScroll,
108 [in, unique] LPRECT prcSizeBox);
109
110 HRESULT Show( [in] BOOL fShow );
111
112 HRESULT UIActivate( [in] BOOL fUIActivate );
113
114 HRESULT Open();
115
116 HRESULT CloseView( [in] DWORD dwReserved );
117
118 HRESULT SaveViewState( [in] LPSTREAM pstm );
119
120 HRESULT ApplyViewState( [in] LPSTREAM pstm );
121
122 HRESULT Clone(
123 [in] IOleInPlaceSite *pIPSiteNew,
124 [out] IOleDocumentView **ppViewNew);
125 }
126
127
128 /*****************************************************************************
129 * IEnumOleDocumentViews interface
130 */
131 [
132 object,
133 uuid(b722bcc8-4e68-101b-a2bc-00aa00404770),
134 pointer_default(unique)
135 ]
136 interface IEnumOleDocumentViews : IUnknown
137 {
138 typedef [unique] IEnumOleDocumentViews *LPENUMOLEDOCUMENTVIEWS;
139
140 [local]
141 HRESULT Next(
142 [in] ULONG cViews,
143 [out] IOleDocumentView **rgpView,
144 [out] ULONG *pcFetched);
145
146 [call_as(Next)]
147 HRESULT RemoteNext(
148 [in] ULONG cViews,
149 [out, size_is(cViews), length_is(*pcFetched)] IOleDocumentView **rgpView,
150 [out] ULONG *pcFetched);
151
152 HRESULT Skip( [in] ULONG cViews );
153
154 HRESULT Reset();
155
156 HRESULT Clone( [out] IEnumOleDocumentViews **ppEnum );
157 }
158
159
160 /*****************************************************************************
161 * IOleCommandTarget interface
162 */
163 [
164 object,
165 uuid(b722bccb-4e68-101b-a2bc-00aa00404770),
166 pointer_default(unique)
167 ]
168 interface IOleCommandTarget : IUnknown
169 {
170 typedef [unique] IOleCommandTarget *LPOLECOMMANDTARGET;
171
172 typedef enum OLECMDF
173 {
174 OLECMDF_SUPPORTED = 0x1,
175 OLECMDF_ENABLED = 0x2,
176 OLECMDF_LATCHED = 0x4,
177 OLECMDF_NINCHED = 0x8,
178 OLECMDF_INVISIBLE = 0x10,
179 OLECMDF_DEFHIDEONCTXTMENU = 0x20
180 } OLECMDF;
181
182 typedef struct _tagOLECMD
183 {
184 ULONG cmdID;
185 DWORD cmdf;
186 } OLECMD;
187
188 typedef struct _tagOLECMDTEXT
189 {
190 DWORD cmdtextf;
191 ULONG cwActual;
192 ULONG cwBuf;
193 [size_is(cwBuf)] WCHAR rgwz[];
194 } OLECMDTEXT;
195
196 typedef enum OLECMDTEXTF
197 {
198 OLECMDTEXTF_NONE = 0,
199 OLECMDTEXTF_NAME = 1,
200 OLECMDTEXTF_STATUS = 2
201 } OLECMDTEXTF;
202
203 typedef enum OLECMDEXECOPT
204 {
205 OLECMDEXECOPT_DODEFAULT = 0,
206 OLECMDEXECOPT_PROMPTUSER = 1,
207 OLECMDEXECOPT_DONTPROMPTUSER = 2,
208 OLECMDEXECOPT_SHOWHELP = 3
209 } OLECMDEXECOPT;
210
211 typedef enum OLECMDID
212 {
213 OLECMDID_OPEN = 1,
214 OLECMDID_NEW = 2,
215 OLECMDID_SAVE = 3,
216 OLECMDID_SAVEAS = 4,
217 OLECMDID_SAVECOPYAS = 5,
218 OLECMDID_PRINT = 6,
219 OLECMDID_PRINTPREVIEW = 7,
220 OLECMDID_PAGESETUP = 8,
221 OLECMDID_SPELL = 9,
222 OLECMDID_PROPERTIES = 10,
223 OLECMDID_CUT = 11,
224 OLECMDID_COPY = 12,
225 OLECMDID_PASTE = 13,
226 OLECMDID_PASTESPECIAL = 14,
227 OLECMDID_UNDO = 15,
228 OLECMDID_REDO = 16,
229 OLECMDID_SELECTALL = 17,
230 OLECMDID_CLEARSELECTION = 18,
231 OLECMDID_ZOOM = 19,
232 OLECMDID_GETZOOMRANGE = 20,
233 OLECMDID_UPDATECOMMANDS = 21,
234 OLECMDID_REFRESH = 22,
235 OLECMDID_STOP = 23,
236 OLECMDID_HIDETOOLBARS = 24,
237 OLECMDID_SETPROGRESSMAX = 25,
238 OLECMDID_SETPROGRESSPOS = 26,
239 OLECMDID_SETPROGRESSTEXT = 27,
240 OLECMDID_SETTITLE = 28,
241 OLECMDID_SETDOWNLOADSTATE = 29,
242 OLECMDID_STOPDOWNLOAD = 30,
243 OLECMDID_ONTOOLBARACTIVATED = 31,
244 OLECMDID_FIND = 32,
245 OLECMDID_DELETE = 33,
246 OLECMDID_HTTPEQUIV = 34,
247 OLECMDID_HTTPEQUIV_DONE = 35,
248 OLECMDID_ENABLE_INTERACTION = 36,
249 OLECMDID_ONUNLOAD = 37,
250 OLECMDID_PROPERTYBAG2 = 38,
251 OLECMDID_PREREFRESH = 39,
252 /* iexplorer uses ... 44 */
253 OLECMDID_SHOWSCRIPTERROR = 40,
254 OLECMDID_SHOWMESSAGE = 41,
255 OLECMDID_SHOWFIND = 42,
256 OLECMDID_SHOWPAGESETUP = 43,
257 OLECMDID_SHOWPRINT = 44,
258 OLECMDID_CLOSE = 45,
259 OLECMDID_ALLOWUILESSSAVEAS = 46,
260 OLECMDID_DONTDOWNLOADCSS = 47,
261 OLECMDID_UPDATEPAGESTATUS = 48,
262 OLECMDID_PRINT2 = 49,
263 OLECMDID_PRINTPREVIEW2 = 50,
264 OLECMDID_SETPRINTTEMPLATE = 51,
265 OLECMDID_GETPRINTTEMPLATE = 52,
266 OLECMDID_PAGEACTIONBLOCKED = 55,
267 OLECMDID_PAGEACTIONUIQUERY = 56,
268 OLECMDID_FOCUSVIEWCONTROLS = 57,
269 OLECMDID_FOCUSVIEWCONTROLSQUERY = 58,
270 OLECMDID_SHOWPAGEACTIONMENU = 59,
271 OLECMDID_ADDTRAVELENTRY = 60,
272 OLECMDID_UPDATETRAVELENTRY = 61,
273 OLECMDID_UPDATEBACKFORWARDSTATE = 62,
274 OLECMDID_OPTICAL_ZOOM = 63,
275 OLECMDID_OPTICAL_GETZOOMRANGE = 64,
276 OLECMDID_WINDOWSTATECHANGED = 65,
277 OLECMDID_ACTIVEXINSTALLSCOPE = 66,
278 OLECMDID_UPDATETRAVELENTRY_DATARECOVERY = 67,
279 OLECMDID_SHOWTASKDLG = 68,
280 OLECMDID_POPSTATEEVENT = 69,
281 OLECMDID_VIEWPORT_MODE = 70,
282 OLECMDID_LAYOUT_VIEWPORT_WIDTH = 71,
283 OLECMDID_VISUAL_VIEWPORT_EXCLUDE_BOTTOM = 72,
284 OLECMDID_USER_OPTICAL_ZOOM = 73,
285 OLECMDID_PAGEAVAILABLE = 74,
286 OLECMDID_GETUSERSCALABLE = 75,
287 OLECMDID_UPDATE_CARET = 76,
288 OLECMDID_ENABLE_VISIBILITY = 77,
289 OLECMDID_MEDIA_PLAYBACK = 78
290 } OLECMDID;
291
292 HRESULT QueryStatus(
293 [in, unique] const GUID *pguidCmdGroup,
294 [in] ULONG cCmds,
295 [in, out, size_is(cCmds)] OLECMD prgCmds[],
296 [in, out, unique] OLECMDTEXT *pCmdText);
297
298 HRESULT Exec(
299 [in, unique] const GUID *pguidCmdGroup,
300 [in] DWORD nCmdID,
301 [in] DWORD nCmdexecopt,
302 [in, unique] VARIANT *pvaIn,
303 [in, out, unique] VARIANT *pvaOut);
304 }
305
306
307 /*****************************************************************************
308 * IContinueCallback interface
309 */
310 [
311 object,
312 uuid(b722bcca-4e68-101b-a2bc-00aa00404770),
313 pointer_default(unique)
314 ]
315 interface IContinueCallback : IUnknown
316 {
317 typedef [unique] IContinueCallback *LPCONTINUECALLBACK;
318
319 HRESULT FContinue();
320
321 HRESULT FContinuePrinting(
322 [in] LONG nCntPrinted,
323 [in] LONG nCurPage,
324 [in, unique] WCHAR *pwszPrintStatus);
325 }
326
327
328 /*****************************************************************************
329 * IPrint interface
330 */
331 [
332 object,
333 uuid(b722bcc9-4e68-101b-a2bc-00aa00404770),
334 pointer_default(unique)
335 ]
336 interface IPrint : IUnknown
337 {
338 typedef [unique] IPrint *LPPRINT;
339
340 typedef enum
341 {
342 PRINTFLAG_MAYBOTHERUSER = 1,
343 PRINTFLAG_PROMPTUSER = 2,
344 PRINTFLAG_USERMAYCHANGEPRINTER = 4,
345 PRINTFLAG_RECOMPOSETODEVICE = 8,
346 PRINTFLAG_DONTACTUALLYPRINT = 16,
347 PRINTFLAG_FORCEPROPERTIES = 32,
348 PRINTFLAG_PRINTTOFILE = 64
349 } PRINTFLAG;
350
351 typedef struct tagPAGERANGE
352 {
353 LONG nFromPage;
354 LONG nToPage;
355 } PAGERANGE;
356
357 typedef struct tagPAGESET
358 {
359 ULONG cbStruct;
360 BOOL fOddPages;
361 BOOL fEvenPages;
362 ULONG cPageRange;
363 [size_is(cPageRange)] PAGERANGE rgPages[];
364 } PAGESET;
365
366 HRESULT SetInitialPageNum(
367 [in] LONG nFirstPage);
368
369 HRESULT GetPageInfo(
370 [out] LONG *pnFirstPage,
371 [out] LONG *pcPages);
372
373 [local]
374 HRESULT Print(
375 [in] DWORD grfFlags,
376 [in, out] DVTARGETDEVICE **pptd,
377 [in, out] PAGESET **ppPageSet,
378 [in, out, unique] STGMEDIUM *pstgmOptions,
379 [in] IContinueCallback *pcallback,
380 [in] LONG nFirstPage,
381 [out] LONG *pcPagesPrinted,
382 [out] LONG *pnLastPage);
383
384 [call_as(Print)]
385 HRESULT RemotePrint(
386 [in] DWORD grfFlags,
387 [in, out] DVTARGETDEVICE **pptd,
388 [in, out] PAGESET **pppageset,
389 [in, out, unique] RemSTGMEDIUM *pstgmOptions,
390 [in] IContinueCallback *pcallback,
391 [in] LONG nFirstPage,
392 [out] LONG *pcPagesPrinted,
393 [out] LONG *pnLastPage);
394 }
395
396
397 cpp_quote("#define OLECMDERR_E_FIRST (OLE_E_LAST+1)")
398 cpp_quote("#define OLECMDERR_E_NOTSUPPORTED (OLECMDERR_E_FIRST)")
399 cpp_quote("#define OLECMDERR_E_DISABLED (OLECMDERR_E_FIRST+1)")
400 cpp_quote("#define OLECMDERR_E_NOHELP (OLECMDERR_E_FIRST+2)")
401 cpp_quote("#define OLECMDERR_E_CANCELED (OLECMDERR_E_FIRST+3)")
402 cpp_quote("#define OLECMDERR_E_UNKNOWNGROUP (OLECMDERR_E_FIRST+4)")
403
404 cpp_quote("#define MSOCMDERR_E_FIRST OLECMDERR_E_FIRST")
405 cpp_quote("#define MSOCMDERR_E_NOTSUPPORTED OLECMDERR_E_NOTSUPPORTED")
406 cpp_quote("#define MSOCMDERR_E_DISABLED OLECMDERR_E_DISABLED")
407 cpp_quote("#define MSOCMDERR_E_NOHELP OLECMDERR_E_NOHELP")
408 cpp_quote("#define MSOCMDERR_E_CANCELED OLECMDERR_E_CANCELED")
409 cpp_quote("#define MSOCMDERR_E_UNKNOWNGROUP OLECMDERR_E_UNKNOWNGROUP")
410
411 cpp_quote("#define LPMSODOCUMENT LPOLEDOCUMENT")
412 cpp_quote("#define LPMSODOCUMENTSITE LPOLEDOCUMENTSITE")
413 cpp_quote("#define LPMSOVIEW LPOLEDOCUMENTVIEW")
414 cpp_quote("#define LPENUMMSOVIEW LPENUMOLEDOCUMENTVIEWS")
415 cpp_quote("#define LPMSOCOMMANDTARGET LPOLECOMMANDTARGET")
416 cpp_quote("#define IID_IMsoDocument IID_IOleDocument")
417 cpp_quote("#define IID_IMsoDocumentSite IID_IOleDocumentSite")
418 cpp_quote("#define IID_IMsoView IID_IOleDocumentView")
419 cpp_quote("#define IID_IEnumMsoView IID_IEnumOleDocumentViews")
420 cpp_quote("#define IID_IMsoCommandTarget IID_IOleCommandTarget")
421
422 cpp_quote("EXTERN_C const GUID SID_SContainerDispatch;")