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