Use pipe sync code from wineoss.
[wine] / include / docobj.h
1 /*** Autogenerated by WIDL 0.1 from docobj.idl - Do not edit ***/
2 #include <rpc.h>
3 #include <rpcndr.h>
4
5 #ifndef __WIDL_DOCOBJ_H
6 #define __WIDL_DOCOBJ_H
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 #include <ocidl.h>
11 #include <objidl.h>
12 #include <oleidl.h>
13 #include <oaidl.h>
14 #include <servprov.h>
15 #ifndef __IOleDocumentView_FWD_DEFINED__
16 #define __IOleDocumentView_FWD_DEFINED__
17 typedef struct IOleDocumentView IOleDocumentView;
18 #endif
19
20 #ifndef __IEnumOleDocumentViews_FWD_DEFINED__
21 #define __IEnumOleDocumentViews_FWD_DEFINED__
22 typedef struct IEnumOleDocumentViews IEnumOleDocumentViews;
23 #endif
24
25 #ifndef __IOleDocument_FWD_DEFINED__
26 #define __IOleDocument_FWD_DEFINED__
27 typedef struct IOleDocument IOleDocument;
28 #endif
29
30 typedef IOleDocument *LPOLEDOCUMENT;
31
32 typedef enum {
33     DOCMISC_CANCREATEMULTIPLEVIEWS = 1,
34     DOCMISC_SUPPORTCOMPLEXRECTANGLES = 2,
35     DOCMISC_CANTOPENEDIT = 4,
36     DOCMISC_NOFILESUPPORT = 8
37 } DOCMISC;
38
39 /*****************************************************************************
40  * IOleDocument interface
41  */
42 #ifndef __IOleDocument_INTERFACE_DEFINED__
43 #define __IOleDocument_INTERFACE_DEFINED__
44
45 DEFINE_GUID(IID_IOleDocument, 0xb722bcc5, 0x4e68, 0x101b, 0xa2,0xbc, 0x00,0xaa,0x00,0x40,0x47,0x70);
46 #if defined(__cplusplus) && !defined(CINTERFACE)
47 struct IOleDocument : public IUnknown
48 {
49     virtual HRESULT STDMETHODCALLTYPE CreateView(
50         IOleInPlaceSite* pIPSite,
51         IStream* pstm,
52         DWORD dwReserved,
53         IOleDocumentView** ppView) = 0;
54
55     virtual HRESULT STDMETHODCALLTYPE GetDocMiscStatus(
56         DWORD* pdwStatus) = 0;
57
58     virtual HRESULT STDMETHODCALLTYPE EnumViews(
59         IEnumOleDocumentViews** ppEnum,
60         IOleDocumentView** ppView) = 0;
61
62 };
63 #else
64 typedef struct IOleDocumentVtbl IOleDocumentVtbl;
65 struct IOleDocument {
66     const IOleDocumentVtbl* lpVtbl;
67 };
68 struct IOleDocumentVtbl {
69     ICOM_MSVTABLE_COMPAT_FIELDS
70
71     /*** IUnknown methods ***/
72     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
73         IOleDocument* This,
74         REFIID riid,
75         void** ppvObject);
76
77     ULONG (STDMETHODCALLTYPE *AddRef)(
78         IOleDocument* This);
79
80     ULONG (STDMETHODCALLTYPE *Release)(
81         IOleDocument* This);
82
83     /*** IOleDocument methods ***/
84     HRESULT (STDMETHODCALLTYPE *CreateView)(
85         IOleDocument* This,
86         IOleInPlaceSite* pIPSite,
87         IStream* pstm,
88         DWORD dwReserved,
89         IOleDocumentView** ppView);
90
91     HRESULT (STDMETHODCALLTYPE *GetDocMiscStatus)(
92         IOleDocument* This,
93         DWORD* pdwStatus);
94
95     HRESULT (STDMETHODCALLTYPE *EnumViews)(
96         IOleDocument* This,
97         IEnumOleDocumentViews** ppEnum,
98         IOleDocumentView** ppView);
99
100 };
101
102 /*** IUnknown methods ***/
103 #define IOleDocument_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
104 #define IOleDocument_AddRef(p) (p)->lpVtbl->AddRef(p)
105 #define IOleDocument_Release(p) (p)->lpVtbl->Release(p)
106 /*** IOleDocument methods ***/
107 #define IOleDocument_CreateView(p,a,b,c,d) (p)->lpVtbl->CreateView(p,a,b,c,d)
108 #define IOleDocument_GetDocMiscStatus(p,a) (p)->lpVtbl->GetDocMiscStatus(p,a)
109 #define IOleDocument_EnumViews(p,a,b) (p)->lpVtbl->EnumViews(p,a,b)
110
111 #endif
112
113 #define IOleDocument_METHODS \
114     ICOM_MSVTABLE_COMPAT_FIELDS \
115     /*** IUnknown methods ***/ \
116     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
117     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
118     STDMETHOD_(ULONG,Release)(THIS) PURE; \
119     /*** IOleDocument methods ***/ \
120     STDMETHOD_(HRESULT,CreateView)(THIS_ IOleInPlaceSite* pIPSite, IStream* pstm, DWORD dwReserved, IOleDocumentView** ppView) PURE; \
121     STDMETHOD_(HRESULT,GetDocMiscStatus)(THIS_ DWORD* pdwStatus) PURE; \
122     STDMETHOD_(HRESULT,EnumViews)(THIS_ IEnumOleDocumentViews** ppEnum, IOleDocumentView** ppView) PURE;
123
124 HRESULT CALLBACK IOleDocument_CreateView_Proxy(
125     IOleDocument* This,
126     IOleInPlaceSite* pIPSite,
127     IStream* pstm,
128     DWORD dwReserved,
129     IOleDocumentView** ppView);
130 void __RPC_STUB IOleDocument_CreateView_Stub(
131     struct IRpcStubBuffer* This,
132     struct IRpcChannelBuffer* pRpcChannelBuffer,
133     PRPC_MESSAGE pRpcMessage,
134     DWORD* pdwStubPhase);
135 HRESULT CALLBACK IOleDocument_GetDocMiscStatus_Proxy(
136     IOleDocument* This,
137     DWORD* pdwStatus);
138 void __RPC_STUB IOleDocument_GetDocMiscStatus_Stub(
139     struct IRpcStubBuffer* This,
140     struct IRpcChannelBuffer* pRpcChannelBuffer,
141     PRPC_MESSAGE pRpcMessage,
142     DWORD* pdwStubPhase);
143 HRESULT CALLBACK IOleDocument_EnumViews_Proxy(
144     IOleDocument* This,
145     IEnumOleDocumentViews** ppEnum,
146     IOleDocumentView** ppView);
147 void __RPC_STUB IOleDocument_EnumViews_Stub(
148     struct IRpcStubBuffer* This,
149     struct IRpcChannelBuffer* pRpcChannelBuffer,
150     PRPC_MESSAGE pRpcMessage,
151     DWORD* pdwStubPhase);
152
153 #endif  /* __IOleDocument_INTERFACE_DEFINED__ */
154
155 #ifndef __IOleDocumentSite_FWD_DEFINED__
156 #define __IOleDocumentSite_FWD_DEFINED__
157 typedef struct IOleDocumentSite IOleDocumentSite;
158 #endif
159
160 typedef IOleDocumentSite *LPOLEDOCUMENTSITE;
161
162 /*****************************************************************************
163  * IOleDocumentSite interface
164  */
165 #ifndef __IOleDocumentSite_INTERFACE_DEFINED__
166 #define __IOleDocumentSite_INTERFACE_DEFINED__
167
168 DEFINE_GUID(IID_IOleDocumentSite, 0xb722bcc7, 0x4e68, 0x101b, 0xa2,0xbc, 0x00,0xaa,0x00,0x40,0x47,0x70);
169 #if defined(__cplusplus) && !defined(CINTERFACE)
170 struct IOleDocumentSite : public IUnknown
171 {
172     virtual HRESULT STDMETHODCALLTYPE ActivateMe(
173         IOleDocumentView* pViewToActivate) = 0;
174
175 };
176 #else
177 typedef struct IOleDocumentSiteVtbl IOleDocumentSiteVtbl;
178 struct IOleDocumentSite {
179     const IOleDocumentSiteVtbl* lpVtbl;
180 };
181 struct IOleDocumentSiteVtbl {
182     ICOM_MSVTABLE_COMPAT_FIELDS
183
184     /*** IUnknown methods ***/
185     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
186         IOleDocumentSite* This,
187         REFIID riid,
188         void** ppvObject);
189
190     ULONG (STDMETHODCALLTYPE *AddRef)(
191         IOleDocumentSite* This);
192
193     ULONG (STDMETHODCALLTYPE *Release)(
194         IOleDocumentSite* This);
195
196     /*** IOleDocumentSite methods ***/
197     HRESULT (STDMETHODCALLTYPE *ActivateMe)(
198         IOleDocumentSite* This,
199         IOleDocumentView* pViewToActivate);
200
201 };
202
203 /*** IUnknown methods ***/
204 #define IOleDocumentSite_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
205 #define IOleDocumentSite_AddRef(p) (p)->lpVtbl->AddRef(p)
206 #define IOleDocumentSite_Release(p) (p)->lpVtbl->Release(p)
207 /*** IOleDocumentSite methods ***/
208 #define IOleDocumentSite_ActivateMe(p,a) (p)->lpVtbl->ActivateMe(p,a)
209
210 #endif
211
212 #define IOleDocumentSite_METHODS \
213     ICOM_MSVTABLE_COMPAT_FIELDS \
214     /*** IUnknown methods ***/ \
215     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
216     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
217     STDMETHOD_(ULONG,Release)(THIS) PURE; \
218     /*** IOleDocumentSite methods ***/ \
219     STDMETHOD_(HRESULT,ActivateMe)(THIS_ IOleDocumentView* pViewToActivate) PURE;
220
221 HRESULT CALLBACK IOleDocumentSite_ActivateMe_Proxy(
222     IOleDocumentSite* This,
223     IOleDocumentView* pViewToActivate);
224 void __RPC_STUB IOleDocumentSite_ActivateMe_Stub(
225     struct IRpcStubBuffer* This,
226     struct IRpcChannelBuffer* pRpcChannelBuffer,
227     PRPC_MESSAGE pRpcMessage,
228     DWORD* pdwStubPhase);
229
230 #endif  /* __IOleDocumentSite_INTERFACE_DEFINED__ */
231
232 typedef IOleDocumentView *LPOLEDOCUMENTVIEW;
233
234 /*****************************************************************************
235  * IOleDocumentView interface
236  */
237 #ifndef __IOleDocumentView_INTERFACE_DEFINED__
238 #define __IOleDocumentView_INTERFACE_DEFINED__
239
240 DEFINE_GUID(IID_IOleDocumentView, 0xb722bcc6, 0x4e68, 0x101b, 0xa2,0xbc, 0x00,0xaa,0x00,0x40,0x47,0x70);
241 #if defined(__cplusplus) && !defined(CINTERFACE)
242 struct IOleDocumentView : public IUnknown
243 {
244     virtual HRESULT STDMETHODCALLTYPE SetInPlaceSite(
245         IOleInPlaceSite* pIPSite) = 0;
246
247     virtual HRESULT STDMETHODCALLTYPE GetInPlaceSite(
248         IOleInPlaceSite** ppIPSite) = 0;
249
250     virtual HRESULT STDMETHODCALLTYPE GetDocument(
251         IUnknown** ppunk) = 0;
252
253     virtual HRESULT STDMETHODCALLTYPE SetRect(
254         LPRECT prcView) = 0;
255
256     virtual HRESULT STDMETHODCALLTYPE GetRect(
257         LPRECT prcView) = 0;
258
259     virtual HRESULT STDMETHODCALLTYPE SetRectComplex(
260         LPRECT prcView,
261         LPRECT prcHScroll,
262         LPRECT prcVScroll,
263         LPRECT prcSizeBox) = 0;
264
265     virtual HRESULT STDMETHODCALLTYPE Show(
266         BOOL fShow) = 0;
267
268     virtual HRESULT STDMETHODCALLTYPE UIActivate(
269         BOOL fUIActivate) = 0;
270
271     virtual HRESULT STDMETHODCALLTYPE Open(
272         ) = 0;
273
274     virtual HRESULT STDMETHODCALLTYPE CloseView(
275         DWORD dwReserved) = 0;
276
277     virtual HRESULT STDMETHODCALLTYPE SaveViewState(
278         LPSTREAM pstm) = 0;
279
280     virtual HRESULT STDMETHODCALLTYPE ApplyViewState(
281         LPSTREAM pstm) = 0;
282
283     virtual HRESULT STDMETHODCALLTYPE Clone(
284         IOleInPlaceSite* pIPSiteNew,
285         IOleDocumentView** ppViewNew) = 0;
286
287 };
288 #else
289 typedef struct IOleDocumentViewVtbl IOleDocumentViewVtbl;
290 struct IOleDocumentView {
291     const IOleDocumentViewVtbl* lpVtbl;
292 };
293 struct IOleDocumentViewVtbl {
294     ICOM_MSVTABLE_COMPAT_FIELDS
295
296     /*** IUnknown methods ***/
297     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
298         IOleDocumentView* This,
299         REFIID riid,
300         void** ppvObject);
301
302     ULONG (STDMETHODCALLTYPE *AddRef)(
303         IOleDocumentView* This);
304
305     ULONG (STDMETHODCALLTYPE *Release)(
306         IOleDocumentView* This);
307
308     /*** IOleDocumentView methods ***/
309     HRESULT (STDMETHODCALLTYPE *SetInPlaceSite)(
310         IOleDocumentView* This,
311         IOleInPlaceSite* pIPSite);
312
313     HRESULT (STDMETHODCALLTYPE *GetInPlaceSite)(
314         IOleDocumentView* This,
315         IOleInPlaceSite** ppIPSite);
316
317     HRESULT (STDMETHODCALLTYPE *GetDocument)(
318         IOleDocumentView* This,
319         IUnknown** ppunk);
320
321     HRESULT (STDMETHODCALLTYPE *SetRect)(
322         IOleDocumentView* This,
323         LPRECT prcView);
324
325     HRESULT (STDMETHODCALLTYPE *GetRect)(
326         IOleDocumentView* This,
327         LPRECT prcView);
328
329     HRESULT (STDMETHODCALLTYPE *SetRectComplex)(
330         IOleDocumentView* This,
331         LPRECT prcView,
332         LPRECT prcHScroll,
333         LPRECT prcVScroll,
334         LPRECT prcSizeBox);
335
336     HRESULT (STDMETHODCALLTYPE *Show)(
337         IOleDocumentView* This,
338         BOOL fShow);
339
340     HRESULT (STDMETHODCALLTYPE *UIActivate)(
341         IOleDocumentView* This,
342         BOOL fUIActivate);
343
344     HRESULT (STDMETHODCALLTYPE *Open)(
345         IOleDocumentView* This);
346
347     HRESULT (STDMETHODCALLTYPE *CloseView)(
348         IOleDocumentView* This,
349         DWORD dwReserved);
350
351     HRESULT (STDMETHODCALLTYPE *SaveViewState)(
352         IOleDocumentView* This,
353         LPSTREAM pstm);
354
355     HRESULT (STDMETHODCALLTYPE *ApplyViewState)(
356         IOleDocumentView* This,
357         LPSTREAM pstm);
358
359     HRESULT (STDMETHODCALLTYPE *Clone)(
360         IOleDocumentView* This,
361         IOleInPlaceSite* pIPSiteNew,
362         IOleDocumentView** ppViewNew);
363
364 };
365
366 /*** IUnknown methods ***/
367 #define IOleDocumentView_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
368 #define IOleDocumentView_AddRef(p) (p)->lpVtbl->AddRef(p)
369 #define IOleDocumentView_Release(p) (p)->lpVtbl->Release(p)
370 /*** IOleDocumentView methods ***/
371 #define IOleDocumentView_SetInPlaceSite(p,a) (p)->lpVtbl->SetInPlaceSite(p,a)
372 #define IOleDocumentView_GetInPlaceSite(p,a) (p)->lpVtbl->GetInPlaceSite(p,a)
373 #define IOleDocumentView_GetDocument(p,a) (p)->lpVtbl->GetDocument(p,a)
374 #define IOleDocumentView_SetRect(p,a) (p)->lpVtbl->SetRect(p,a)
375 #define IOleDocumentView_GetRect(p,a) (p)->lpVtbl->GetRect(p,a)
376 #define IOleDocumentView_SetRectComplex(p,a,b,c,d) (p)->lpVtbl->SetRectComplex(p,a,b,c,d)
377 #define IOleDocumentView_Show(p,a) (p)->lpVtbl->Show(p,a)
378 #define IOleDocumentView_UIActivate(p,a) (p)->lpVtbl->UIActivate(p,a)
379 #define IOleDocumentView_Open(p) (p)->lpVtbl->Open(p)
380 #define IOleDocumentView_CloseView(p,a) (p)->lpVtbl->CloseView(p,a)
381 #define IOleDocumentView_SaveViewState(p,a) (p)->lpVtbl->SaveViewState(p,a)
382 #define IOleDocumentView_ApplyViewState(p,a) (p)->lpVtbl->ApplyViewState(p,a)
383 #define IOleDocumentView_Clone(p,a,b) (p)->lpVtbl->Clone(p,a,b)
384
385 #endif
386
387 #define IOleDocumentView_METHODS \
388     ICOM_MSVTABLE_COMPAT_FIELDS \
389     /*** IUnknown methods ***/ \
390     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
391     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
392     STDMETHOD_(ULONG,Release)(THIS) PURE; \
393     /*** IOleDocumentView methods ***/ \
394     STDMETHOD_(HRESULT,SetInPlaceSite)(THIS_ IOleInPlaceSite* pIPSite) PURE; \
395     STDMETHOD_(HRESULT,GetInPlaceSite)(THIS_ IOleInPlaceSite** ppIPSite) PURE; \
396     STDMETHOD_(HRESULT,GetDocument)(THIS_ IUnknown** ppunk) PURE; \
397     STDMETHOD_(HRESULT,SetRect)(THIS_ LPRECT prcView) PURE; \
398     STDMETHOD_(HRESULT,GetRect)(THIS_ LPRECT prcView) PURE; \
399     STDMETHOD_(HRESULT,SetRectComplex)(THIS_ LPRECT prcView, LPRECT prcHScroll, LPRECT prcVScroll, LPRECT prcSizeBox) PURE; \
400     STDMETHOD_(HRESULT,Show)(THIS_ BOOL fShow) PURE; \
401     STDMETHOD_(HRESULT,UIActivate)(THIS_ BOOL fUIActivate) PURE; \
402     STDMETHOD_(HRESULT,Open)(THIS) PURE; \
403     STDMETHOD_(HRESULT,CloseView)(THIS_ DWORD dwReserved) PURE; \
404     STDMETHOD_(HRESULT,SaveViewState)(THIS_ LPSTREAM pstm) PURE; \
405     STDMETHOD_(HRESULT,ApplyViewState)(THIS_ LPSTREAM pstm) PURE; \
406     STDMETHOD_(HRESULT,Clone)(THIS_ IOleInPlaceSite* pIPSiteNew, IOleDocumentView** ppViewNew) PURE;
407
408 HRESULT CALLBACK IOleDocumentView_SetInPlaceSite_Proxy(
409     IOleDocumentView* This,
410     IOleInPlaceSite* pIPSite);
411 void __RPC_STUB IOleDocumentView_SetInPlaceSite_Stub(
412     struct IRpcStubBuffer* This,
413     struct IRpcChannelBuffer* pRpcChannelBuffer,
414     PRPC_MESSAGE pRpcMessage,
415     DWORD* pdwStubPhase);
416 HRESULT CALLBACK IOleDocumentView_GetInPlaceSite_Proxy(
417     IOleDocumentView* This,
418     IOleInPlaceSite** ppIPSite);
419 void __RPC_STUB IOleDocumentView_GetInPlaceSite_Stub(
420     struct IRpcStubBuffer* This,
421     struct IRpcChannelBuffer* pRpcChannelBuffer,
422     PRPC_MESSAGE pRpcMessage,
423     DWORD* pdwStubPhase);
424 HRESULT CALLBACK IOleDocumentView_GetDocument_Proxy(
425     IOleDocumentView* This,
426     IUnknown** ppunk);
427 void __RPC_STUB IOleDocumentView_GetDocument_Stub(
428     struct IRpcStubBuffer* This,
429     struct IRpcChannelBuffer* pRpcChannelBuffer,
430     PRPC_MESSAGE pRpcMessage,
431     DWORD* pdwStubPhase);
432 HRESULT CALLBACK IOleDocumentView_SetRect_Proxy(
433     IOleDocumentView* This,
434     LPRECT prcView);
435 void __RPC_STUB IOleDocumentView_SetRect_Stub(
436     struct IRpcStubBuffer* This,
437     struct IRpcChannelBuffer* pRpcChannelBuffer,
438     PRPC_MESSAGE pRpcMessage,
439     DWORD* pdwStubPhase);
440 HRESULT CALLBACK IOleDocumentView_GetRect_Proxy(
441     IOleDocumentView* This,
442     LPRECT prcView);
443 void __RPC_STUB IOleDocumentView_GetRect_Stub(
444     struct IRpcStubBuffer* This,
445     struct IRpcChannelBuffer* pRpcChannelBuffer,
446     PRPC_MESSAGE pRpcMessage,
447     DWORD* pdwStubPhase);
448 HRESULT CALLBACK IOleDocumentView_SetRectComplex_Proxy(
449     IOleDocumentView* This,
450     LPRECT prcView,
451     LPRECT prcHScroll,
452     LPRECT prcVScroll,
453     LPRECT prcSizeBox);
454 void __RPC_STUB IOleDocumentView_SetRectComplex_Stub(
455     struct IRpcStubBuffer* This,
456     struct IRpcChannelBuffer* pRpcChannelBuffer,
457     PRPC_MESSAGE pRpcMessage,
458     DWORD* pdwStubPhase);
459 HRESULT CALLBACK IOleDocumentView_Show_Proxy(
460     IOleDocumentView* This,
461     BOOL fShow);
462 void __RPC_STUB IOleDocumentView_Show_Stub(
463     struct IRpcStubBuffer* This,
464     struct IRpcChannelBuffer* pRpcChannelBuffer,
465     PRPC_MESSAGE pRpcMessage,
466     DWORD* pdwStubPhase);
467 HRESULT CALLBACK IOleDocumentView_UIActivate_Proxy(
468     IOleDocumentView* This,
469     BOOL fUIActivate);
470 void __RPC_STUB IOleDocumentView_UIActivate_Stub(
471     struct IRpcStubBuffer* This,
472     struct IRpcChannelBuffer* pRpcChannelBuffer,
473     PRPC_MESSAGE pRpcMessage,
474     DWORD* pdwStubPhase);
475 HRESULT CALLBACK IOleDocumentView_Open_Proxy(
476     IOleDocumentView* This);
477 void __RPC_STUB IOleDocumentView_Open_Stub(
478     struct IRpcStubBuffer* This,
479     struct IRpcChannelBuffer* pRpcChannelBuffer,
480     PRPC_MESSAGE pRpcMessage,
481     DWORD* pdwStubPhase);
482 HRESULT CALLBACK IOleDocumentView_CloseView_Proxy(
483     IOleDocumentView* This,
484     DWORD dwReserved);
485 void __RPC_STUB IOleDocumentView_CloseView_Stub(
486     struct IRpcStubBuffer* This,
487     struct IRpcChannelBuffer* pRpcChannelBuffer,
488     PRPC_MESSAGE pRpcMessage,
489     DWORD* pdwStubPhase);
490 HRESULT CALLBACK IOleDocumentView_SaveViewState_Proxy(
491     IOleDocumentView* This,
492     LPSTREAM pstm);
493 void __RPC_STUB IOleDocumentView_SaveViewState_Stub(
494     struct IRpcStubBuffer* This,
495     struct IRpcChannelBuffer* pRpcChannelBuffer,
496     PRPC_MESSAGE pRpcMessage,
497     DWORD* pdwStubPhase);
498 HRESULT CALLBACK IOleDocumentView_ApplyViewState_Proxy(
499     IOleDocumentView* This,
500     LPSTREAM pstm);
501 void __RPC_STUB IOleDocumentView_ApplyViewState_Stub(
502     struct IRpcStubBuffer* This,
503     struct IRpcChannelBuffer* pRpcChannelBuffer,
504     PRPC_MESSAGE pRpcMessage,
505     DWORD* pdwStubPhase);
506 HRESULT CALLBACK IOleDocumentView_Clone_Proxy(
507     IOleDocumentView* This,
508     IOleInPlaceSite* pIPSiteNew,
509     IOleDocumentView** ppViewNew);
510 void __RPC_STUB IOleDocumentView_Clone_Stub(
511     struct IRpcStubBuffer* This,
512     struct IRpcChannelBuffer* pRpcChannelBuffer,
513     PRPC_MESSAGE pRpcMessage,
514     DWORD* pdwStubPhase);
515
516 #endif  /* __IOleDocumentView_INTERFACE_DEFINED__ */
517
518 typedef IEnumOleDocumentViews *LPENUMOLEDOCUMENTVIEWS;
519
520 /*****************************************************************************
521  * IEnumOleDocumentViews interface
522  */
523 #ifndef __IEnumOleDocumentViews_INTERFACE_DEFINED__
524 #define __IEnumOleDocumentViews_INTERFACE_DEFINED__
525
526 DEFINE_GUID(IID_IEnumOleDocumentViews, 0xb722bcc8, 0x4e68, 0x101b, 0xa2,0xbc, 0x00,0xaa,0x00,0x40,0x47,0x70);
527 #if defined(__cplusplus) && !defined(CINTERFACE)
528 struct IEnumOleDocumentViews : public IUnknown
529 {
530     virtual HRESULT STDMETHODCALLTYPE Next(
531         ULONG cViews,
532         IOleDocumentView** rgpView,
533         ULONG* pcFetched) = 0;
534
535     virtual HRESULT STDMETHODCALLTYPE Skip(
536         ULONG cViews) = 0;
537
538     virtual HRESULT STDMETHODCALLTYPE Reset(
539         ) = 0;
540
541     virtual HRESULT STDMETHODCALLTYPE Clone(
542         IEnumOleDocumentViews** ppEnum) = 0;
543
544 };
545 #else
546 typedef struct IEnumOleDocumentViewsVtbl IEnumOleDocumentViewsVtbl;
547 struct IEnumOleDocumentViews {
548     const IEnumOleDocumentViewsVtbl* lpVtbl;
549 };
550 struct IEnumOleDocumentViewsVtbl {
551     ICOM_MSVTABLE_COMPAT_FIELDS
552
553     /*** IUnknown methods ***/
554     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
555         IEnumOleDocumentViews* This,
556         REFIID riid,
557         void** ppvObject);
558
559     ULONG (STDMETHODCALLTYPE *AddRef)(
560         IEnumOleDocumentViews* This);
561
562     ULONG (STDMETHODCALLTYPE *Release)(
563         IEnumOleDocumentViews* This);
564
565     /*** IEnumOleDocumentViews methods ***/
566     HRESULT (STDMETHODCALLTYPE *Next)(
567         IEnumOleDocumentViews* This,
568         ULONG cViews,
569         IOleDocumentView** rgpView,
570         ULONG* pcFetched);
571
572     HRESULT (STDMETHODCALLTYPE *Skip)(
573         IEnumOleDocumentViews* This,
574         ULONG cViews);
575
576     HRESULT (STDMETHODCALLTYPE *Reset)(
577         IEnumOleDocumentViews* This);
578
579     HRESULT (STDMETHODCALLTYPE *Clone)(
580         IEnumOleDocumentViews* This,
581         IEnumOleDocumentViews** ppEnum);
582
583 };
584
585 /*** IUnknown methods ***/
586 #define IEnumOleDocumentViews_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
587 #define IEnumOleDocumentViews_AddRef(p) (p)->lpVtbl->AddRef(p)
588 #define IEnumOleDocumentViews_Release(p) (p)->lpVtbl->Release(p)
589 /*** IEnumOleDocumentViews methods ***/
590 #define IEnumOleDocumentViews_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
591 #define IEnumOleDocumentViews_Skip(p,a) (p)->lpVtbl->Skip(p,a)
592 #define IEnumOleDocumentViews_Reset(p) (p)->lpVtbl->Reset(p)
593 #define IEnumOleDocumentViews_Clone(p,a) (p)->lpVtbl->Clone(p,a)
594
595 #endif
596
597 #define IEnumOleDocumentViews_METHODS \
598     ICOM_MSVTABLE_COMPAT_FIELDS \
599     /*** IUnknown methods ***/ \
600     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
601     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
602     STDMETHOD_(ULONG,Release)(THIS) PURE; \
603     /*** IEnumOleDocumentViews methods ***/ \
604     STDMETHOD_(HRESULT,Next)(THIS_ ULONG cViews, IOleDocumentView** rgpView, ULONG* pcFetched) PURE; \
605     STDMETHOD_(HRESULT,Skip)(THIS_ ULONG cViews) PURE; \
606     STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
607     STDMETHOD_(HRESULT,Clone)(THIS_ IEnumOleDocumentViews** ppEnum) PURE;
608
609 HRESULT CALLBACK IEnumOleDocumentViews_RemoteNext_Proxy(
610     IEnumOleDocumentViews* This,
611     ULONG cViews,
612     IOleDocumentView** rgpView,
613     ULONG* pcFetched);
614 void __RPC_STUB IEnumOleDocumentViews_RemoteNext_Stub(
615     struct IRpcStubBuffer* This,
616     struct IRpcChannelBuffer* pRpcChannelBuffer,
617     PRPC_MESSAGE pRpcMessage,
618     DWORD* pdwStubPhase);
619 HRESULT CALLBACK IEnumOleDocumentViews_Next_Proxy(
620     IEnumOleDocumentViews* This,
621     ULONG cViews,
622     IOleDocumentView** rgpView,
623     ULONG* pcFetched);
624 HRESULT __RPC_STUB IEnumOleDocumentViews_Next_Stub(
625     IEnumOleDocumentViews* This,
626     ULONG cViews,
627     IOleDocumentView** rgpView,
628     ULONG* pcFetched);
629 HRESULT CALLBACK IEnumOleDocumentViews_Skip_Proxy(
630     IEnumOleDocumentViews* This,
631     ULONG cViews);
632 void __RPC_STUB IEnumOleDocumentViews_Skip_Stub(
633     struct IRpcStubBuffer* This,
634     struct IRpcChannelBuffer* pRpcChannelBuffer,
635     PRPC_MESSAGE pRpcMessage,
636     DWORD* pdwStubPhase);
637 HRESULT CALLBACK IEnumOleDocumentViews_Reset_Proxy(
638     IEnumOleDocumentViews* This);
639 void __RPC_STUB IEnumOleDocumentViews_Reset_Stub(
640     struct IRpcStubBuffer* This,
641     struct IRpcChannelBuffer* pRpcChannelBuffer,
642     PRPC_MESSAGE pRpcMessage,
643     DWORD* pdwStubPhase);
644 HRESULT CALLBACK IEnumOleDocumentViews_Clone_Proxy(
645     IEnumOleDocumentViews* This,
646     IEnumOleDocumentViews** ppEnum);
647 void __RPC_STUB IEnumOleDocumentViews_Clone_Stub(
648     struct IRpcStubBuffer* This,
649     struct IRpcChannelBuffer* pRpcChannelBuffer,
650     PRPC_MESSAGE pRpcMessage,
651     DWORD* pdwStubPhase);
652
653 #endif  /* __IEnumOleDocumentViews_INTERFACE_DEFINED__ */
654
655 #ifndef __IOleCommandTarget_FWD_DEFINED__
656 #define __IOleCommandTarget_FWD_DEFINED__
657 typedef struct IOleCommandTarget IOleCommandTarget;
658 #endif
659
660 typedef IOleCommandTarget *LPOLECOMMANDTARGET;
661
662 typedef enum {
663     OLECMDF_SUPPORTED = 0x1,
664     OLECMDF_ENABLED = 0x2,
665     OLECMDF_LATCHED = 0x4,
666     OLECMDF_NINCHED = 0x8,
667     OLECMDF_INVISIBLE = 0x10,
668     OLECMDF_DEFHIDEONCTXTMENU = 0x20
669 } OLECMDF;
670
671 typedef struct _tagOLECMD {
672     ULONG cmdID;
673     DWORD cmdf;
674 } OLECMD;
675
676 typedef struct _tagOLECMDTEXT {
677     DWORD cmdtextf;
678     ULONG cwActual;
679     ULONG cwBuf;
680     WCHAR rgwz[1];
681 } OLECMDTEXT;
682
683 typedef enum {
684     OLECMDTEXTF_NONE = 0,
685     OLECMDTEXTF_NAME = 1,
686     OLECMDTEXTF_STATUS = 2
687 } OLECMDTEXTF;
688
689 typedef enum {
690     OLECMDEXECOPT_DODEFAULT = 0,
691     OLECMDEXECOPT_PROMPTUSER = 1,
692     OLECMDEXECOPT_DONTPROMPTUSER = 2,
693     OLECMDEXECOPT_SHOWHELP = 3
694 } OLECMDEXECOPT;
695
696 typedef enum OLECMDID {
697     OLECMDID_OPEN = 1,
698     OLECMDID_NEW = 2,
699     OLECMDID_SAVE = 3,
700     OLECMDID_SAVEAS = 4,
701     OLECMDID_SAVECOPYAS = 5,
702     OLECMDID_PRINT = 6,
703     OLECMDID_PRINTPREVIEW = 7,
704     OLECMDID_PAGESETUP = 8,
705     OLECMDID_SPELL = 9,
706     OLECMDID_PROPERTIES = 10,
707     OLECMDID_CUT = 11,
708     OLECMDID_COPY = 12,
709     OLECMDID_PASTE = 13,
710     OLECMDID_PASTESPECIAL = 14,
711     OLECMDID_UNDO = 15,
712     OLECMDID_REDO = 16,
713     OLECMDID_SELECTALL = 17,
714     OLECMDID_CLEARSELECTION = 18,
715     OLECMDID_ZOOM = 19,
716     OLECMDID_GETZOOMRANGE = 20,
717     OLECMDID_UPDATECOMMANDS = 21,
718     OLECMDID_REFRESH = 22,
719     OLECMDID_STOP = 23,
720     OLECMDID_HIDETOOLBARS = 24,
721     OLECMDID_SETPROGRESSMAX = 25,
722     OLECMDID_SETPROGRESSPOS = 26,
723     OLECMDID_SETPROGRESSTEXT = 27,
724     OLECMDID_SETTITLE = 28,
725     OLECMDID_SETDOWNLOADSTATE = 29,
726     OLECMDID_STOPDOWNLOAD = 30,
727     OLECMDID_ONTOOLBARACTIVATED = 31,
728     OLECMDID_FIND = 32,
729     OLECMDID_DELETE = 33,
730     OLECMDID_HTTPEQUIV = 34,
731     OLECMDID_HTTPEQUIV_DONE = 35,
732     OLECMDID_ENABLE_INTERACTION = 36,
733     OLECMDID_ONUNLOAD = 37,
734     OLECMDID_PROPERTYBAG2 = 38,
735     OLECMDID_PREREFRESH = 39,
736     OLECMDID_SHOWSCRIPTERROR = 40,
737     OLECMDID_SHOWMESSAGE = 41,
738     OLECMDID_SHOWFIND = 42,
739     OLECMDID_SHOWPAGESETUP = 43,
740     OLECMDID_SHOWPRINT = 44,
741     OLECMDID_CLOSE = 45,
742     OLECMDID_ALLOWUILESSSAVEAS = 46,
743     OLECMDID_DONTDOWNLOADCSS = 47,
744     OLECMDID_UPDATEPAGESTATUS = 48,
745     OLECMDID_PRINT2 = 49,
746     OLECMDID_PRINTPREVIEW2 = 50,
747     OLECMDID_SETPRINTTEMPLATE = 51,
748     OLECMDID_GETPRINTTEMPLATE = 52
749 } OLECMDID;
750
751 /*****************************************************************************
752  * IOleCommandTarget interface
753  */
754 #ifndef __IOleCommandTarget_INTERFACE_DEFINED__
755 #define __IOleCommandTarget_INTERFACE_DEFINED__
756
757 DEFINE_GUID(IID_IOleCommandTarget, 0xb722bccb, 0x4e68, 0x101b, 0xa2,0xbc, 0x00,0xaa,0x00,0x40,0x47,0x70);
758 #if defined(__cplusplus) && !defined(CINTERFACE)
759 struct IOleCommandTarget : public IUnknown
760 {
761     virtual HRESULT STDMETHODCALLTYPE QueryStatus(
762         const GUID* pguidCmdGroup,
763         ULONG cCmds,
764         OLECMD prgCmds[],
765         OLECMDTEXT* pCmdText) = 0;
766
767     virtual HRESULT STDMETHODCALLTYPE Exec(
768         const GUID* pguidCmdGroup,
769         DWORD nCmdID,
770         DWORD nCmdexecopt,
771         VARIANT* pvaIn,
772         VARIANT* pvaOut) = 0;
773
774 };
775 #else
776 typedef struct IOleCommandTargetVtbl IOleCommandTargetVtbl;
777 struct IOleCommandTarget {
778     const IOleCommandTargetVtbl* lpVtbl;
779 };
780 struct IOleCommandTargetVtbl {
781     ICOM_MSVTABLE_COMPAT_FIELDS
782
783     /*** IUnknown methods ***/
784     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
785         IOleCommandTarget* This,
786         REFIID riid,
787         void** ppvObject);
788
789     ULONG (STDMETHODCALLTYPE *AddRef)(
790         IOleCommandTarget* This);
791
792     ULONG (STDMETHODCALLTYPE *Release)(
793         IOleCommandTarget* This);
794
795     /*** IOleCommandTarget methods ***/
796     HRESULT (STDMETHODCALLTYPE *QueryStatus)(
797         IOleCommandTarget* This,
798         const GUID* pguidCmdGroup,
799         ULONG cCmds,
800         OLECMD prgCmds[],
801         OLECMDTEXT* pCmdText);
802
803     HRESULT (STDMETHODCALLTYPE *Exec)(
804         IOleCommandTarget* This,
805         const GUID* pguidCmdGroup,
806         DWORD nCmdID,
807         DWORD nCmdexecopt,
808         VARIANT* pvaIn,
809         VARIANT* pvaOut);
810
811 };
812
813 /*** IUnknown methods ***/
814 #define IOleCommandTarget_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
815 #define IOleCommandTarget_AddRef(p) (p)->lpVtbl->AddRef(p)
816 #define IOleCommandTarget_Release(p) (p)->lpVtbl->Release(p)
817 /*** IOleCommandTarget methods ***/
818 #define IOleCommandTarget_QueryStatus(p,a,b,c,d) (p)->lpVtbl->QueryStatus(p,a,b,c,d)
819 #define IOleCommandTarget_Exec(p,a,b,c,d,e) (p)->lpVtbl->Exec(p,a,b,c,d,e)
820
821 #endif
822
823 #define IOleCommandTarget_METHODS \
824     ICOM_MSVTABLE_COMPAT_FIELDS \
825     /*** IUnknown methods ***/ \
826     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
827     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
828     STDMETHOD_(ULONG,Release)(THIS) PURE; \
829     /*** IOleCommandTarget methods ***/ \
830     STDMETHOD_(HRESULT,QueryStatus)(THIS_ const GUID* pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT* pCmdText) PURE; \
831     STDMETHOD_(HRESULT,Exec)(THIS_ const GUID* pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANT* pvaIn, VARIANT* pvaOut) PURE;
832
833 HRESULT CALLBACK IOleCommandTarget_QueryStatus_Proxy(
834     IOleCommandTarget* This,
835     const GUID* pguidCmdGroup,
836     ULONG cCmds,
837     OLECMD prgCmds[],
838     OLECMDTEXT* pCmdText);
839 void __RPC_STUB IOleCommandTarget_QueryStatus_Stub(
840     struct IRpcStubBuffer* This,
841     struct IRpcChannelBuffer* pRpcChannelBuffer,
842     PRPC_MESSAGE pRpcMessage,
843     DWORD* pdwStubPhase);
844 HRESULT CALLBACK IOleCommandTarget_Exec_Proxy(
845     IOleCommandTarget* This,
846     const GUID* pguidCmdGroup,
847     DWORD nCmdID,
848     DWORD nCmdexecopt,
849     VARIANT* pvaIn,
850     VARIANT* pvaOut);
851 void __RPC_STUB IOleCommandTarget_Exec_Stub(
852     struct IRpcStubBuffer* This,
853     struct IRpcChannelBuffer* pRpcChannelBuffer,
854     PRPC_MESSAGE pRpcMessage,
855     DWORD* pdwStubPhase);
856
857 #endif  /* __IOleCommandTarget_INTERFACE_DEFINED__ */
858
859 #ifndef __IContinueCallback_FWD_DEFINED__
860 #define __IContinueCallback_FWD_DEFINED__
861 typedef struct IContinueCallback IContinueCallback;
862 #endif
863
864 typedef IContinueCallback *LPCONTINUECALLBACK;
865
866 /*****************************************************************************
867  * IContinueCallback interface
868  */
869 #ifndef __IContinueCallback_INTERFACE_DEFINED__
870 #define __IContinueCallback_INTERFACE_DEFINED__
871
872 DEFINE_GUID(IID_IContinueCallback, 0xb722bcca, 0x4e68, 0x101b, 0xa2,0xbc, 0x00,0xaa,0x00,0x40,0x47,0x70);
873 #if defined(__cplusplus) && !defined(CINTERFACE)
874 struct IContinueCallback : public IUnknown
875 {
876     virtual HRESULT STDMETHODCALLTYPE FContinue(
877         ) = 0;
878
879     virtual HRESULT STDMETHODCALLTYPE FContinuePrinting(
880         LONG nCntPrinted,
881         LONG nCurPage,
882         WCHAR* pwszPrintStatus) = 0;
883
884 };
885 #else
886 typedef struct IContinueCallbackVtbl IContinueCallbackVtbl;
887 struct IContinueCallback {
888     const IContinueCallbackVtbl* lpVtbl;
889 };
890 struct IContinueCallbackVtbl {
891     ICOM_MSVTABLE_COMPAT_FIELDS
892
893     /*** IUnknown methods ***/
894     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
895         IContinueCallback* This,
896         REFIID riid,
897         void** ppvObject);
898
899     ULONG (STDMETHODCALLTYPE *AddRef)(
900         IContinueCallback* This);
901
902     ULONG (STDMETHODCALLTYPE *Release)(
903         IContinueCallback* This);
904
905     /*** IContinueCallback methods ***/
906     HRESULT (STDMETHODCALLTYPE *FContinue)(
907         IContinueCallback* This);
908
909     HRESULT (STDMETHODCALLTYPE *FContinuePrinting)(
910         IContinueCallback* This,
911         LONG nCntPrinted,
912         LONG nCurPage,
913         WCHAR* pwszPrintStatus);
914
915 };
916
917 /*** IUnknown methods ***/
918 #define IContinueCallback_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
919 #define IContinueCallback_AddRef(p) (p)->lpVtbl->AddRef(p)
920 #define IContinueCallback_Release(p) (p)->lpVtbl->Release(p)
921 /*** IContinueCallback methods ***/
922 #define IContinueCallback_FContinue(p) (p)->lpVtbl->FContinue(p)
923 #define IContinueCallback_FContinuePrinting(p,a,b,c) (p)->lpVtbl->FContinuePrinting(p,a,b,c)
924
925 #endif
926
927 #define IContinueCallback_METHODS \
928     ICOM_MSVTABLE_COMPAT_FIELDS \
929     /*** IUnknown methods ***/ \
930     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
931     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
932     STDMETHOD_(ULONG,Release)(THIS) PURE; \
933     /*** IContinueCallback methods ***/ \
934     STDMETHOD_(HRESULT,FContinue)(THIS) PURE; \
935     STDMETHOD_(HRESULT,FContinuePrinting)(THIS_ LONG nCntPrinted, LONG nCurPage, WCHAR* pwszPrintStatus) PURE;
936
937 HRESULT CALLBACK IContinueCallback_FContinue_Proxy(
938     IContinueCallback* This);
939 void __RPC_STUB IContinueCallback_FContinue_Stub(
940     struct IRpcStubBuffer* This,
941     struct IRpcChannelBuffer* pRpcChannelBuffer,
942     PRPC_MESSAGE pRpcMessage,
943     DWORD* pdwStubPhase);
944 HRESULT CALLBACK IContinueCallback_FContinuePrinting_Proxy(
945     IContinueCallback* This,
946     LONG nCntPrinted,
947     LONG nCurPage,
948     WCHAR* pwszPrintStatus);
949 void __RPC_STUB IContinueCallback_FContinuePrinting_Stub(
950     struct IRpcStubBuffer* This,
951     struct IRpcChannelBuffer* pRpcChannelBuffer,
952     PRPC_MESSAGE pRpcMessage,
953     DWORD* pdwStubPhase);
954
955 #endif  /* __IContinueCallback_INTERFACE_DEFINED__ */
956
957 #ifndef __IPrint_FWD_DEFINED__
958 #define __IPrint_FWD_DEFINED__
959 typedef struct IPrint IPrint;
960 #endif
961
962 typedef IPrint *LPPRINT;
963
964 typedef enum {
965     PRINTFLAG_MAYBOTHERUSER = 1,
966     PRINTFLAG_PROMPTUSER = 2,
967     PRINTFLAG_USERMAYCHANGEPRINTER = 4,
968     PRINTFLAG_RECOMPOSETODEVICE = 8,
969     PRINTFLAG_DONTACTUALLYPRINT = 16,
970     PRINTFLAG_FORCEPROPERTIES = 32,
971     PRINTFLAG_PRINTTOFILE = 64
972 } PRINTFLAG;
973
974 typedef struct tagPAGERANGE {
975     LONG nFromPage;
976     LONG nToPage;
977 } PAGERANGE;
978
979 typedef struct tagPAGESET {
980     ULONG cbStruct;
981     BOOL fOddPages;
982     BOOL fEvenPages;
983     ULONG cPageRange;
984     PAGERANGE rgPages[1];
985 } PAGESET;
986
987 /*****************************************************************************
988  * IPrint interface
989  */
990 #ifndef __IPrint_INTERFACE_DEFINED__
991 #define __IPrint_INTERFACE_DEFINED__
992
993 DEFINE_GUID(IID_IPrint, 0xb722bcc9, 0x4e68, 0x101b, 0xa2,0xbc, 0x00,0xaa,0x00,0x40,0x47,0x70);
994 #if defined(__cplusplus) && !defined(CINTERFACE)
995 struct IPrint : public IUnknown
996 {
997     virtual HRESULT STDMETHODCALLTYPE SetInitialPageNum(
998         LONG nFirstPage) = 0;
999
1000     virtual HRESULT STDMETHODCALLTYPE GetPageInfo(
1001         LONG* pnFirstPage,
1002         LONG* pcPages) = 0;
1003
1004     virtual HRESULT STDMETHODCALLTYPE Print(
1005         DWORD grfFlags,
1006         DVTARGETDEVICE** pptd,
1007         PAGESET** ppPageSet,
1008         STGMEDIUM* pstgmOptions,
1009         IContinueCallback* pcallback,
1010         LONG nFirstPage,
1011         LONG* pcPagesPrinted,
1012         LONG* pnLastPage) = 0;
1013
1014 };
1015 #else
1016 typedef struct IPrintVtbl IPrintVtbl;
1017 struct IPrint {
1018     const IPrintVtbl* lpVtbl;
1019 };
1020 struct IPrintVtbl {
1021     ICOM_MSVTABLE_COMPAT_FIELDS
1022
1023     /*** IUnknown methods ***/
1024     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1025         IPrint* This,
1026         REFIID riid,
1027         void** ppvObject);
1028
1029     ULONG (STDMETHODCALLTYPE *AddRef)(
1030         IPrint* This);
1031
1032     ULONG (STDMETHODCALLTYPE *Release)(
1033         IPrint* This);
1034
1035     /*** IPrint methods ***/
1036     HRESULT (STDMETHODCALLTYPE *SetInitialPageNum)(
1037         IPrint* This,
1038         LONG nFirstPage);
1039
1040     HRESULT (STDMETHODCALLTYPE *GetPageInfo)(
1041         IPrint* This,
1042         LONG* pnFirstPage,
1043         LONG* pcPages);
1044
1045     HRESULT (STDMETHODCALLTYPE *Print)(
1046         IPrint* This,
1047         DWORD grfFlags,
1048         DVTARGETDEVICE** pptd,
1049         PAGESET** ppPageSet,
1050         STGMEDIUM* pstgmOptions,
1051         IContinueCallback* pcallback,
1052         LONG nFirstPage,
1053         LONG* pcPagesPrinted,
1054         LONG* pnLastPage);
1055
1056 };
1057
1058 /*** IUnknown methods ***/
1059 #define IPrint_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1060 #define IPrint_AddRef(p) (p)->lpVtbl->AddRef(p)
1061 #define IPrint_Release(p) (p)->lpVtbl->Release(p)
1062 /*** IPrint methods ***/
1063 #define IPrint_SetInitialPageNum(p,a) (p)->lpVtbl->SetInitialPageNum(p,a)
1064 #define IPrint_GetPageInfo(p,a,b) (p)->lpVtbl->GetPageInfo(p,a,b)
1065 #define IPrint_Print(p,a,b,c,d,e,f,g,h) (p)->lpVtbl->Print(p,a,b,c,d,e,f,g,h)
1066
1067 #endif
1068
1069 #define IPrint_METHODS \
1070     ICOM_MSVTABLE_COMPAT_FIELDS \
1071     /*** IUnknown methods ***/ \
1072     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1073     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1074     STDMETHOD_(ULONG,Release)(THIS) PURE; \
1075     /*** IPrint methods ***/ \
1076     STDMETHOD_(HRESULT,SetInitialPageNum)(THIS_ LONG nFirstPage) PURE; \
1077     STDMETHOD_(HRESULT,GetPageInfo)(THIS_ LONG* pnFirstPage, LONG* pcPages) PURE; \
1078     STDMETHOD_(HRESULT,Print)(THIS_ DWORD grfFlags, DVTARGETDEVICE** pptd, PAGESET** ppPageSet, STGMEDIUM* pstgmOptions, IContinueCallback* pcallback, LONG nFirstPage, LONG* pcPagesPrinted, LONG* pnLastPage) PURE;
1079
1080 HRESULT CALLBACK IPrint_SetInitialPageNum_Proxy(
1081     IPrint* This,
1082     LONG nFirstPage);
1083 void __RPC_STUB IPrint_SetInitialPageNum_Stub(
1084     struct IRpcStubBuffer* This,
1085     struct IRpcChannelBuffer* pRpcChannelBuffer,
1086     PRPC_MESSAGE pRpcMessage,
1087     DWORD* pdwStubPhase);
1088 HRESULT CALLBACK IPrint_GetPageInfo_Proxy(
1089     IPrint* This,
1090     LONG* pnFirstPage,
1091     LONG* pcPages);
1092 void __RPC_STUB IPrint_GetPageInfo_Stub(
1093     struct IRpcStubBuffer* This,
1094     struct IRpcChannelBuffer* pRpcChannelBuffer,
1095     PRPC_MESSAGE pRpcMessage,
1096     DWORD* pdwStubPhase);
1097 HRESULT CALLBACK IPrint_RemotePrint_Proxy(
1098     IPrint* This,
1099     DWORD grfFlags,
1100     DVTARGETDEVICE** pptd,
1101     PAGESET** pppageset,
1102     RemSTGMEDIUM* pstgmOptions,
1103     IContinueCallback* pcallback,
1104     LONG nFirstPage,
1105     LONG* pcPagesPrinted,
1106     LONG* pnLastPage);
1107 void __RPC_STUB IPrint_RemotePrint_Stub(
1108     struct IRpcStubBuffer* This,
1109     struct IRpcChannelBuffer* pRpcChannelBuffer,
1110     PRPC_MESSAGE pRpcMessage,
1111     DWORD* pdwStubPhase);
1112 HRESULT CALLBACK IPrint_Print_Proxy(
1113     IPrint* This,
1114     DWORD grfFlags,
1115     DVTARGETDEVICE** pptd,
1116     PAGESET** ppPageSet,
1117     STGMEDIUM* pstgmOptions,
1118     IContinueCallback* pcallback,
1119     LONG nFirstPage,
1120     LONG* pcPagesPrinted,
1121     LONG* pnLastPage);
1122 HRESULT __RPC_STUB IPrint_Print_Stub(
1123     IPrint* This,
1124     DWORD grfFlags,
1125     DVTARGETDEVICE** pptd,
1126     PAGESET** pppageset,
1127     RemSTGMEDIUM* pstgmOptions,
1128     IContinueCallback* pcallback,
1129     LONG nFirstPage,
1130     LONG* pcPagesPrinted,
1131     LONG* pnLastPage);
1132
1133 #endif  /* __IPrint_INTERFACE_DEFINED__ */
1134
1135 #define OLECMDERR_E_FIRST            (OLE_E_LAST+1)
1136 #define OLECMDERR_E_NOTSUPPORTED     (OLECMDERR_E_FIRST)
1137 #define OLECMDERR_E_DISABLED         (OLECMDERR_E_FIRST+1)
1138 #define OLECMDERR_E_NOHELP           (OLECMDERR_E_FIRST+2)
1139 #define OLECMDERR_E_CANCELED         (OLECMDERR_E_FIRST+3)
1140 #define OLECMDERR_E_UNKNOWNGROUP     (OLECMDERR_E_FIRST+4)
1141 #define MSOCMDERR_E_FIRST OLECMDERR_E_FIRST
1142 #define MSOCMDERR_E_NOTSUPPORTED OLECMDERR_E_NOTSUPPORTED
1143 #define MSOCMDERR_E_DISABLED OLECMDERR_E_DISABLED
1144 #define MSOCMDERR_E_NOHELP OLECMDERR_E_NOHELP
1145 #define MSOCMDERR_E_CANCELED OLECMDERR_E_CANCELED
1146 #define MSOCMDERR_E_UNKNOWNGROUP OLECMDERR_E_UNKNOWNGROUP
1147 #define LPMSODOCUMENT                  LPOLEDOCUMENT
1148 #define LPMSODOCUMENTSITE              LPOLEDOCUMENTSITE
1149 #define LPMSOVIEW                      LPOLEDOCUMENTVIEW
1150 #define LPENUMMSOVIEW                  LPENUMOLEDOCUMENTVIEWS
1151 #define LPMSOCOMMANDTARGET             LPOLECOMMANDTARGET
1152 #define IID_IMsoDocument               IID_IOleDocument
1153 #define IID_IMsoDocumentSite           IID_IOleDocumentSite
1154 #define IID_IMsoView                   IID_IOleDocumentView
1155 #define IID_IEnumMsoView               IID_IEnumOleDocumentViews
1156 #define IID_IMsoCommandTarget          IID_IOleCommandTarget
1157 #ifdef __cplusplus
1158 }
1159 #endif
1160 #endif /* __WIDL_DOCOBJ_H */