Fixed a few more headers dependency issues.
[wine] / include / oleidl.h
1 /*** Autogenerated by WIDL 0.1 from oleidl.idl - Do not edit ***/
2 #include <rpc.h>
3 #include <rpcndr.h>
4
5 #ifndef __WIDL_OLEIDL_H
6 #define __WIDL_OLEIDL_H
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 #include <objidl.h>
11 typedef enum tagOLERENDER {
12     OLERENDER_NONE = 0,
13     OLERENDER_DRAW = 1,
14     OLERENDER_FORMAT = 2,
15     OLERENDER_ASIS = 3
16 } OLERENDER, *LPOLERENDER;
17
18 typedef struct tagOBJECTDESCRIPTOR {
19     ULONG cbSize;
20     CLSID clsid;
21     DWORD dwDrawAspect;
22     SIZEL sizel;
23     POINTL pointl;
24     DWORD dwStatus;
25     DWORD dwFullUserTypeName;
26     DWORD dwSrcOfCopy;
27 } OBJECTDESCRIPTOR, *POBJECTDESCRIPTOR, *LPOBJECTDESCRIPTOR, LINKSRCDESCRIPTOR, *PLINKSRCDESCRIPTOR, *LPLINKSRCDESCRIPTOR;
28
29 #ifndef __IOleWindow_FWD_DEFINED__
30 #define __IOleWindow_FWD_DEFINED__
31 typedef struct IOleWindow IOleWindow;
32 #endif
33
34 typedef IOleWindow *LPOLEWINDOW;
35
36 /*****************************************************************************
37  * IOleWindow interface
38  */
39 #ifndef __IOleWindow_INTERFACE_DEFINED__
40 #define __IOleWindow_INTERFACE_DEFINED__
41
42 DEFINE_GUID(IID_IOleWindow, 0x00000114, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
43 #if defined(__cplusplus) && !defined(CINTERFACE)
44 struct IOleWindow : public IUnknown
45 {
46     virtual HRESULT STDMETHODCALLTYPE GetWindow(
47         HWND* phwnd) = 0;
48
49     virtual HRESULT STDMETHODCALLTYPE ContextSensitiveHelp(
50         BOOL fEnterMode) = 0;
51
52 };
53 #else
54 typedef struct IOleWindowVtbl IOleWindowVtbl;
55 struct IOleWindow {
56     const IOleWindowVtbl* lpVtbl;
57 };
58 struct IOleWindowVtbl {
59     ICOM_MSVTABLE_COMPAT_FIELDS
60
61     /*** IUnknown methods ***/
62     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
63         IOleWindow* This,
64         REFIID riid,
65         void** ppvObject);
66
67     ULONG (STDMETHODCALLTYPE *AddRef)(
68         IOleWindow* This);
69
70     ULONG (STDMETHODCALLTYPE *Release)(
71         IOleWindow* This);
72
73     /*** IOleWindow methods ***/
74     HRESULT (STDMETHODCALLTYPE *GetWindow)(
75         IOleWindow* This,
76         HWND* phwnd);
77
78     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
79         IOleWindow* This,
80         BOOL fEnterMode);
81
82 };
83
84 /*** IUnknown methods ***/
85 #define IOleWindow_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
86 #define IOleWindow_AddRef(p) (p)->lpVtbl->AddRef(p)
87 #define IOleWindow_Release(p) (p)->lpVtbl->Release(p)
88 /*** IOleWindow methods ***/
89 #define IOleWindow_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a)
90 #define IOleWindow_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a)
91
92 #endif
93
94 #define IOleWindow_METHODS \
95     ICOM_MSVTABLE_COMPAT_FIELDS \
96     /*** IUnknown methods ***/ \
97     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
98     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
99     STDMETHOD_(ULONG,Release)(THIS) PURE; \
100     /*** IOleWindow methods ***/ \
101     STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND* phwnd) PURE; \
102     STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL fEnterMode) PURE;
103
104 HRESULT CALLBACK IOleWindow_GetWindow_Proxy(
105     IOleWindow* This,
106     HWND* phwnd);
107 void __RPC_STUB IOleWindow_GetWindow_Stub(
108     struct IRpcStubBuffer* This,
109     struct IRpcChannelBuffer* pRpcChannelBuffer,
110     PRPC_MESSAGE pRpcMessage,
111     DWORD* pdwStubPhase);
112 HRESULT CALLBACK IOleWindow_ContextSensitiveHelp_Proxy(
113     IOleWindow* This,
114     BOOL fEnterMode);
115 void __RPC_STUB IOleWindow_ContextSensitiveHelp_Stub(
116     struct IRpcStubBuffer* This,
117     struct IRpcChannelBuffer* pRpcChannelBuffer,
118     PRPC_MESSAGE pRpcMessage,
119     DWORD* pdwStubPhase);
120
121 #endif  /* __IOleWindow_INTERFACE_DEFINED__ */
122
123 #ifndef __IOleInPlaceObject_FWD_DEFINED__
124 #define __IOleInPlaceObject_FWD_DEFINED__
125 typedef struct IOleInPlaceObject IOleInPlaceObject;
126 #endif
127
128 typedef IOleInPlaceObject *LPOLEINPLACEOBJECT;
129
130 /*****************************************************************************
131  * IOleInPlaceObject interface
132  */
133 #ifndef __IOleInPlaceObject_INTERFACE_DEFINED__
134 #define __IOleInPlaceObject_INTERFACE_DEFINED__
135
136 DEFINE_GUID(IID_IOleInPlaceObject, 0x00000113, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
137 #if defined(__cplusplus) && !defined(CINTERFACE)
138 struct IOleInPlaceObject : public IOleWindow
139 {
140     virtual HRESULT STDMETHODCALLTYPE InPlaceDeactivate(
141         ) = 0;
142
143     virtual HRESULT STDMETHODCALLTYPE UIDeactivate(
144         ) = 0;
145
146     virtual HRESULT STDMETHODCALLTYPE SetObjectRects(
147         LPCRECT lprcPosRect,
148         LPCRECT lprcClipRect) = 0;
149
150     virtual HRESULT STDMETHODCALLTYPE ReactivateAndUndo(
151         ) = 0;
152
153 };
154 #else
155 typedef struct IOleInPlaceObjectVtbl IOleInPlaceObjectVtbl;
156 struct IOleInPlaceObject {
157     const IOleInPlaceObjectVtbl* lpVtbl;
158 };
159 struct IOleInPlaceObjectVtbl {
160     ICOM_MSVTABLE_COMPAT_FIELDS
161
162     /*** IUnknown methods ***/
163     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
164         IOleInPlaceObject* This,
165         REFIID riid,
166         void** ppvObject);
167
168     ULONG (STDMETHODCALLTYPE *AddRef)(
169         IOleInPlaceObject* This);
170
171     ULONG (STDMETHODCALLTYPE *Release)(
172         IOleInPlaceObject* This);
173
174     /*** IOleWindow methods ***/
175     HRESULT (STDMETHODCALLTYPE *GetWindow)(
176         IOleInPlaceObject* This,
177         HWND* phwnd);
178
179     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
180         IOleInPlaceObject* This,
181         BOOL fEnterMode);
182
183     /*** IOleInPlaceObject methods ***/
184     HRESULT (STDMETHODCALLTYPE *InPlaceDeactivate)(
185         IOleInPlaceObject* This);
186
187     HRESULT (STDMETHODCALLTYPE *UIDeactivate)(
188         IOleInPlaceObject* This);
189
190     HRESULT (STDMETHODCALLTYPE *SetObjectRects)(
191         IOleInPlaceObject* This,
192         LPCRECT lprcPosRect,
193         LPCRECT lprcClipRect);
194
195     HRESULT (STDMETHODCALLTYPE *ReactivateAndUndo)(
196         IOleInPlaceObject* This);
197
198 };
199
200 /*** IUnknown methods ***/
201 #define IOleInPlaceObject_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
202 #define IOleInPlaceObject_AddRef(p) (p)->lpVtbl->AddRef(p)
203 #define IOleInPlaceObject_Release(p) (p)->lpVtbl->Release(p)
204 /*** IOleWindow methods ***/
205 #define IOleInPlaceObject_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a)
206 #define IOleInPlaceObject_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a)
207 /*** IOleInPlaceObject methods ***/
208 #define IOleInPlaceObject_InPlaceDeactivate(p) (p)->lpVtbl->InPlaceDeactivate(p)
209 #define IOleInPlaceObject_UIDeactivate(p) (p)->lpVtbl->UIDeactivate(p)
210 #define IOleInPlaceObject_SetObjectRects(p,a,b) (p)->lpVtbl->SetObjectRects(p,a,b)
211 #define IOleInPlaceObject_ReactivateAndUndo(p) (p)->lpVtbl->ReactivateAndUndo(p)
212
213 #endif
214
215 #define IOleInPlaceObject_METHODS \
216     ICOM_MSVTABLE_COMPAT_FIELDS \
217     /*** IUnknown methods ***/ \
218     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
219     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
220     STDMETHOD_(ULONG,Release)(THIS) PURE; \
221     /*** IOleWindow methods ***/ \
222     STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND* phwnd) PURE; \
223     STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL fEnterMode) PURE; \
224     /*** IOleInPlaceObject methods ***/ \
225     STDMETHOD_(HRESULT,InPlaceDeactivate)(THIS) PURE; \
226     STDMETHOD_(HRESULT,UIDeactivate)(THIS) PURE; \
227     STDMETHOD_(HRESULT,SetObjectRects)(THIS_ LPCRECT lprcPosRect, LPCRECT lprcClipRect) PURE; \
228     STDMETHOD_(HRESULT,ReactivateAndUndo)(THIS) PURE;
229
230 HRESULT CALLBACK IOleInPlaceObject_InPlaceDeactivate_Proxy(
231     IOleInPlaceObject* This);
232 void __RPC_STUB IOleInPlaceObject_InPlaceDeactivate_Stub(
233     struct IRpcStubBuffer* This,
234     struct IRpcChannelBuffer* pRpcChannelBuffer,
235     PRPC_MESSAGE pRpcMessage,
236     DWORD* pdwStubPhase);
237 HRESULT CALLBACK IOleInPlaceObject_UIDeactivate_Proxy(
238     IOleInPlaceObject* This);
239 void __RPC_STUB IOleInPlaceObject_UIDeactivate_Stub(
240     struct IRpcStubBuffer* This,
241     struct IRpcChannelBuffer* pRpcChannelBuffer,
242     PRPC_MESSAGE pRpcMessage,
243     DWORD* pdwStubPhase);
244 HRESULT CALLBACK IOleInPlaceObject_SetObjectRects_Proxy(
245     IOleInPlaceObject* This,
246     LPCRECT lprcPosRect,
247     LPCRECT lprcClipRect);
248 void __RPC_STUB IOleInPlaceObject_SetObjectRects_Stub(
249     struct IRpcStubBuffer* This,
250     struct IRpcChannelBuffer* pRpcChannelBuffer,
251     PRPC_MESSAGE pRpcMessage,
252     DWORD* pdwStubPhase);
253 HRESULT CALLBACK IOleInPlaceObject_ReactivateAndUndo_Proxy(
254     IOleInPlaceObject* This);
255 void __RPC_STUB IOleInPlaceObject_ReactivateAndUndo_Stub(
256     struct IRpcStubBuffer* This,
257     struct IRpcChannelBuffer* pRpcChannelBuffer,
258     PRPC_MESSAGE pRpcMessage,
259     DWORD* pdwStubPhase);
260
261 #endif  /* __IOleInPlaceObject_INTERFACE_DEFINED__ */
262
263 #ifndef __IOleInPlaceUIWindow_FWD_DEFINED__
264 #define __IOleInPlaceUIWindow_FWD_DEFINED__
265 typedef struct IOleInPlaceUIWindow IOleInPlaceUIWindow;
266 #endif
267
268 #ifndef __IOleInPlaceActiveObject_FWD_DEFINED__
269 #define __IOleInPlaceActiveObject_FWD_DEFINED__
270 typedef struct IOleInPlaceActiveObject IOleInPlaceActiveObject;
271 #endif
272
273 typedef IOleInPlaceActiveObject *LPOLEINPLACEACTIVEOBJECT;
274
275 /*****************************************************************************
276  * IOleInPlaceActiveObject interface
277  */
278 #ifndef __IOleInPlaceActiveObject_INTERFACE_DEFINED__
279 #define __IOleInPlaceActiveObject_INTERFACE_DEFINED__
280
281 DEFINE_GUID(IID_IOleInPlaceActiveObject, 0x00000117, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
282 #if defined(__cplusplus) && !defined(CINTERFACE)
283 struct IOleInPlaceActiveObject : public IOleWindow
284 {
285     virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(
286         LPMSG lpmsg) = 0;
287
288     virtual HRESULT STDMETHODCALLTYPE OnFrameWindowActivate(
289         BOOL fActivate) = 0;
290
291     virtual HRESULT STDMETHODCALLTYPE OnDocWindowActivate(
292         BOOL fActivate) = 0;
293
294     virtual HRESULT STDMETHODCALLTYPE ResizeBorder(
295         LPCRECT prcBorder,
296         IOleInPlaceUIWindow* pUIWindow,
297         BOOL fFrameWindow) = 0;
298
299     virtual HRESULT STDMETHODCALLTYPE EnableModeless(
300         BOOL fEnable) = 0;
301
302 };
303 #else
304 typedef struct IOleInPlaceActiveObjectVtbl IOleInPlaceActiveObjectVtbl;
305 struct IOleInPlaceActiveObject {
306     const IOleInPlaceActiveObjectVtbl* lpVtbl;
307 };
308 struct IOleInPlaceActiveObjectVtbl {
309     ICOM_MSVTABLE_COMPAT_FIELDS
310
311     /*** IUnknown methods ***/
312     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
313         IOleInPlaceActiveObject* This,
314         REFIID riid,
315         void** ppvObject);
316
317     ULONG (STDMETHODCALLTYPE *AddRef)(
318         IOleInPlaceActiveObject* This);
319
320     ULONG (STDMETHODCALLTYPE *Release)(
321         IOleInPlaceActiveObject* This);
322
323     /*** IOleWindow methods ***/
324     HRESULT (STDMETHODCALLTYPE *GetWindow)(
325         IOleInPlaceActiveObject* This,
326         HWND* phwnd);
327
328     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
329         IOleInPlaceActiveObject* This,
330         BOOL fEnterMode);
331
332     /*** IOleInPlaceActiveObject methods ***/
333     HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
334         IOleInPlaceActiveObject* This,
335         LPMSG lpmsg);
336
337     HRESULT (STDMETHODCALLTYPE *OnFrameWindowActivate)(
338         IOleInPlaceActiveObject* This,
339         BOOL fActivate);
340
341     HRESULT (STDMETHODCALLTYPE *OnDocWindowActivate)(
342         IOleInPlaceActiveObject* This,
343         BOOL fActivate);
344
345     HRESULT (STDMETHODCALLTYPE *ResizeBorder)(
346         IOleInPlaceActiveObject* This,
347         LPCRECT prcBorder,
348         IOleInPlaceUIWindow* pUIWindow,
349         BOOL fFrameWindow);
350
351     HRESULT (STDMETHODCALLTYPE *EnableModeless)(
352         IOleInPlaceActiveObject* This,
353         BOOL fEnable);
354
355 };
356
357 /*** IUnknown methods ***/
358 #define IOleInPlaceActiveObject_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
359 #define IOleInPlaceActiveObject_AddRef(p) (p)->lpVtbl->AddRef(p)
360 #define IOleInPlaceActiveObject_Release(p) (p)->lpVtbl->Release(p)
361 /*** IOleWindow methods ***/
362 #define IOleInPlaceActiveObject_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a)
363 #define IOleInPlaceActiveObject_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a)
364 /*** IOleInPlaceActiveObject methods ***/
365 #define IOleInPlaceActiveObject_TranslateAccelerator(p,a) (p)->lpVtbl->TranslateAccelerator(p,a)
366 #define IOleInPlaceActiveObject_OnFrameWindowActivate(p,a) (p)->lpVtbl->OnFrameWindowActivate(p,a)
367 #define IOleInPlaceActiveObject_OnDocWindowActivate(p,a) (p)->lpVtbl->OnDocWindowActivate(p,a)
368 #define IOleInPlaceActiveObject_ResizeBorder(p,a,b,c) (p)->lpVtbl->ResizeBorder(p,a,b,c)
369 #define IOleInPlaceActiveObject_EnableModeless(p,a) (p)->lpVtbl->EnableModeless(p,a)
370
371 #endif
372
373 #define IOleInPlaceActiveObject_METHODS \
374     ICOM_MSVTABLE_COMPAT_FIELDS \
375     /*** IUnknown methods ***/ \
376     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
377     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
378     STDMETHOD_(ULONG,Release)(THIS) PURE; \
379     /*** IOleWindow methods ***/ \
380     STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND* phwnd) PURE; \
381     STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL fEnterMode) PURE; \
382     /*** IOleInPlaceActiveObject methods ***/ \
383     STDMETHOD_(HRESULT,TranslateAccelerator)(THIS_ LPMSG lpmsg) PURE; \
384     STDMETHOD_(HRESULT,OnFrameWindowActivate)(THIS_ BOOL fActivate) PURE; \
385     STDMETHOD_(HRESULT,OnDocWindowActivate)(THIS_ BOOL fActivate) PURE; \
386     STDMETHOD_(HRESULT,ResizeBorder)(THIS_ LPCRECT prcBorder, IOleInPlaceUIWindow* pUIWindow, BOOL fFrameWindow) PURE; \
387     STDMETHOD_(HRESULT,EnableModeless)(THIS_ BOOL fEnable) PURE;
388
389 HRESULT CALLBACK IOleInPlaceActiveObject_RemoteTranslateAccelerator_Proxy(
390     IOleInPlaceActiveObject* This);
391 void __RPC_STUB IOleInPlaceActiveObject_RemoteTranslateAccelerator_Stub(
392     struct IRpcStubBuffer* This,
393     struct IRpcChannelBuffer* pRpcChannelBuffer,
394     PRPC_MESSAGE pRpcMessage,
395     DWORD* pdwStubPhase);
396 HRESULT CALLBACK IOleInPlaceActiveObject_TranslateAccelerator_Proxy(
397     IOleInPlaceActiveObject* This,
398     LPMSG lpmsg);
399 HRESULT __RPC_STUB IOleInPlaceActiveObject_TranslateAccelerator_Stub(
400     IOleInPlaceActiveObject* This);
401 HRESULT CALLBACK IOleInPlaceActiveObject_OnFrameWindowActivate_Proxy(
402     IOleInPlaceActiveObject* This,
403     BOOL fActivate);
404 void __RPC_STUB IOleInPlaceActiveObject_OnFrameWindowActivate_Stub(
405     struct IRpcStubBuffer* This,
406     struct IRpcChannelBuffer* pRpcChannelBuffer,
407     PRPC_MESSAGE pRpcMessage,
408     DWORD* pdwStubPhase);
409 HRESULT CALLBACK IOleInPlaceActiveObject_OnDocWindowActivate_Proxy(
410     IOleInPlaceActiveObject* This,
411     BOOL fActivate);
412 void __RPC_STUB IOleInPlaceActiveObject_OnDocWindowActivate_Stub(
413     struct IRpcStubBuffer* This,
414     struct IRpcChannelBuffer* pRpcChannelBuffer,
415     PRPC_MESSAGE pRpcMessage,
416     DWORD* pdwStubPhase);
417 HRESULT CALLBACK IOleInPlaceActiveObject_RemoteResizeBorder_Proxy(
418     IOleInPlaceActiveObject* This,
419     LPCRECT prcBorder,
420     REFIID riid,
421     IOleInPlaceUIWindow* pUIWindow,
422     BOOL fFrameWindow);
423 void __RPC_STUB IOleInPlaceActiveObject_RemoteResizeBorder_Stub(
424     struct IRpcStubBuffer* This,
425     struct IRpcChannelBuffer* pRpcChannelBuffer,
426     PRPC_MESSAGE pRpcMessage,
427     DWORD* pdwStubPhase);
428 HRESULT CALLBACK IOleInPlaceActiveObject_ResizeBorder_Proxy(
429     IOleInPlaceActiveObject* This,
430     LPCRECT prcBorder,
431     IOleInPlaceUIWindow* pUIWindow,
432     BOOL fFrameWindow);
433 HRESULT __RPC_STUB IOleInPlaceActiveObject_ResizeBorder_Stub(
434     IOleInPlaceActiveObject* This,
435     LPCRECT prcBorder,
436     REFIID riid,
437     IOleInPlaceUIWindow* pUIWindow,
438     BOOL fFrameWindow);
439 HRESULT CALLBACK IOleInPlaceActiveObject_EnableModeless_Proxy(
440     IOleInPlaceActiveObject* This,
441     BOOL fEnable);
442 void __RPC_STUB IOleInPlaceActiveObject_EnableModeless_Stub(
443     struct IRpcStubBuffer* This,
444     struct IRpcChannelBuffer* pRpcChannelBuffer,
445     PRPC_MESSAGE pRpcMessage,
446     DWORD* pdwStubPhase);
447
448 #endif  /* __IOleInPlaceActiveObject_INTERFACE_DEFINED__ */
449
450 typedef IOleInPlaceUIWindow *LPOLEINPLACEUIWINDOW;
451
452 typedef RECT BORDERWIDTHS;
453
454 typedef LPRECT LPBORDERWIDTHS;
455
456 typedef LPCRECT LPCBORDERWIDTHS;
457
458 /*****************************************************************************
459  * IOleInPlaceUIWindow interface
460  */
461 #ifndef __IOleInPlaceUIWindow_INTERFACE_DEFINED__
462 #define __IOleInPlaceUIWindow_INTERFACE_DEFINED__
463
464 DEFINE_GUID(IID_IOleInPlaceUIWindow, 0x00000115, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
465 #if defined(__cplusplus) && !defined(CINTERFACE)
466 struct IOleInPlaceUIWindow : public IOleWindow
467 {
468     virtual HRESULT STDMETHODCALLTYPE GetBorder(
469         LPRECT lprectBorder) = 0;
470
471     virtual HRESULT STDMETHODCALLTYPE RequestBorderSpace(
472         LPCBORDERWIDTHS pborderwidths) = 0;
473
474     virtual HRESULT STDMETHODCALLTYPE SetBorderSpace(
475         LPCBORDERWIDTHS pborderwidths) = 0;
476
477     virtual HRESULT STDMETHODCALLTYPE SetActiveObject(
478         IOleInPlaceActiveObject* pActiveObject,
479         LPCOLESTR pszObjName) = 0;
480
481 };
482 #else
483 typedef struct IOleInPlaceUIWindowVtbl IOleInPlaceUIWindowVtbl;
484 struct IOleInPlaceUIWindow {
485     const IOleInPlaceUIWindowVtbl* lpVtbl;
486 };
487 struct IOleInPlaceUIWindowVtbl {
488     ICOM_MSVTABLE_COMPAT_FIELDS
489
490     /*** IUnknown methods ***/
491     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
492         IOleInPlaceUIWindow* This,
493         REFIID riid,
494         void** ppvObject);
495
496     ULONG (STDMETHODCALLTYPE *AddRef)(
497         IOleInPlaceUIWindow* This);
498
499     ULONG (STDMETHODCALLTYPE *Release)(
500         IOleInPlaceUIWindow* This);
501
502     /*** IOleWindow methods ***/
503     HRESULT (STDMETHODCALLTYPE *GetWindow)(
504         IOleInPlaceUIWindow* This,
505         HWND* phwnd);
506
507     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
508         IOleInPlaceUIWindow* This,
509         BOOL fEnterMode);
510
511     /*** IOleInPlaceUIWindow methods ***/
512     HRESULT (STDMETHODCALLTYPE *GetBorder)(
513         IOleInPlaceUIWindow* This,
514         LPRECT lprectBorder);
515
516     HRESULT (STDMETHODCALLTYPE *RequestBorderSpace)(
517         IOleInPlaceUIWindow* This,
518         LPCBORDERWIDTHS pborderwidths);
519
520     HRESULT (STDMETHODCALLTYPE *SetBorderSpace)(
521         IOleInPlaceUIWindow* This,
522         LPCBORDERWIDTHS pborderwidths);
523
524     HRESULT (STDMETHODCALLTYPE *SetActiveObject)(
525         IOleInPlaceUIWindow* This,
526         IOleInPlaceActiveObject* pActiveObject,
527         LPCOLESTR pszObjName);
528
529 };
530
531 /*** IUnknown methods ***/
532 #define IOleInPlaceUIWindow_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
533 #define IOleInPlaceUIWindow_AddRef(p) (p)->lpVtbl->AddRef(p)
534 #define IOleInPlaceUIWindow_Release(p) (p)->lpVtbl->Release(p)
535 /*** IOleWindow methods ***/
536 #define IOleInPlaceUIWindow_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a)
537 #define IOleInPlaceUIWindow_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a)
538 /*** IOleInPlaceUIWindow methods ***/
539 #define IOleInPlaceUIWindow_GetBorder(p,a) (p)->lpVtbl->GetBorder(p,a)
540 #define IOleInPlaceUIWindow_RequestBorderSpace(p,a) (p)->lpVtbl->RequestBorderSpace(p,a)
541 #define IOleInPlaceUIWindow_SetBorderSpace(p,a) (p)->lpVtbl->SetBorderSpace(p,a)
542 #define IOleInPlaceUIWindow_SetActiveObject(p,a,b) (p)->lpVtbl->SetActiveObject(p,a,b)
543
544 #endif
545
546 #define IOleInPlaceUIWindow_METHODS \
547     ICOM_MSVTABLE_COMPAT_FIELDS \
548     /*** IUnknown methods ***/ \
549     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
550     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
551     STDMETHOD_(ULONG,Release)(THIS) PURE; \
552     /*** IOleWindow methods ***/ \
553     STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND* phwnd) PURE; \
554     STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL fEnterMode) PURE; \
555     /*** IOleInPlaceUIWindow methods ***/ \
556     STDMETHOD_(HRESULT,GetBorder)(THIS_ LPRECT lprectBorder) PURE; \
557     STDMETHOD_(HRESULT,RequestBorderSpace)(THIS_ LPCBORDERWIDTHS pborderwidths) PURE; \
558     STDMETHOD_(HRESULT,SetBorderSpace)(THIS_ LPCBORDERWIDTHS pborderwidths) PURE; \
559     STDMETHOD_(HRESULT,SetActiveObject)(THIS_ IOleInPlaceActiveObject* pActiveObject, LPCOLESTR pszObjName) PURE;
560
561 HRESULT CALLBACK IOleInPlaceUIWindow_GetBorder_Proxy(
562     IOleInPlaceUIWindow* This,
563     LPRECT lprectBorder);
564 void __RPC_STUB IOleInPlaceUIWindow_GetBorder_Stub(
565     struct IRpcStubBuffer* This,
566     struct IRpcChannelBuffer* pRpcChannelBuffer,
567     PRPC_MESSAGE pRpcMessage,
568     DWORD* pdwStubPhase);
569 HRESULT CALLBACK IOleInPlaceUIWindow_RequestBorderSpace_Proxy(
570     IOleInPlaceUIWindow* This,
571     LPCBORDERWIDTHS pborderwidths);
572 void __RPC_STUB IOleInPlaceUIWindow_RequestBorderSpace_Stub(
573     struct IRpcStubBuffer* This,
574     struct IRpcChannelBuffer* pRpcChannelBuffer,
575     PRPC_MESSAGE pRpcMessage,
576     DWORD* pdwStubPhase);
577 HRESULT CALLBACK IOleInPlaceUIWindow_SetBorderSpace_Proxy(
578     IOleInPlaceUIWindow* This,
579     LPCBORDERWIDTHS pborderwidths);
580 void __RPC_STUB IOleInPlaceUIWindow_SetBorderSpace_Stub(
581     struct IRpcStubBuffer* This,
582     struct IRpcChannelBuffer* pRpcChannelBuffer,
583     PRPC_MESSAGE pRpcMessage,
584     DWORD* pdwStubPhase);
585 HRESULT CALLBACK IOleInPlaceUIWindow_SetActiveObject_Proxy(
586     IOleInPlaceUIWindow* This,
587     IOleInPlaceActiveObject* pActiveObject,
588     LPCOLESTR pszObjName);
589 void __RPC_STUB IOleInPlaceUIWindow_SetActiveObject_Stub(
590     struct IRpcStubBuffer* This,
591     struct IRpcChannelBuffer* pRpcChannelBuffer,
592     PRPC_MESSAGE pRpcMessage,
593     DWORD* pdwStubPhase);
594
595 #endif  /* __IOleInPlaceUIWindow_INTERFACE_DEFINED__ */
596
597 #ifndef __IOleInPlaceFrame_FWD_DEFINED__
598 #define __IOleInPlaceFrame_FWD_DEFINED__
599 typedef struct IOleInPlaceFrame IOleInPlaceFrame;
600 #endif
601
602 typedef IOleInPlaceFrame *LPOLEINPLACEFRAME;
603
604 typedef struct tagOleInPlaceFrameInfo {
605     UINT cb;
606     BOOL fMDIApp;
607     HWND hwndFrame;
608     HACCEL haccel;
609     UINT cAccelEntries;
610 } OLEINPLACEFRAMEINFO, *LPOLEINPLACEFRAMEINFO;
611
612 typedef struct tagOleMenuGroupWidths {
613     LONG width[6];
614 } OLEMENUGROUPWIDTHS, *LPOLEMENUGROUPWIDTHS;
615
616 typedef HGLOBAL HOLEMENU;
617
618 /*****************************************************************************
619  * IOleInPlaceFrame interface
620  */
621 #ifndef __IOleInPlaceFrame_INTERFACE_DEFINED__
622 #define __IOleInPlaceFrame_INTERFACE_DEFINED__
623
624 DEFINE_GUID(IID_IOleInPlaceFrame, 0x00000116, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
625 #if defined(__cplusplus) && !defined(CINTERFACE)
626 struct IOleInPlaceFrame : public IOleInPlaceUIWindow
627 {
628     virtual HRESULT STDMETHODCALLTYPE InsertMenus(
629         HMENU hmenuShared,
630         LPOLEMENUGROUPWIDTHS lpMenuWidths) = 0;
631
632     virtual HRESULT STDMETHODCALLTYPE SetMenu(
633         HMENU hmenuShared,
634         HOLEMENU holemenu,
635         HWND hwndActiveObject) = 0;
636
637     virtual HRESULT STDMETHODCALLTYPE RemoveMenus(
638         HMENU hmenuShared) = 0;
639
640     virtual HRESULT STDMETHODCALLTYPE SetStatusText(
641         LPCOLESTR pszStatusText) = 0;
642
643     virtual HRESULT STDMETHODCALLTYPE EnableModeless(
644         BOOL fEnable) = 0;
645
646     virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(
647         LPMSG lpmsg,
648         WORD wID) = 0;
649
650 };
651 #else
652 typedef struct IOleInPlaceFrameVtbl IOleInPlaceFrameVtbl;
653 struct IOleInPlaceFrame {
654     const IOleInPlaceFrameVtbl* lpVtbl;
655 };
656 struct IOleInPlaceFrameVtbl {
657     ICOM_MSVTABLE_COMPAT_FIELDS
658
659     /*** IUnknown methods ***/
660     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
661         IOleInPlaceFrame* This,
662         REFIID riid,
663         void** ppvObject);
664
665     ULONG (STDMETHODCALLTYPE *AddRef)(
666         IOleInPlaceFrame* This);
667
668     ULONG (STDMETHODCALLTYPE *Release)(
669         IOleInPlaceFrame* This);
670
671     /*** IOleWindow methods ***/
672     HRESULT (STDMETHODCALLTYPE *GetWindow)(
673         IOleInPlaceFrame* This,
674         HWND* phwnd);
675
676     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
677         IOleInPlaceFrame* This,
678         BOOL fEnterMode);
679
680     /*** IOleInPlaceUIWindow methods ***/
681     HRESULT (STDMETHODCALLTYPE *GetBorder)(
682         IOleInPlaceFrame* This,
683         LPRECT lprectBorder);
684
685     HRESULT (STDMETHODCALLTYPE *RequestBorderSpace)(
686         IOleInPlaceFrame* This,
687         LPCBORDERWIDTHS pborderwidths);
688
689     HRESULT (STDMETHODCALLTYPE *SetBorderSpace)(
690         IOleInPlaceFrame* This,
691         LPCBORDERWIDTHS pborderwidths);
692
693     HRESULT (STDMETHODCALLTYPE *SetActiveObject)(
694         IOleInPlaceFrame* This,
695         IOleInPlaceActiveObject* pActiveObject,
696         LPCOLESTR pszObjName);
697
698     /*** IOleInPlaceFrame methods ***/
699     HRESULT (STDMETHODCALLTYPE *InsertMenus)(
700         IOleInPlaceFrame* This,
701         HMENU hmenuShared,
702         LPOLEMENUGROUPWIDTHS lpMenuWidths);
703
704     HRESULT (STDMETHODCALLTYPE *SetMenu)(
705         IOleInPlaceFrame* This,
706         HMENU hmenuShared,
707         HOLEMENU holemenu,
708         HWND hwndActiveObject);
709
710     HRESULT (STDMETHODCALLTYPE *RemoveMenus)(
711         IOleInPlaceFrame* This,
712         HMENU hmenuShared);
713
714     HRESULT (STDMETHODCALLTYPE *SetStatusText)(
715         IOleInPlaceFrame* This,
716         LPCOLESTR pszStatusText);
717
718     HRESULT (STDMETHODCALLTYPE *EnableModeless)(
719         IOleInPlaceFrame* This,
720         BOOL fEnable);
721
722     HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
723         IOleInPlaceFrame* This,
724         LPMSG lpmsg,
725         WORD wID);
726
727 };
728
729 /*** IUnknown methods ***/
730 #define IOleInPlaceFrame_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
731 #define IOleInPlaceFrame_AddRef(p) (p)->lpVtbl->AddRef(p)
732 #define IOleInPlaceFrame_Release(p) (p)->lpVtbl->Release(p)
733 /*** IOleWindow methods ***/
734 #define IOleInPlaceFrame_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a)
735 #define IOleInPlaceFrame_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a)
736 /*** IOleInPlaceUIWindow methods ***/
737 #define IOleInPlaceFrame_GetBorder(p,a) (p)->lpVtbl->GetBorder(p,a)
738 #define IOleInPlaceFrame_RequestBorderSpace(p,a) (p)->lpVtbl->RequestBorderSpace(p,a)
739 #define IOleInPlaceFrame_SetBorderSpace(p,a) (p)->lpVtbl->SetBorderSpace(p,a)
740 #define IOleInPlaceFrame_SetActiveObject(p,a,b) (p)->lpVtbl->SetActiveObject(p,a,b)
741 /*** IOleInPlaceFrame methods ***/
742 #define IOleInPlaceFrame_InsertMenus(p,a,b) (p)->lpVtbl->InsertMenus(p,a,b)
743 #define IOleInPlaceFrame_SetMenu(p,a,b,c) (p)->lpVtbl->SetMenu(p,a,b,c)
744 #define IOleInPlaceFrame_RemoveMenus(p,a) (p)->lpVtbl->RemoveMenus(p,a)
745 #define IOleInPlaceFrame_SetStatusText(p,a) (p)->lpVtbl->SetStatusText(p,a)
746 #define IOleInPlaceFrame_EnableModeless(p,a) (p)->lpVtbl->EnableModeless(p,a)
747 #define IOleInPlaceFrame_TranslateAccelerator(p,a,b) (p)->lpVtbl->TranslateAccelerator(p,a,b)
748
749 #endif
750
751 #define IOleInPlaceFrame_METHODS \
752     ICOM_MSVTABLE_COMPAT_FIELDS \
753     /*** IUnknown methods ***/ \
754     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
755     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
756     STDMETHOD_(ULONG,Release)(THIS) PURE; \
757     /*** IOleWindow methods ***/ \
758     STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND* phwnd) PURE; \
759     STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL fEnterMode) PURE; \
760     /*** IOleInPlaceUIWindow methods ***/ \
761     STDMETHOD_(HRESULT,GetBorder)(THIS_ LPRECT lprectBorder) PURE; \
762     STDMETHOD_(HRESULT,RequestBorderSpace)(THIS_ LPCBORDERWIDTHS pborderwidths) PURE; \
763     STDMETHOD_(HRESULT,SetBorderSpace)(THIS_ LPCBORDERWIDTHS pborderwidths) PURE; \
764     STDMETHOD_(HRESULT,SetActiveObject)(THIS_ IOleInPlaceActiveObject* pActiveObject, LPCOLESTR pszObjName) PURE; \
765     /*** IOleInPlaceFrame methods ***/ \
766     STDMETHOD_(HRESULT,InsertMenus)(THIS_ HMENU hmenuShared, LPOLEMENUGROUPWIDTHS lpMenuWidths) PURE; \
767     STDMETHOD_(HRESULT,SetMenu)(THIS_ HMENU hmenuShared, HOLEMENU holemenu, HWND hwndActiveObject) PURE; \
768     STDMETHOD_(HRESULT,RemoveMenus)(THIS_ HMENU hmenuShared) PURE; \
769     STDMETHOD_(HRESULT,SetStatusText)(THIS_ LPCOLESTR pszStatusText) PURE; \
770     STDMETHOD_(HRESULT,EnableModeless)(THIS_ BOOL fEnable) PURE; \
771     STDMETHOD_(HRESULT,TranslateAccelerator)(THIS_ LPMSG lpmsg, WORD wID) PURE;
772
773 HRESULT CALLBACK IOleInPlaceFrame_InsertMenus_Proxy(
774     IOleInPlaceFrame* This,
775     HMENU hmenuShared,
776     LPOLEMENUGROUPWIDTHS lpMenuWidths);
777 void __RPC_STUB IOleInPlaceFrame_InsertMenus_Stub(
778     struct IRpcStubBuffer* This,
779     struct IRpcChannelBuffer* pRpcChannelBuffer,
780     PRPC_MESSAGE pRpcMessage,
781     DWORD* pdwStubPhase);
782 HRESULT CALLBACK IOleInPlaceFrame_SetMenu_Proxy(
783     IOleInPlaceFrame* This,
784     HMENU hmenuShared,
785     HOLEMENU holemenu,
786     HWND hwndActiveObject);
787 void __RPC_STUB IOleInPlaceFrame_SetMenu_Stub(
788     struct IRpcStubBuffer* This,
789     struct IRpcChannelBuffer* pRpcChannelBuffer,
790     PRPC_MESSAGE pRpcMessage,
791     DWORD* pdwStubPhase);
792 HRESULT CALLBACK IOleInPlaceFrame_RemoveMenus_Proxy(
793     IOleInPlaceFrame* This,
794     HMENU hmenuShared);
795 void __RPC_STUB IOleInPlaceFrame_RemoveMenus_Stub(
796     struct IRpcStubBuffer* This,
797     struct IRpcChannelBuffer* pRpcChannelBuffer,
798     PRPC_MESSAGE pRpcMessage,
799     DWORD* pdwStubPhase);
800 HRESULT CALLBACK IOleInPlaceFrame_SetStatusText_Proxy(
801     IOleInPlaceFrame* This,
802     LPCOLESTR pszStatusText);
803 void __RPC_STUB IOleInPlaceFrame_SetStatusText_Stub(
804     struct IRpcStubBuffer* This,
805     struct IRpcChannelBuffer* pRpcChannelBuffer,
806     PRPC_MESSAGE pRpcMessage,
807     DWORD* pdwStubPhase);
808 HRESULT CALLBACK IOleInPlaceFrame_EnableModeless_Proxy(
809     IOleInPlaceFrame* This,
810     BOOL fEnable);
811 void __RPC_STUB IOleInPlaceFrame_EnableModeless_Stub(
812     struct IRpcStubBuffer* This,
813     struct IRpcChannelBuffer* pRpcChannelBuffer,
814     PRPC_MESSAGE pRpcMessage,
815     DWORD* pdwStubPhase);
816 HRESULT CALLBACK IOleInPlaceFrame_TranslateAccelerator_Proxy(
817     IOleInPlaceFrame* This,
818     LPMSG lpmsg,
819     WORD wID);
820 void __RPC_STUB IOleInPlaceFrame_TranslateAccelerator_Stub(
821     struct IRpcStubBuffer* This,
822     struct IRpcChannelBuffer* pRpcChannelBuffer,
823     PRPC_MESSAGE pRpcMessage,
824     DWORD* pdwStubPhase);
825
826 #endif  /* __IOleInPlaceFrame_INTERFACE_DEFINED__ */
827
828 #ifndef __IOleInPlaceSite_FWD_DEFINED__
829 #define __IOleInPlaceSite_FWD_DEFINED__
830 typedef struct IOleInPlaceSite IOleInPlaceSite;
831 #endif
832
833 typedef IOleInPlaceSite *LPOLEINPLACESITE;
834
835 /*****************************************************************************
836  * IOleInPlaceSite interface
837  */
838 #ifndef __IOleInPlaceSite_INTERFACE_DEFINED__
839 #define __IOleInPlaceSite_INTERFACE_DEFINED__
840
841 DEFINE_GUID(IID_IOleInPlaceSite, 0x00000119, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
842 #if defined(__cplusplus) && !defined(CINTERFACE)
843 struct IOleInPlaceSite : public IOleWindow
844 {
845     virtual HRESULT STDMETHODCALLTYPE CanInPlaceActivate(
846         ) = 0;
847
848     virtual HRESULT STDMETHODCALLTYPE OnInPlaceActivate(
849         ) = 0;
850
851     virtual HRESULT STDMETHODCALLTYPE OnUIActivate(
852         ) = 0;
853
854     virtual HRESULT STDMETHODCALLTYPE GetWindowContext(
855         IOleInPlaceFrame** ppFrame,
856         IOleInPlaceUIWindow** ppDoc,
857         LPRECT lprcPosRect,
858         LPRECT lprcClipRect,
859         LPOLEINPLACEFRAMEINFO lpFrameInfo) = 0;
860
861     virtual HRESULT STDMETHODCALLTYPE Scroll(
862         SIZE scrollExtant) = 0;
863
864     virtual HRESULT STDMETHODCALLTYPE OnUIDeactivate(
865         BOOL fUndoable) = 0;
866
867     virtual HRESULT STDMETHODCALLTYPE OnInPlaceDeactivate(
868         ) = 0;
869
870     virtual HRESULT STDMETHODCALLTYPE DiscardUndoState(
871         ) = 0;
872
873     virtual HRESULT STDMETHODCALLTYPE DeactivateAndUndo(
874         ) = 0;
875
876     virtual HRESULT STDMETHODCALLTYPE OnPosRectChange(
877         LPCRECT lprcPosRect) = 0;
878
879 };
880 #else
881 typedef struct IOleInPlaceSiteVtbl IOleInPlaceSiteVtbl;
882 struct IOleInPlaceSite {
883     const IOleInPlaceSiteVtbl* lpVtbl;
884 };
885 struct IOleInPlaceSiteVtbl {
886     ICOM_MSVTABLE_COMPAT_FIELDS
887
888     /*** IUnknown methods ***/
889     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
890         IOleInPlaceSite* This,
891         REFIID riid,
892         void** ppvObject);
893
894     ULONG (STDMETHODCALLTYPE *AddRef)(
895         IOleInPlaceSite* This);
896
897     ULONG (STDMETHODCALLTYPE *Release)(
898         IOleInPlaceSite* This);
899
900     /*** IOleWindow methods ***/
901     HRESULT (STDMETHODCALLTYPE *GetWindow)(
902         IOleInPlaceSite* This,
903         HWND* phwnd);
904
905     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
906         IOleInPlaceSite* This,
907         BOOL fEnterMode);
908
909     /*** IOleInPlaceSite methods ***/
910     HRESULT (STDMETHODCALLTYPE *CanInPlaceActivate)(
911         IOleInPlaceSite* This);
912
913     HRESULT (STDMETHODCALLTYPE *OnInPlaceActivate)(
914         IOleInPlaceSite* This);
915
916     HRESULT (STDMETHODCALLTYPE *OnUIActivate)(
917         IOleInPlaceSite* This);
918
919     HRESULT (STDMETHODCALLTYPE *GetWindowContext)(
920         IOleInPlaceSite* This,
921         IOleInPlaceFrame** ppFrame,
922         IOleInPlaceUIWindow** ppDoc,
923         LPRECT lprcPosRect,
924         LPRECT lprcClipRect,
925         LPOLEINPLACEFRAMEINFO lpFrameInfo);
926
927     HRESULT (STDMETHODCALLTYPE *Scroll)(
928         IOleInPlaceSite* This,
929         SIZE scrollExtant);
930
931     HRESULT (STDMETHODCALLTYPE *OnUIDeactivate)(
932         IOleInPlaceSite* This,
933         BOOL fUndoable);
934
935     HRESULT (STDMETHODCALLTYPE *OnInPlaceDeactivate)(
936         IOleInPlaceSite* This);
937
938     HRESULT (STDMETHODCALLTYPE *DiscardUndoState)(
939         IOleInPlaceSite* This);
940
941     HRESULT (STDMETHODCALLTYPE *DeactivateAndUndo)(
942         IOleInPlaceSite* This);
943
944     HRESULT (STDMETHODCALLTYPE *OnPosRectChange)(
945         IOleInPlaceSite* This,
946         LPCRECT lprcPosRect);
947
948 };
949
950 /*** IUnknown methods ***/
951 #define IOleInPlaceSite_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
952 #define IOleInPlaceSite_AddRef(p) (p)->lpVtbl->AddRef(p)
953 #define IOleInPlaceSite_Release(p) (p)->lpVtbl->Release(p)
954 /*** IOleWindow methods ***/
955 #define IOleInPlaceSite_GetWindow(p,a) (p)->lpVtbl->GetWindow(p,a)
956 #define IOleInPlaceSite_ContextSensitiveHelp(p,a) (p)->lpVtbl->ContextSensitiveHelp(p,a)
957 /*** IOleInPlaceSite methods ***/
958 #define IOleInPlaceSite_CanInPlaceActivate(p) (p)->lpVtbl->CanInPlaceActivate(p)
959 #define IOleInPlaceSite_OnInPlaceActivate(p) (p)->lpVtbl->OnInPlaceActivate(p)
960 #define IOleInPlaceSite_OnUIActivate(p) (p)->lpVtbl->OnUIActivate(p)
961 #define IOleInPlaceSite_GetWindowContext(p,a,b,c,d,e) (p)->lpVtbl->GetWindowContext(p,a,b,c,d,e)
962 #define IOleInPlaceSite_Scroll(p,a) (p)->lpVtbl->Scroll(p,a)
963 #define IOleInPlaceSite_OnUIDeactivate(p,a) (p)->lpVtbl->OnUIDeactivate(p,a)
964 #define IOleInPlaceSite_OnInPlaceDeactivate(p) (p)->lpVtbl->OnInPlaceDeactivate(p)
965 #define IOleInPlaceSite_DiscardUndoState(p) (p)->lpVtbl->DiscardUndoState(p)
966 #define IOleInPlaceSite_DeactivateAndUndo(p) (p)->lpVtbl->DeactivateAndUndo(p)
967 #define IOleInPlaceSite_OnPosRectChange(p,a) (p)->lpVtbl->OnPosRectChange(p,a)
968
969 #endif
970
971 #define IOleInPlaceSite_METHODS \
972     ICOM_MSVTABLE_COMPAT_FIELDS \
973     /*** IUnknown methods ***/ \
974     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
975     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
976     STDMETHOD_(ULONG,Release)(THIS) PURE; \
977     /*** IOleWindow methods ***/ \
978     STDMETHOD_(HRESULT,GetWindow)(THIS_ HWND* phwnd) PURE; \
979     STDMETHOD_(HRESULT,ContextSensitiveHelp)(THIS_ BOOL fEnterMode) PURE; \
980     /*** IOleInPlaceSite methods ***/ \
981     STDMETHOD_(HRESULT,CanInPlaceActivate)(THIS) PURE; \
982     STDMETHOD_(HRESULT,OnInPlaceActivate)(THIS) PURE; \
983     STDMETHOD_(HRESULT,OnUIActivate)(THIS) PURE; \
984     STDMETHOD_(HRESULT,GetWindowContext)(THIS_ IOleInPlaceFrame** ppFrame, IOleInPlaceUIWindow** ppDoc, LPRECT lprcPosRect, LPRECT lprcClipRect, LPOLEINPLACEFRAMEINFO lpFrameInfo) PURE; \
985     STDMETHOD_(HRESULT,Scroll)(THIS_ SIZE scrollExtant) PURE; \
986     STDMETHOD_(HRESULT,OnUIDeactivate)(THIS_ BOOL fUndoable) PURE; \
987     STDMETHOD_(HRESULT,OnInPlaceDeactivate)(THIS) PURE; \
988     STDMETHOD_(HRESULT,DiscardUndoState)(THIS) PURE; \
989     STDMETHOD_(HRESULT,DeactivateAndUndo)(THIS) PURE; \
990     STDMETHOD_(HRESULT,OnPosRectChange)(THIS_ LPCRECT lprcPosRect) PURE;
991
992 HRESULT CALLBACK IOleInPlaceSite_CanInPlaceActivate_Proxy(
993     IOleInPlaceSite* This);
994 void __RPC_STUB IOleInPlaceSite_CanInPlaceActivate_Stub(
995     struct IRpcStubBuffer* This,
996     struct IRpcChannelBuffer* pRpcChannelBuffer,
997     PRPC_MESSAGE pRpcMessage,
998     DWORD* pdwStubPhase);
999 HRESULT CALLBACK IOleInPlaceSite_OnInPlaceActivate_Proxy(
1000     IOleInPlaceSite* This);
1001 void __RPC_STUB IOleInPlaceSite_OnInPlaceActivate_Stub(
1002     struct IRpcStubBuffer* This,
1003     struct IRpcChannelBuffer* pRpcChannelBuffer,
1004     PRPC_MESSAGE pRpcMessage,
1005     DWORD* pdwStubPhase);
1006 HRESULT CALLBACK IOleInPlaceSite_OnUIActivate_Proxy(
1007     IOleInPlaceSite* This);
1008 void __RPC_STUB IOleInPlaceSite_OnUIActivate_Stub(
1009     struct IRpcStubBuffer* This,
1010     struct IRpcChannelBuffer* pRpcChannelBuffer,
1011     PRPC_MESSAGE pRpcMessage,
1012     DWORD* pdwStubPhase);
1013 HRESULT CALLBACK IOleInPlaceSite_GetWindowContext_Proxy(
1014     IOleInPlaceSite* This,
1015     IOleInPlaceFrame** ppFrame,
1016     IOleInPlaceUIWindow** ppDoc,
1017     LPRECT lprcPosRect,
1018     LPRECT lprcClipRect,
1019     LPOLEINPLACEFRAMEINFO lpFrameInfo);
1020 void __RPC_STUB IOleInPlaceSite_GetWindowContext_Stub(
1021     struct IRpcStubBuffer* This,
1022     struct IRpcChannelBuffer* pRpcChannelBuffer,
1023     PRPC_MESSAGE pRpcMessage,
1024     DWORD* pdwStubPhase);
1025 HRESULT CALLBACK IOleInPlaceSite_Scroll_Proxy(
1026     IOleInPlaceSite* This,
1027     SIZE scrollExtant);
1028 void __RPC_STUB IOleInPlaceSite_Scroll_Stub(
1029     struct IRpcStubBuffer* This,
1030     struct IRpcChannelBuffer* pRpcChannelBuffer,
1031     PRPC_MESSAGE pRpcMessage,
1032     DWORD* pdwStubPhase);
1033 HRESULT CALLBACK IOleInPlaceSite_OnUIDeactivate_Proxy(
1034     IOleInPlaceSite* This,
1035     BOOL fUndoable);
1036 void __RPC_STUB IOleInPlaceSite_OnUIDeactivate_Stub(
1037     struct IRpcStubBuffer* This,
1038     struct IRpcChannelBuffer* pRpcChannelBuffer,
1039     PRPC_MESSAGE pRpcMessage,
1040     DWORD* pdwStubPhase);
1041 HRESULT CALLBACK IOleInPlaceSite_OnInPlaceDeactivate_Proxy(
1042     IOleInPlaceSite* This);
1043 void __RPC_STUB IOleInPlaceSite_OnInPlaceDeactivate_Stub(
1044     struct IRpcStubBuffer* This,
1045     struct IRpcChannelBuffer* pRpcChannelBuffer,
1046     PRPC_MESSAGE pRpcMessage,
1047     DWORD* pdwStubPhase);
1048 HRESULT CALLBACK IOleInPlaceSite_DiscardUndoState_Proxy(
1049     IOleInPlaceSite* This);
1050 void __RPC_STUB IOleInPlaceSite_DiscardUndoState_Stub(
1051     struct IRpcStubBuffer* This,
1052     struct IRpcChannelBuffer* pRpcChannelBuffer,
1053     PRPC_MESSAGE pRpcMessage,
1054     DWORD* pdwStubPhase);
1055 HRESULT CALLBACK IOleInPlaceSite_DeactivateAndUndo_Proxy(
1056     IOleInPlaceSite* This);
1057 void __RPC_STUB IOleInPlaceSite_DeactivateAndUndo_Stub(
1058     struct IRpcStubBuffer* This,
1059     struct IRpcChannelBuffer* pRpcChannelBuffer,
1060     PRPC_MESSAGE pRpcMessage,
1061     DWORD* pdwStubPhase);
1062 HRESULT CALLBACK IOleInPlaceSite_OnPosRectChange_Proxy(
1063     IOleInPlaceSite* This,
1064     LPCRECT lprcPosRect);
1065 void __RPC_STUB IOleInPlaceSite_OnPosRectChange_Stub(
1066     struct IRpcStubBuffer* This,
1067     struct IRpcChannelBuffer* pRpcChannelBuffer,
1068     PRPC_MESSAGE pRpcMessage,
1069     DWORD* pdwStubPhase);
1070
1071 #endif  /* __IOleInPlaceSite_INTERFACE_DEFINED__ */
1072
1073 #ifndef __IParseDisplayName_FWD_DEFINED__
1074 #define __IParseDisplayName_FWD_DEFINED__
1075 typedef struct IParseDisplayName IParseDisplayName;
1076 #endif
1077
1078 typedef IParseDisplayName *LPPARSEDISPLAYNAME;
1079
1080 /*****************************************************************************
1081  * IParseDisplayName interface
1082  */
1083 #ifndef __IParseDisplayName_INTERFACE_DEFINED__
1084 #define __IParseDisplayName_INTERFACE_DEFINED__
1085
1086 DEFINE_GUID(IID_IParseDisplayName, 0x0000011a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1087 #if defined(__cplusplus) && !defined(CINTERFACE)
1088 struct IParseDisplayName : public IUnknown
1089 {
1090     virtual HRESULT STDMETHODCALLTYPE ParseDisplayName(
1091         IBindCtx* pbc,
1092         LPOLESTR pszDisplayName,
1093         ULONG* pchEaten,
1094         IMoniker** ppmkOut) = 0;
1095
1096 };
1097 #else
1098 typedef struct IParseDisplayNameVtbl IParseDisplayNameVtbl;
1099 struct IParseDisplayName {
1100     const IParseDisplayNameVtbl* lpVtbl;
1101 };
1102 struct IParseDisplayNameVtbl {
1103     ICOM_MSVTABLE_COMPAT_FIELDS
1104
1105     /*** IUnknown methods ***/
1106     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1107         IParseDisplayName* This,
1108         REFIID riid,
1109         void** ppvObject);
1110
1111     ULONG (STDMETHODCALLTYPE *AddRef)(
1112         IParseDisplayName* This);
1113
1114     ULONG (STDMETHODCALLTYPE *Release)(
1115         IParseDisplayName* This);
1116
1117     /*** IParseDisplayName methods ***/
1118     HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(
1119         IParseDisplayName* This,
1120         IBindCtx* pbc,
1121         LPOLESTR pszDisplayName,
1122         ULONG* pchEaten,
1123         IMoniker** ppmkOut);
1124
1125 };
1126
1127 /*** IUnknown methods ***/
1128 #define IParseDisplayName_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1129 #define IParseDisplayName_AddRef(p) (p)->lpVtbl->AddRef(p)
1130 #define IParseDisplayName_Release(p) (p)->lpVtbl->Release(p)
1131 /*** IParseDisplayName methods ***/
1132 #define IParseDisplayName_ParseDisplayName(p,a,b,c,d) (p)->lpVtbl->ParseDisplayName(p,a,b,c,d)
1133
1134 #endif
1135
1136 #define IParseDisplayName_METHODS \
1137     ICOM_MSVTABLE_COMPAT_FIELDS \
1138     /*** IUnknown methods ***/ \
1139     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1140     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1141     STDMETHOD_(ULONG,Release)(THIS) PURE; \
1142     /*** IParseDisplayName methods ***/ \
1143     STDMETHOD_(HRESULT,ParseDisplayName)(THIS_ IBindCtx* pbc, LPOLESTR pszDisplayName, ULONG* pchEaten, IMoniker** ppmkOut) PURE;
1144
1145 HRESULT CALLBACK IParseDisplayName_ParseDisplayName_Proxy(
1146     IParseDisplayName* This,
1147     IBindCtx* pbc,
1148     LPOLESTR pszDisplayName,
1149     ULONG* pchEaten,
1150     IMoniker** ppmkOut);
1151 void __RPC_STUB IParseDisplayName_ParseDisplayName_Stub(
1152     struct IRpcStubBuffer* This,
1153     struct IRpcChannelBuffer* pRpcChannelBuffer,
1154     PRPC_MESSAGE pRpcMessage,
1155     DWORD* pdwStubPhase);
1156
1157 #endif  /* __IParseDisplayName_INTERFACE_DEFINED__ */
1158
1159 #ifndef __IOleContainer_FWD_DEFINED__
1160 #define __IOleContainer_FWD_DEFINED__
1161 typedef struct IOleContainer IOleContainer;
1162 #endif
1163
1164 typedef IOleContainer *LPOLECONTAINER;
1165
1166 /*****************************************************************************
1167  * IOleContainer interface
1168  */
1169 #ifndef __IOleContainer_INTERFACE_DEFINED__
1170 #define __IOleContainer_INTERFACE_DEFINED__
1171
1172 DEFINE_GUID(IID_IOleContainer, 0x0000011b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1173 #if defined(__cplusplus) && !defined(CINTERFACE)
1174 struct IOleContainer : public IParseDisplayName
1175 {
1176     virtual HRESULT STDMETHODCALLTYPE EnumObjects(
1177         DWORD grfFlags,
1178         IEnumUnknown** ppenum) = 0;
1179
1180     virtual HRESULT STDMETHODCALLTYPE LockContainer(
1181         BOOL fLock) = 0;
1182
1183 };
1184 #else
1185 typedef struct IOleContainerVtbl IOleContainerVtbl;
1186 struct IOleContainer {
1187     const IOleContainerVtbl* lpVtbl;
1188 };
1189 struct IOleContainerVtbl {
1190     ICOM_MSVTABLE_COMPAT_FIELDS
1191
1192     /*** IUnknown methods ***/
1193     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1194         IOleContainer* This,
1195         REFIID riid,
1196         void** ppvObject);
1197
1198     ULONG (STDMETHODCALLTYPE *AddRef)(
1199         IOleContainer* This);
1200
1201     ULONG (STDMETHODCALLTYPE *Release)(
1202         IOleContainer* This);
1203
1204     /*** IParseDisplayName methods ***/
1205     HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(
1206         IOleContainer* This,
1207         IBindCtx* pbc,
1208         LPOLESTR pszDisplayName,
1209         ULONG* pchEaten,
1210         IMoniker** ppmkOut);
1211
1212     /*** IOleContainer methods ***/
1213     HRESULT (STDMETHODCALLTYPE *EnumObjects)(
1214         IOleContainer* This,
1215         DWORD grfFlags,
1216         IEnumUnknown** ppenum);
1217
1218     HRESULT (STDMETHODCALLTYPE *LockContainer)(
1219         IOleContainer* This,
1220         BOOL fLock);
1221
1222 };
1223
1224 /*** IUnknown methods ***/
1225 #define IOleContainer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1226 #define IOleContainer_AddRef(p) (p)->lpVtbl->AddRef(p)
1227 #define IOleContainer_Release(p) (p)->lpVtbl->Release(p)
1228 /*** IParseDisplayName methods ***/
1229 #define IOleContainer_ParseDisplayName(p,a,b,c,d) (p)->lpVtbl->ParseDisplayName(p,a,b,c,d)
1230 /*** IOleContainer methods ***/
1231 #define IOleContainer_EnumObjects(p,a,b) (p)->lpVtbl->EnumObjects(p,a,b)
1232 #define IOleContainer_LockContainer(p,a) (p)->lpVtbl->LockContainer(p,a)
1233
1234 #endif
1235
1236 #define IOleContainer_METHODS \
1237     ICOM_MSVTABLE_COMPAT_FIELDS \
1238     /*** IUnknown methods ***/ \
1239     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1240     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1241     STDMETHOD_(ULONG,Release)(THIS) PURE; \
1242     /*** IParseDisplayName methods ***/ \
1243     STDMETHOD_(HRESULT,ParseDisplayName)(THIS_ IBindCtx* pbc, LPOLESTR pszDisplayName, ULONG* pchEaten, IMoniker** ppmkOut) PURE; \
1244     /*** IOleContainer methods ***/ \
1245     STDMETHOD_(HRESULT,EnumObjects)(THIS_ DWORD grfFlags, IEnumUnknown** ppenum) PURE; \
1246     STDMETHOD_(HRESULT,LockContainer)(THIS_ BOOL fLock) PURE;
1247
1248 HRESULT CALLBACK IOleContainer_EnumObjects_Proxy(
1249     IOleContainer* This,
1250     DWORD grfFlags,
1251     IEnumUnknown** ppenum);
1252 void __RPC_STUB IOleContainer_EnumObjects_Stub(
1253     struct IRpcStubBuffer* This,
1254     struct IRpcChannelBuffer* pRpcChannelBuffer,
1255     PRPC_MESSAGE pRpcMessage,
1256     DWORD* pdwStubPhase);
1257 HRESULT CALLBACK IOleContainer_LockContainer_Proxy(
1258     IOleContainer* This,
1259     BOOL fLock);
1260 void __RPC_STUB IOleContainer_LockContainer_Stub(
1261     struct IRpcStubBuffer* This,
1262     struct IRpcChannelBuffer* pRpcChannelBuffer,
1263     PRPC_MESSAGE pRpcMessage,
1264     DWORD* pdwStubPhase);
1265
1266 #endif  /* __IOleContainer_INTERFACE_DEFINED__ */
1267
1268 #ifndef __IOleItemContainer_FWD_DEFINED__
1269 #define __IOleItemContainer_FWD_DEFINED__
1270 typedef struct IOleItemContainer IOleItemContainer;
1271 #endif
1272
1273 typedef IOleItemContainer *LPOLEITEMCONTAINER;
1274
1275 typedef enum tagBINDSPEED {
1276     BINDSPEED_INDEFINITE = 1,
1277     BINDSPEED_MODERATE = 2,
1278     BINDSPEED_IMMEDIATE = 3
1279 } BINDSPEED;
1280
1281 typedef enum tagOLECONTF {
1282     OLECONTF_EMBEDDINGS = 1,
1283     OLECONTF_LINKS = 2,
1284     OLECONTF_OTHERS = 4,
1285     OLECONTF_OLNYUSER = 8,
1286     OLECONTF_ONLYIFRUNNING = 16
1287 } OLECONTF;
1288
1289 #ifdef __WINESRC__
1290 #undef GetObject
1291 #endif
1292 /*****************************************************************************
1293  * IOleItemContainer interface
1294  */
1295 #ifndef __IOleItemContainer_INTERFACE_DEFINED__
1296 #define __IOleItemContainer_INTERFACE_DEFINED__
1297
1298 DEFINE_GUID(IID_IOleItemContainer, 0x0000011c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1299 #if defined(__cplusplus) && !defined(CINTERFACE)
1300 struct IOleItemContainer : public IOleContainer
1301 {
1302     virtual HRESULT STDMETHODCALLTYPE GetObject(
1303         LPOLESTR pszItem,
1304         DWORD dwSpeedNeeded,
1305         IBindCtx* pbc,
1306         REFIID riid,
1307         void** ppvObject) = 0;
1308
1309     virtual HRESULT STDMETHODCALLTYPE GetObjectStorage(
1310         LPOLESTR pszItem,
1311         IBindCtx* pbc,
1312         REFIID riid,
1313         void** ppvStorage) = 0;
1314
1315     virtual HRESULT STDMETHODCALLTYPE IsRunning(
1316         LPOLESTR pszItem) = 0;
1317
1318 };
1319 #else
1320 typedef struct IOleItemContainerVtbl IOleItemContainerVtbl;
1321 struct IOleItemContainer {
1322     const IOleItemContainerVtbl* lpVtbl;
1323 };
1324 struct IOleItemContainerVtbl {
1325     ICOM_MSVTABLE_COMPAT_FIELDS
1326
1327     /*** IUnknown methods ***/
1328     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1329         IOleItemContainer* This,
1330         REFIID riid,
1331         void** ppvObject);
1332
1333     ULONG (STDMETHODCALLTYPE *AddRef)(
1334         IOleItemContainer* This);
1335
1336     ULONG (STDMETHODCALLTYPE *Release)(
1337         IOleItemContainer* This);
1338
1339     /*** IParseDisplayName methods ***/
1340     HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(
1341         IOleItemContainer* This,
1342         IBindCtx* pbc,
1343         LPOLESTR pszDisplayName,
1344         ULONG* pchEaten,
1345         IMoniker** ppmkOut);
1346
1347     /*** IOleContainer methods ***/
1348     HRESULT (STDMETHODCALLTYPE *EnumObjects)(
1349         IOleItemContainer* This,
1350         DWORD grfFlags,
1351         IEnumUnknown** ppenum);
1352
1353     HRESULT (STDMETHODCALLTYPE *LockContainer)(
1354         IOleItemContainer* This,
1355         BOOL fLock);
1356
1357     /*** IOleItemContainer methods ***/
1358     HRESULT (STDMETHODCALLTYPE *GetObject)(
1359         IOleItemContainer* This,
1360         LPOLESTR pszItem,
1361         DWORD dwSpeedNeeded,
1362         IBindCtx* pbc,
1363         REFIID riid,
1364         void** ppvObject);
1365
1366     HRESULT (STDMETHODCALLTYPE *GetObjectStorage)(
1367         IOleItemContainer* This,
1368         LPOLESTR pszItem,
1369         IBindCtx* pbc,
1370         REFIID riid,
1371         void** ppvStorage);
1372
1373     HRESULT (STDMETHODCALLTYPE *IsRunning)(
1374         IOleItemContainer* This,
1375         LPOLESTR pszItem);
1376
1377 };
1378
1379 /*** IUnknown methods ***/
1380 #define IOleItemContainer_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1381 #define IOleItemContainer_AddRef(p) (p)->lpVtbl->AddRef(p)
1382 #define IOleItemContainer_Release(p) (p)->lpVtbl->Release(p)
1383 /*** IParseDisplayName methods ***/
1384 #define IOleItemContainer_ParseDisplayName(p,a,b,c,d) (p)->lpVtbl->ParseDisplayName(p,a,b,c,d)
1385 /*** IOleContainer methods ***/
1386 #define IOleItemContainer_EnumObjects(p,a,b) (p)->lpVtbl->EnumObjects(p,a,b)
1387 #define IOleItemContainer_LockContainer(p,a) (p)->lpVtbl->LockContainer(p,a)
1388 /*** IOleItemContainer methods ***/
1389 #define IOleItemContainer_GetObject(p,a,b,c,d,e) (p)->lpVtbl->GetObject(p,a,b,c,d,e)
1390 #define IOleItemContainer_GetObjectStorage(p,a,b,c,d) (p)->lpVtbl->GetObjectStorage(p,a,b,c,d)
1391 #define IOleItemContainer_IsRunning(p,a) (p)->lpVtbl->IsRunning(p,a)
1392
1393 #endif
1394
1395 #define IOleItemContainer_METHODS \
1396     ICOM_MSVTABLE_COMPAT_FIELDS \
1397     /*** IUnknown methods ***/ \
1398     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1399     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1400     STDMETHOD_(ULONG,Release)(THIS) PURE; \
1401     /*** IParseDisplayName methods ***/ \
1402     STDMETHOD_(HRESULT,ParseDisplayName)(THIS_ IBindCtx* pbc, LPOLESTR pszDisplayName, ULONG* pchEaten, IMoniker** ppmkOut) PURE; \
1403     /*** IOleContainer methods ***/ \
1404     STDMETHOD_(HRESULT,EnumObjects)(THIS_ DWORD grfFlags, IEnumUnknown** ppenum) PURE; \
1405     STDMETHOD_(HRESULT,LockContainer)(THIS_ BOOL fLock) PURE; \
1406     /*** IOleItemContainer methods ***/ \
1407     STDMETHOD_(HRESULT,GetObject)(THIS_ LPOLESTR pszItem, DWORD dwSpeedNeeded, IBindCtx* pbc, REFIID riid, void** ppvObject) PURE; \
1408     STDMETHOD_(HRESULT,GetObjectStorage)(THIS_ LPOLESTR pszItem, IBindCtx* pbc, REFIID riid, void** ppvStorage) PURE; \
1409     STDMETHOD_(HRESULT,IsRunning)(THIS_ LPOLESTR pszItem) PURE;
1410
1411 HRESULT CALLBACK IOleItemContainer_GetObject_Proxy(
1412     IOleItemContainer* This,
1413     LPOLESTR pszItem,
1414     DWORD dwSpeedNeeded,
1415     IBindCtx* pbc,
1416     REFIID riid,
1417     void** ppvObject);
1418 void __RPC_STUB IOleItemContainer_GetObject_Stub(
1419     struct IRpcStubBuffer* This,
1420     struct IRpcChannelBuffer* pRpcChannelBuffer,
1421     PRPC_MESSAGE pRpcMessage,
1422     DWORD* pdwStubPhase);
1423 HRESULT CALLBACK IOleItemContainer_GetObjectStorage_Proxy(
1424     IOleItemContainer* This,
1425     LPOLESTR pszItem,
1426     IBindCtx* pbc,
1427     REFIID riid,
1428     void** ppvStorage);
1429 void __RPC_STUB IOleItemContainer_GetObjectStorage_Stub(
1430     struct IRpcStubBuffer* This,
1431     struct IRpcChannelBuffer* pRpcChannelBuffer,
1432     PRPC_MESSAGE pRpcMessage,
1433     DWORD* pdwStubPhase);
1434 HRESULT CALLBACK IOleItemContainer_IsRunning_Proxy(
1435     IOleItemContainer* This,
1436     LPOLESTR pszItem);
1437 void __RPC_STUB IOleItemContainer_IsRunning_Stub(
1438     struct IRpcStubBuffer* This,
1439     struct IRpcChannelBuffer* pRpcChannelBuffer,
1440     PRPC_MESSAGE pRpcMessage,
1441     DWORD* pdwStubPhase);
1442
1443 #endif  /* __IOleItemContainer_INTERFACE_DEFINED__ */
1444
1445 #ifndef __IOleLink_FWD_DEFINED__
1446 #define __IOleLink_FWD_DEFINED__
1447 typedef struct IOleLink IOleLink;
1448 #endif
1449
1450 typedef IOleLink *LPOLELINK;
1451
1452 typedef enum tagOLEUPDATE {
1453     OLEUPDATE_ALWAYS = 1,
1454     OLEUPDATE_ONCALL = 3
1455 } OLEUPDATE, *POLEUPDATE, *LPOLEUPDATE;
1456
1457 typedef enum tagOLELINKBIND {
1458     OLELINKBIND_EVENIFCLASSDIFF = 1
1459 } OLELINKBIND;
1460
1461 /*****************************************************************************
1462  * IOleLink interface
1463  */
1464 #ifndef __IOleLink_INTERFACE_DEFINED__
1465 #define __IOleLink_INTERFACE_DEFINED__
1466
1467 DEFINE_GUID(IID_IOleLink, 0x0000011d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1468 #if defined(__cplusplus) && !defined(CINTERFACE)
1469 struct IOleLink : public IUnknown
1470 {
1471     virtual HRESULT STDMETHODCALLTYPE SetUpdateOptions(
1472         DWORD dwUpdateOpt) = 0;
1473
1474     virtual HRESULT STDMETHODCALLTYPE GetUpdateOptions(
1475         DWORD* pdwUpdateOpt) = 0;
1476
1477     virtual HRESULT STDMETHODCALLTYPE SetSourceMoniker(
1478         IMoniker* pmk,
1479         REFCLSID rclsid) = 0;
1480
1481     virtual HRESULT STDMETHODCALLTYPE GetSourceMoniker(
1482         IMoniker** ppmk) = 0;
1483
1484     virtual HRESULT STDMETHODCALLTYPE SetSourceDisplayName(
1485         LPCOLESTR pszStatusText) = 0;
1486
1487     virtual HRESULT STDMETHODCALLTYPE GetSourceDisplayName(
1488         LPOLESTR* ppszDisplayName) = 0;
1489
1490     virtual HRESULT STDMETHODCALLTYPE BindToSource(
1491         DWORD bindflags,
1492         IBindCtx* pbc) = 0;
1493
1494     virtual HRESULT STDMETHODCALLTYPE BindIfRunning(
1495         ) = 0;
1496
1497     virtual HRESULT STDMETHODCALLTYPE GetBoundSource(
1498         IUnknown** ppunk) = 0;
1499
1500     virtual HRESULT STDMETHODCALLTYPE UnbindSource(
1501         ) = 0;
1502
1503     virtual HRESULT STDMETHODCALLTYPE Update(
1504         IBindCtx* pbc) = 0;
1505
1506 };
1507 #else
1508 typedef struct IOleLinkVtbl IOleLinkVtbl;
1509 struct IOleLink {
1510     const IOleLinkVtbl* lpVtbl;
1511 };
1512 struct IOleLinkVtbl {
1513     ICOM_MSVTABLE_COMPAT_FIELDS
1514
1515     /*** IUnknown methods ***/
1516     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1517         IOleLink* This,
1518         REFIID riid,
1519         void** ppvObject);
1520
1521     ULONG (STDMETHODCALLTYPE *AddRef)(
1522         IOleLink* This);
1523
1524     ULONG (STDMETHODCALLTYPE *Release)(
1525         IOleLink* This);
1526
1527     /*** IOleLink methods ***/
1528     HRESULT (STDMETHODCALLTYPE *SetUpdateOptions)(
1529         IOleLink* This,
1530         DWORD dwUpdateOpt);
1531
1532     HRESULT (STDMETHODCALLTYPE *GetUpdateOptions)(
1533         IOleLink* This,
1534         DWORD* pdwUpdateOpt);
1535
1536     HRESULT (STDMETHODCALLTYPE *SetSourceMoniker)(
1537         IOleLink* This,
1538         IMoniker* pmk,
1539         REFCLSID rclsid);
1540
1541     HRESULT (STDMETHODCALLTYPE *GetSourceMoniker)(
1542         IOleLink* This,
1543         IMoniker** ppmk);
1544
1545     HRESULT (STDMETHODCALLTYPE *SetSourceDisplayName)(
1546         IOleLink* This,
1547         LPCOLESTR pszStatusText);
1548
1549     HRESULT (STDMETHODCALLTYPE *GetSourceDisplayName)(
1550         IOleLink* This,
1551         LPOLESTR* ppszDisplayName);
1552
1553     HRESULT (STDMETHODCALLTYPE *BindToSource)(
1554         IOleLink* This,
1555         DWORD bindflags,
1556         IBindCtx* pbc);
1557
1558     HRESULT (STDMETHODCALLTYPE *BindIfRunning)(
1559         IOleLink* This);
1560
1561     HRESULT (STDMETHODCALLTYPE *GetBoundSource)(
1562         IOleLink* This,
1563         IUnknown** ppunk);
1564
1565     HRESULT (STDMETHODCALLTYPE *UnbindSource)(
1566         IOleLink* This);
1567
1568     HRESULT (STDMETHODCALLTYPE *Update)(
1569         IOleLink* This,
1570         IBindCtx* pbc);
1571
1572 };
1573
1574 /*** IUnknown methods ***/
1575 #define IOleLink_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1576 #define IOleLink_AddRef(p) (p)->lpVtbl->AddRef(p)
1577 #define IOleLink_Release(p) (p)->lpVtbl->Release(p)
1578 /*** IOleLink methods ***/
1579 #define IOleLink_SetUpdateOptions(p,a) (p)->lpVtbl->SetUpdateOptions(p,a)
1580 #define IOleLink_GetUpdateOptions(p,a) (p)->lpVtbl->GetUpdateOptions(p,a)
1581 #define IOleLink_SetSourceMoniker(p,a,b) (p)->lpVtbl->SetSourceMoniker(p,a,b)
1582 #define IOleLink_GetSourceMoniker(p,a) (p)->lpVtbl->GetSourceMoniker(p,a)
1583 #define IOleLink_SetSourceDisplayName(p,a) (p)->lpVtbl->SetSourceDisplayName(p,a)
1584 #define IOleLink_GetSourceDisplayName(p,a) (p)->lpVtbl->GetSourceDisplayName(p,a)
1585 #define IOleLink_BindToSource(p,a,b) (p)->lpVtbl->BindToSource(p,a,b)
1586 #define IOleLink_BindIfRunning(p) (p)->lpVtbl->BindIfRunning(p)
1587 #define IOleLink_GetBoundSource(p,a) (p)->lpVtbl->GetBoundSource(p,a)
1588 #define IOleLink_UnbindSource(p) (p)->lpVtbl->UnbindSource(p)
1589 #define IOleLink_Update(p,a) (p)->lpVtbl->Update(p,a)
1590
1591 #endif
1592
1593 #define IOleLink_METHODS \
1594     ICOM_MSVTABLE_COMPAT_FIELDS \
1595     /*** IUnknown methods ***/ \
1596     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1597     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1598     STDMETHOD_(ULONG,Release)(THIS) PURE; \
1599     /*** IOleLink methods ***/ \
1600     STDMETHOD_(HRESULT,SetUpdateOptions)(THIS_ DWORD dwUpdateOpt) PURE; \
1601     STDMETHOD_(HRESULT,GetUpdateOptions)(THIS_ DWORD* pdwUpdateOpt) PURE; \
1602     STDMETHOD_(HRESULT,SetSourceMoniker)(THIS_ IMoniker* pmk, REFCLSID rclsid) PURE; \
1603     STDMETHOD_(HRESULT,GetSourceMoniker)(THIS_ IMoniker** ppmk) PURE; \
1604     STDMETHOD_(HRESULT,SetSourceDisplayName)(THIS_ LPCOLESTR pszStatusText) PURE; \
1605     STDMETHOD_(HRESULT,GetSourceDisplayName)(THIS_ LPOLESTR* ppszDisplayName) PURE; \
1606     STDMETHOD_(HRESULT,BindToSource)(THIS_ DWORD bindflags, IBindCtx* pbc) PURE; \
1607     STDMETHOD_(HRESULT,BindIfRunning)(THIS) PURE; \
1608     STDMETHOD_(HRESULT,GetBoundSource)(THIS_ IUnknown** ppunk) PURE; \
1609     STDMETHOD_(HRESULT,UnbindSource)(THIS) PURE; \
1610     STDMETHOD_(HRESULT,Update)(THIS_ IBindCtx* pbc) PURE;
1611
1612 HRESULT CALLBACK IOleLink_SetUpdateOptions_Proxy(
1613     IOleLink* This,
1614     DWORD dwUpdateOpt);
1615 void __RPC_STUB IOleLink_SetUpdateOptions_Stub(
1616     struct IRpcStubBuffer* This,
1617     struct IRpcChannelBuffer* pRpcChannelBuffer,
1618     PRPC_MESSAGE pRpcMessage,
1619     DWORD* pdwStubPhase);
1620 HRESULT CALLBACK IOleLink_GetUpdateOptions_Proxy(
1621     IOleLink* This,
1622     DWORD* pdwUpdateOpt);
1623 void __RPC_STUB IOleLink_GetUpdateOptions_Stub(
1624     struct IRpcStubBuffer* This,
1625     struct IRpcChannelBuffer* pRpcChannelBuffer,
1626     PRPC_MESSAGE pRpcMessage,
1627     DWORD* pdwStubPhase);
1628 HRESULT CALLBACK IOleLink_SetSourceMoniker_Proxy(
1629     IOleLink* This,
1630     IMoniker* pmk,
1631     REFCLSID rclsid);
1632 void __RPC_STUB IOleLink_SetSourceMoniker_Stub(
1633     struct IRpcStubBuffer* This,
1634     struct IRpcChannelBuffer* pRpcChannelBuffer,
1635     PRPC_MESSAGE pRpcMessage,
1636     DWORD* pdwStubPhase);
1637 HRESULT CALLBACK IOleLink_GetSourceMoniker_Proxy(
1638     IOleLink* This,
1639     IMoniker** ppmk);
1640 void __RPC_STUB IOleLink_GetSourceMoniker_Stub(
1641     struct IRpcStubBuffer* This,
1642     struct IRpcChannelBuffer* pRpcChannelBuffer,
1643     PRPC_MESSAGE pRpcMessage,
1644     DWORD* pdwStubPhase);
1645 HRESULT CALLBACK IOleLink_SetSourceDisplayName_Proxy(
1646     IOleLink* This,
1647     LPCOLESTR pszStatusText);
1648 void __RPC_STUB IOleLink_SetSourceDisplayName_Stub(
1649     struct IRpcStubBuffer* This,
1650     struct IRpcChannelBuffer* pRpcChannelBuffer,
1651     PRPC_MESSAGE pRpcMessage,
1652     DWORD* pdwStubPhase);
1653 HRESULT CALLBACK IOleLink_GetSourceDisplayName_Proxy(
1654     IOleLink* This,
1655     LPOLESTR* ppszDisplayName);
1656 void __RPC_STUB IOleLink_GetSourceDisplayName_Stub(
1657     struct IRpcStubBuffer* This,
1658     struct IRpcChannelBuffer* pRpcChannelBuffer,
1659     PRPC_MESSAGE pRpcMessage,
1660     DWORD* pdwStubPhase);
1661 HRESULT CALLBACK IOleLink_BindToSource_Proxy(
1662     IOleLink* This,
1663     DWORD bindflags,
1664     IBindCtx* pbc);
1665 void __RPC_STUB IOleLink_BindToSource_Stub(
1666     struct IRpcStubBuffer* This,
1667     struct IRpcChannelBuffer* pRpcChannelBuffer,
1668     PRPC_MESSAGE pRpcMessage,
1669     DWORD* pdwStubPhase);
1670 HRESULT CALLBACK IOleLink_BindIfRunning_Proxy(
1671     IOleLink* This);
1672 void __RPC_STUB IOleLink_BindIfRunning_Stub(
1673     struct IRpcStubBuffer* This,
1674     struct IRpcChannelBuffer* pRpcChannelBuffer,
1675     PRPC_MESSAGE pRpcMessage,
1676     DWORD* pdwStubPhase);
1677 HRESULT CALLBACK IOleLink_GetBoundSource_Proxy(
1678     IOleLink* This,
1679     IUnknown** ppunk);
1680 void __RPC_STUB IOleLink_GetBoundSource_Stub(
1681     struct IRpcStubBuffer* This,
1682     struct IRpcChannelBuffer* pRpcChannelBuffer,
1683     PRPC_MESSAGE pRpcMessage,
1684     DWORD* pdwStubPhase);
1685 HRESULT CALLBACK IOleLink_UnbindSource_Proxy(
1686     IOleLink* This);
1687 void __RPC_STUB IOleLink_UnbindSource_Stub(
1688     struct IRpcStubBuffer* This,
1689     struct IRpcChannelBuffer* pRpcChannelBuffer,
1690     PRPC_MESSAGE pRpcMessage,
1691     DWORD* pdwStubPhase);
1692 HRESULT CALLBACK IOleLink_Update_Proxy(
1693     IOleLink* This,
1694     IBindCtx* pbc);
1695 void __RPC_STUB IOleLink_Update_Stub(
1696     struct IRpcStubBuffer* This,
1697     struct IRpcChannelBuffer* pRpcChannelBuffer,
1698     PRPC_MESSAGE pRpcMessage,
1699     DWORD* pdwStubPhase);
1700
1701 #endif  /* __IOleLink_INTERFACE_DEFINED__ */
1702
1703 #ifndef __IOleClientSite_FWD_DEFINED__
1704 #define __IOleClientSite_FWD_DEFINED__
1705 typedef struct IOleClientSite IOleClientSite;
1706 #endif
1707
1708 typedef IOleClientSite *LPOLECLIENTSITE;
1709
1710 /*****************************************************************************
1711  * IOleClientSite interface
1712  */
1713 #ifndef __IOleClientSite_INTERFACE_DEFINED__
1714 #define __IOleClientSite_INTERFACE_DEFINED__
1715
1716 DEFINE_GUID(IID_IOleClientSite, 0x00000118, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1717 #if defined(__cplusplus) && !defined(CINTERFACE)
1718 struct IOleClientSite : public IUnknown
1719 {
1720     virtual HRESULT STDMETHODCALLTYPE SaveObject(
1721         ) = 0;
1722
1723     virtual HRESULT STDMETHODCALLTYPE GetMoniker(
1724         DWORD dwAssign,
1725         DWORD dwWhichMoniker,
1726         IMoniker** ppmk) = 0;
1727
1728     virtual HRESULT STDMETHODCALLTYPE GetContainer(
1729         IOleContainer** ppContainer) = 0;
1730
1731     virtual HRESULT STDMETHODCALLTYPE ShowObject(
1732         ) = 0;
1733
1734     virtual HRESULT STDMETHODCALLTYPE OnShowWindow(
1735         BOOL fShow) = 0;
1736
1737     virtual HRESULT STDMETHODCALLTYPE RequestNewObjectLayout(
1738         ) = 0;
1739
1740 };
1741 #else
1742 typedef struct IOleClientSiteVtbl IOleClientSiteVtbl;
1743 struct IOleClientSite {
1744     const IOleClientSiteVtbl* lpVtbl;
1745 };
1746 struct IOleClientSiteVtbl {
1747     ICOM_MSVTABLE_COMPAT_FIELDS
1748
1749     /*** IUnknown methods ***/
1750     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1751         IOleClientSite* This,
1752         REFIID riid,
1753         void** ppvObject);
1754
1755     ULONG (STDMETHODCALLTYPE *AddRef)(
1756         IOleClientSite* This);
1757
1758     ULONG (STDMETHODCALLTYPE *Release)(
1759         IOleClientSite* This);
1760
1761     /*** IOleClientSite methods ***/
1762     HRESULT (STDMETHODCALLTYPE *SaveObject)(
1763         IOleClientSite* This);
1764
1765     HRESULT (STDMETHODCALLTYPE *GetMoniker)(
1766         IOleClientSite* This,
1767         DWORD dwAssign,
1768         DWORD dwWhichMoniker,
1769         IMoniker** ppmk);
1770
1771     HRESULT (STDMETHODCALLTYPE *GetContainer)(
1772         IOleClientSite* This,
1773         IOleContainer** ppContainer);
1774
1775     HRESULT (STDMETHODCALLTYPE *ShowObject)(
1776         IOleClientSite* This);
1777
1778     HRESULT (STDMETHODCALLTYPE *OnShowWindow)(
1779         IOleClientSite* This,
1780         BOOL fShow);
1781
1782     HRESULT (STDMETHODCALLTYPE *RequestNewObjectLayout)(
1783         IOleClientSite* This);
1784
1785 };
1786
1787 /*** IUnknown methods ***/
1788 #define IOleClientSite_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1789 #define IOleClientSite_AddRef(p) (p)->lpVtbl->AddRef(p)
1790 #define IOleClientSite_Release(p) (p)->lpVtbl->Release(p)
1791 /*** IOleClientSite methods ***/
1792 #define IOleClientSite_SaveObject(p) (p)->lpVtbl->SaveObject(p)
1793 #define IOleClientSite_GetMoniker(p,a,b,c) (p)->lpVtbl->GetMoniker(p,a,b,c)
1794 #define IOleClientSite_GetContainer(p,a) (p)->lpVtbl->GetContainer(p,a)
1795 #define IOleClientSite_ShowObject(p) (p)->lpVtbl->ShowObject(p)
1796 #define IOleClientSite_OnShowWindow(p,a) (p)->lpVtbl->OnShowWindow(p,a)
1797 #define IOleClientSite_RequestNewObjectLayout(p) (p)->lpVtbl->RequestNewObjectLayout(p)
1798
1799 #endif
1800
1801 #define IOleClientSite_METHODS \
1802     ICOM_MSVTABLE_COMPAT_FIELDS \
1803     /*** IUnknown methods ***/ \
1804     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1805     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1806     STDMETHOD_(ULONG,Release)(THIS) PURE; \
1807     /*** IOleClientSite methods ***/ \
1808     STDMETHOD_(HRESULT,SaveObject)(THIS) PURE; \
1809     STDMETHOD_(HRESULT,GetMoniker)(THIS_ DWORD dwAssign, DWORD dwWhichMoniker, IMoniker** ppmk) PURE; \
1810     STDMETHOD_(HRESULT,GetContainer)(THIS_ IOleContainer** ppContainer) PURE; \
1811     STDMETHOD_(HRESULT,ShowObject)(THIS) PURE; \
1812     STDMETHOD_(HRESULT,OnShowWindow)(THIS_ BOOL fShow) PURE; \
1813     STDMETHOD_(HRESULT,RequestNewObjectLayout)(THIS) PURE;
1814
1815 HRESULT CALLBACK IOleClientSite_SaveObject_Proxy(
1816     IOleClientSite* This);
1817 void __RPC_STUB IOleClientSite_SaveObject_Stub(
1818     struct IRpcStubBuffer* This,
1819     struct IRpcChannelBuffer* pRpcChannelBuffer,
1820     PRPC_MESSAGE pRpcMessage,
1821     DWORD* pdwStubPhase);
1822 HRESULT CALLBACK IOleClientSite_GetMoniker_Proxy(
1823     IOleClientSite* This,
1824     DWORD dwAssign,
1825     DWORD dwWhichMoniker,
1826     IMoniker** ppmk);
1827 void __RPC_STUB IOleClientSite_GetMoniker_Stub(
1828     struct IRpcStubBuffer* This,
1829     struct IRpcChannelBuffer* pRpcChannelBuffer,
1830     PRPC_MESSAGE pRpcMessage,
1831     DWORD* pdwStubPhase);
1832 HRESULT CALLBACK IOleClientSite_GetContainer_Proxy(
1833     IOleClientSite* This,
1834     IOleContainer** ppContainer);
1835 void __RPC_STUB IOleClientSite_GetContainer_Stub(
1836     struct IRpcStubBuffer* This,
1837     struct IRpcChannelBuffer* pRpcChannelBuffer,
1838     PRPC_MESSAGE pRpcMessage,
1839     DWORD* pdwStubPhase);
1840 HRESULT CALLBACK IOleClientSite_ShowObject_Proxy(
1841     IOleClientSite* This);
1842 void __RPC_STUB IOleClientSite_ShowObject_Stub(
1843     struct IRpcStubBuffer* This,
1844     struct IRpcChannelBuffer* pRpcChannelBuffer,
1845     PRPC_MESSAGE pRpcMessage,
1846     DWORD* pdwStubPhase);
1847 HRESULT CALLBACK IOleClientSite_OnShowWindow_Proxy(
1848     IOleClientSite* This,
1849     BOOL fShow);
1850 void __RPC_STUB IOleClientSite_OnShowWindow_Stub(
1851     struct IRpcStubBuffer* This,
1852     struct IRpcChannelBuffer* pRpcChannelBuffer,
1853     PRPC_MESSAGE pRpcMessage,
1854     DWORD* pdwStubPhase);
1855 HRESULT CALLBACK IOleClientSite_RequestNewObjectLayout_Proxy(
1856     IOleClientSite* This);
1857 void __RPC_STUB IOleClientSite_RequestNewObjectLayout_Stub(
1858     struct IRpcStubBuffer* This,
1859     struct IRpcChannelBuffer* pRpcChannelBuffer,
1860     PRPC_MESSAGE pRpcMessage,
1861     DWORD* pdwStubPhase);
1862
1863 #endif  /* __IOleClientSite_INTERFACE_DEFINED__ */
1864
1865 #ifndef __IOleCache_FWD_DEFINED__
1866 #define __IOleCache_FWD_DEFINED__
1867 typedef struct IOleCache IOleCache;
1868 #endif
1869
1870 typedef IOleCache *LPOLECACHE;
1871
1872 /*****************************************************************************
1873  * IOleCache interface
1874  */
1875 #ifndef __IOleCache_INTERFACE_DEFINED__
1876 #define __IOleCache_INTERFACE_DEFINED__
1877
1878 DEFINE_GUID(IID_IOleCache, 0x0000011e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
1879 #if defined(__cplusplus) && !defined(CINTERFACE)
1880 struct IOleCache : public IUnknown
1881 {
1882     virtual HRESULT STDMETHODCALLTYPE Cache(
1883         FORMATETC* pformatetc,
1884         DWORD advf,
1885         DWORD* pdwConnection) = 0;
1886
1887     virtual HRESULT STDMETHODCALLTYPE Uncache(
1888         DWORD dwConnection) = 0;
1889
1890     virtual HRESULT STDMETHODCALLTYPE EnumCache(
1891         IEnumSTATDATA** ppenumSTATDATA) = 0;
1892
1893     virtual HRESULT STDMETHODCALLTYPE InitCache(
1894         IDataObject* pDataObject) = 0;
1895
1896     virtual HRESULT STDMETHODCALLTYPE SetData(
1897         FORMATETC* pformatetc,
1898         STGMEDIUM* pmedium,
1899         BOOL fRelease) = 0;
1900
1901 };
1902 #else
1903 typedef struct IOleCacheVtbl IOleCacheVtbl;
1904 struct IOleCache {
1905     const IOleCacheVtbl* lpVtbl;
1906 };
1907 struct IOleCacheVtbl {
1908     ICOM_MSVTABLE_COMPAT_FIELDS
1909
1910     /*** IUnknown methods ***/
1911     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1912         IOleCache* This,
1913         REFIID riid,
1914         void** ppvObject);
1915
1916     ULONG (STDMETHODCALLTYPE *AddRef)(
1917         IOleCache* This);
1918
1919     ULONG (STDMETHODCALLTYPE *Release)(
1920         IOleCache* This);
1921
1922     /*** IOleCache methods ***/
1923     HRESULT (STDMETHODCALLTYPE *Cache)(
1924         IOleCache* This,
1925         FORMATETC* pformatetc,
1926         DWORD advf,
1927         DWORD* pdwConnection);
1928
1929     HRESULT (STDMETHODCALLTYPE *Uncache)(
1930         IOleCache* This,
1931         DWORD dwConnection);
1932
1933     HRESULT (STDMETHODCALLTYPE *EnumCache)(
1934         IOleCache* This,
1935         IEnumSTATDATA** ppenumSTATDATA);
1936
1937     HRESULT (STDMETHODCALLTYPE *InitCache)(
1938         IOleCache* This,
1939         IDataObject* pDataObject);
1940
1941     HRESULT (STDMETHODCALLTYPE *SetData)(
1942         IOleCache* This,
1943         FORMATETC* pformatetc,
1944         STGMEDIUM* pmedium,
1945         BOOL fRelease);
1946
1947 };
1948
1949 /*** IUnknown methods ***/
1950 #define IOleCache_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1951 #define IOleCache_AddRef(p) (p)->lpVtbl->AddRef(p)
1952 #define IOleCache_Release(p) (p)->lpVtbl->Release(p)
1953 /*** IOleCache methods ***/
1954 #define IOleCache_Cache(p,a,b,c) (p)->lpVtbl->Cache(p,a,b,c)
1955 #define IOleCache_Uncache(p,a) (p)->lpVtbl->Uncache(p,a)
1956 #define IOleCache_EnumCache(p,a) (p)->lpVtbl->EnumCache(p,a)
1957 #define IOleCache_InitCache(p,a) (p)->lpVtbl->InitCache(p,a)
1958 #define IOleCache_SetData(p,a,b,c) (p)->lpVtbl->SetData(p,a,b,c)
1959
1960 #endif
1961
1962 #define IOleCache_METHODS \
1963     ICOM_MSVTABLE_COMPAT_FIELDS \
1964     /*** IUnknown methods ***/ \
1965     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1966     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1967     STDMETHOD_(ULONG,Release)(THIS) PURE; \
1968     /*** IOleCache methods ***/ \
1969     STDMETHOD_(HRESULT,Cache)(THIS_ FORMATETC* pformatetc, DWORD advf, DWORD* pdwConnection) PURE; \
1970     STDMETHOD_(HRESULT,Uncache)(THIS_ DWORD dwConnection) PURE; \
1971     STDMETHOD_(HRESULT,EnumCache)(THIS_ IEnumSTATDATA** ppenumSTATDATA) PURE; \
1972     STDMETHOD_(HRESULT,InitCache)(THIS_ IDataObject* pDataObject) PURE; \
1973     STDMETHOD_(HRESULT,SetData)(THIS_ FORMATETC* pformatetc, STGMEDIUM* pmedium, BOOL fRelease) PURE;
1974
1975 HRESULT CALLBACK IOleCache_Cache_Proxy(
1976     IOleCache* This,
1977     FORMATETC* pformatetc,
1978     DWORD advf,
1979     DWORD* pdwConnection);
1980 void __RPC_STUB IOleCache_Cache_Stub(
1981     struct IRpcStubBuffer* This,
1982     struct IRpcChannelBuffer* pRpcChannelBuffer,
1983     PRPC_MESSAGE pRpcMessage,
1984     DWORD* pdwStubPhase);
1985 HRESULT CALLBACK IOleCache_Uncache_Proxy(
1986     IOleCache* This,
1987     DWORD dwConnection);
1988 void __RPC_STUB IOleCache_Uncache_Stub(
1989     struct IRpcStubBuffer* This,
1990     struct IRpcChannelBuffer* pRpcChannelBuffer,
1991     PRPC_MESSAGE pRpcMessage,
1992     DWORD* pdwStubPhase);
1993 HRESULT CALLBACK IOleCache_EnumCache_Proxy(
1994     IOleCache* This,
1995     IEnumSTATDATA** ppenumSTATDATA);
1996 void __RPC_STUB IOleCache_EnumCache_Stub(
1997     struct IRpcStubBuffer* This,
1998     struct IRpcChannelBuffer* pRpcChannelBuffer,
1999     PRPC_MESSAGE pRpcMessage,
2000     DWORD* pdwStubPhase);
2001 HRESULT CALLBACK IOleCache_InitCache_Proxy(
2002     IOleCache* This,
2003     IDataObject* pDataObject);
2004 void __RPC_STUB IOleCache_InitCache_Stub(
2005     struct IRpcStubBuffer* This,
2006     struct IRpcChannelBuffer* pRpcChannelBuffer,
2007     PRPC_MESSAGE pRpcMessage,
2008     DWORD* pdwStubPhase);
2009 HRESULT CALLBACK IOleCache_SetData_Proxy(
2010     IOleCache* This,
2011     FORMATETC* pformatetc,
2012     STGMEDIUM* pmedium,
2013     BOOL fRelease);
2014 void __RPC_STUB IOleCache_SetData_Stub(
2015     struct IRpcStubBuffer* This,
2016     struct IRpcChannelBuffer* pRpcChannelBuffer,
2017     PRPC_MESSAGE pRpcMessage,
2018     DWORD* pdwStubPhase);
2019
2020 #endif  /* __IOleCache_INTERFACE_DEFINED__ */
2021
2022 #ifndef __IOleCache2_FWD_DEFINED__
2023 #define __IOleCache2_FWD_DEFINED__
2024 typedef struct IOleCache2 IOleCache2;
2025 #endif
2026
2027 typedef IOleCache2 *LPOLECACHE2;
2028
2029 #define UPDFCACHE_NODATACACHE (0x1)
2030
2031 #define UPDFCACHE_ONSAVECACHE (0x2)
2032
2033 #define UPDFCACHE_ONSTOPCACHE (0x4)
2034
2035 #define UPDFCACHE_NORMALCACHE (0x8)
2036
2037 #define UPDFCACHE_IFBLANK (0x10)
2038
2039 #define UPDFCACHE_ONLYIFBLANK (0x80000000)
2040
2041 #define UPDFCACHE_IFBLANKORONSAVECACHE (UPDFCACHE_IFBLANK | UPDFCACHE_ONSAVECACHE)
2042
2043 #define UPDFCACHE_ALL ((DWORD)~UPDFCACHE_ONLYIFBLANK)
2044
2045 #define UPDFCACHE_ALLBUTNODATACACHE (UPDFCACHE_ALL & (DWORD)~UPDFCACHE_NODATACACHE)
2046
2047 typedef enum tagDISCARDCACHE {
2048     DISCARDCACHE_SAVEIFDIRTY = 0,
2049     DISCARDCACHE_NOSAVE = 1
2050 } DISCARDCACHE;
2051
2052 /*****************************************************************************
2053  * IOleCache2 interface
2054  */
2055 #ifndef __IOleCache2_INTERFACE_DEFINED__
2056 #define __IOleCache2_INTERFACE_DEFINED__
2057
2058 DEFINE_GUID(IID_IOleCache2, 0x00000128, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2059 #if defined(__cplusplus) && !defined(CINTERFACE)
2060 struct IOleCache2 : public IOleCache
2061 {
2062     virtual HRESULT STDMETHODCALLTYPE UpdateCache(
2063         LPDATAOBJECT pDataObject,
2064         DWORD grfUpdf,
2065         LPVOID pReserved) = 0;
2066
2067     virtual HRESULT STDMETHODCALLTYPE DiscardCache(
2068         DWORD dwDiscardOptions) = 0;
2069
2070 };
2071 #else
2072 typedef struct IOleCache2Vtbl IOleCache2Vtbl;
2073 struct IOleCache2 {
2074     const IOleCache2Vtbl* lpVtbl;
2075 };
2076 struct IOleCache2Vtbl {
2077     ICOM_MSVTABLE_COMPAT_FIELDS
2078
2079     /*** IUnknown methods ***/
2080     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2081         IOleCache2* This,
2082         REFIID riid,
2083         void** ppvObject);
2084
2085     ULONG (STDMETHODCALLTYPE *AddRef)(
2086         IOleCache2* This);
2087
2088     ULONG (STDMETHODCALLTYPE *Release)(
2089         IOleCache2* This);
2090
2091     /*** IOleCache methods ***/
2092     HRESULT (STDMETHODCALLTYPE *Cache)(
2093         IOleCache2* This,
2094         FORMATETC* pformatetc,
2095         DWORD advf,
2096         DWORD* pdwConnection);
2097
2098     HRESULT (STDMETHODCALLTYPE *Uncache)(
2099         IOleCache2* This,
2100         DWORD dwConnection);
2101
2102     HRESULT (STDMETHODCALLTYPE *EnumCache)(
2103         IOleCache2* This,
2104         IEnumSTATDATA** ppenumSTATDATA);
2105
2106     HRESULT (STDMETHODCALLTYPE *InitCache)(
2107         IOleCache2* This,
2108         IDataObject* pDataObject);
2109
2110     HRESULT (STDMETHODCALLTYPE *SetData)(
2111         IOleCache2* This,
2112         FORMATETC* pformatetc,
2113         STGMEDIUM* pmedium,
2114         BOOL fRelease);
2115
2116     /*** IOleCache2 methods ***/
2117     HRESULT (STDMETHODCALLTYPE *UpdateCache)(
2118         IOleCache2* This,
2119         LPDATAOBJECT pDataObject,
2120         DWORD grfUpdf,
2121         LPVOID pReserved);
2122
2123     HRESULT (STDMETHODCALLTYPE *DiscardCache)(
2124         IOleCache2* This,
2125         DWORD dwDiscardOptions);
2126
2127 };
2128
2129 /*** IUnknown methods ***/
2130 #define IOleCache2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2131 #define IOleCache2_AddRef(p) (p)->lpVtbl->AddRef(p)
2132 #define IOleCache2_Release(p) (p)->lpVtbl->Release(p)
2133 /*** IOleCache methods ***/
2134 #define IOleCache2_Cache(p,a,b,c) (p)->lpVtbl->Cache(p,a,b,c)
2135 #define IOleCache2_Uncache(p,a) (p)->lpVtbl->Uncache(p,a)
2136 #define IOleCache2_EnumCache(p,a) (p)->lpVtbl->EnumCache(p,a)
2137 #define IOleCache2_InitCache(p,a) (p)->lpVtbl->InitCache(p,a)
2138 #define IOleCache2_SetData(p,a,b,c) (p)->lpVtbl->SetData(p,a,b,c)
2139 /*** IOleCache2 methods ***/
2140 #define IOleCache2_UpdateCache(p,a,b,c) (p)->lpVtbl->UpdateCache(p,a,b,c)
2141 #define IOleCache2_DiscardCache(p,a) (p)->lpVtbl->DiscardCache(p,a)
2142
2143 #endif
2144
2145 #define IOleCache2_METHODS \
2146     ICOM_MSVTABLE_COMPAT_FIELDS \
2147     /*** IUnknown methods ***/ \
2148     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2149     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2150     STDMETHOD_(ULONG,Release)(THIS) PURE; \
2151     /*** IOleCache methods ***/ \
2152     STDMETHOD_(HRESULT,Cache)(THIS_ FORMATETC* pformatetc, DWORD advf, DWORD* pdwConnection) PURE; \
2153     STDMETHOD_(HRESULT,Uncache)(THIS_ DWORD dwConnection) PURE; \
2154     STDMETHOD_(HRESULT,EnumCache)(THIS_ IEnumSTATDATA** ppenumSTATDATA) PURE; \
2155     STDMETHOD_(HRESULT,InitCache)(THIS_ IDataObject* pDataObject) PURE; \
2156     STDMETHOD_(HRESULT,SetData)(THIS_ FORMATETC* pformatetc, STGMEDIUM* pmedium, BOOL fRelease) PURE; \
2157     /*** IOleCache2 methods ***/ \
2158     STDMETHOD_(HRESULT,UpdateCache)(THIS_ LPDATAOBJECT pDataObject, DWORD grfUpdf, LPVOID pReserved) PURE; \
2159     STDMETHOD_(HRESULT,DiscardCache)(THIS_ DWORD dwDiscardOptions) PURE;
2160
2161 HRESULT CALLBACK IOleCache2_RemoteUpdateCache_Proxy(
2162     IOleCache2* This,
2163     LPDATAOBJECT pDataObject,
2164     DWORD grfUpdf,
2165     LONG_PTR pReserved);
2166 void __RPC_STUB IOleCache2_RemoteUpdateCache_Stub(
2167     struct IRpcStubBuffer* This,
2168     struct IRpcChannelBuffer* pRpcChannelBuffer,
2169     PRPC_MESSAGE pRpcMessage,
2170     DWORD* pdwStubPhase);
2171 HRESULT CALLBACK IOleCache2_UpdateCache_Proxy(
2172     IOleCache2* This,
2173     LPDATAOBJECT pDataObject,
2174     DWORD grfUpdf,
2175     LPVOID pReserved);
2176 HRESULT __RPC_STUB IOleCache2_UpdateCache_Stub(
2177     IOleCache2* This,
2178     LPDATAOBJECT pDataObject,
2179     DWORD grfUpdf,
2180     LONG_PTR pReserved);
2181 HRESULT CALLBACK IOleCache2_DiscardCache_Proxy(
2182     IOleCache2* This,
2183     DWORD dwDiscardOptions);
2184 void __RPC_STUB IOleCache2_DiscardCache_Stub(
2185     struct IRpcStubBuffer* This,
2186     struct IRpcChannelBuffer* pRpcChannelBuffer,
2187     PRPC_MESSAGE pRpcMessage,
2188     DWORD* pdwStubPhase);
2189
2190 #endif  /* __IOleCache2_INTERFACE_DEFINED__ */
2191
2192 #ifndef __IOleCacheControl_FWD_DEFINED__
2193 #define __IOleCacheControl_FWD_DEFINED__
2194 typedef struct IOleCacheControl IOleCacheControl;
2195 #endif
2196
2197 typedef IOleCacheControl *LPOLECACHECONTROL;
2198
2199 /*****************************************************************************
2200  * IOleCacheControl interface
2201  */
2202 #ifndef __IOleCacheControl_INTERFACE_DEFINED__
2203 #define __IOleCacheControl_INTERFACE_DEFINED__
2204
2205 DEFINE_GUID(IID_IOleCacheControl, 0x00000129, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2206 #if defined(__cplusplus) && !defined(CINTERFACE)
2207 struct IOleCacheControl : public IUnknown
2208 {
2209     virtual HRESULT STDMETHODCALLTYPE OnRun(
2210         LPDATAOBJECT pDataObject) = 0;
2211
2212     virtual HRESULT STDMETHODCALLTYPE OnStop(
2213         ) = 0;
2214
2215 };
2216 #else
2217 typedef struct IOleCacheControlVtbl IOleCacheControlVtbl;
2218 struct IOleCacheControl {
2219     const IOleCacheControlVtbl* lpVtbl;
2220 };
2221 struct IOleCacheControlVtbl {
2222     ICOM_MSVTABLE_COMPAT_FIELDS
2223
2224     /*** IUnknown methods ***/
2225     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2226         IOleCacheControl* This,
2227         REFIID riid,
2228         void** ppvObject);
2229
2230     ULONG (STDMETHODCALLTYPE *AddRef)(
2231         IOleCacheControl* This);
2232
2233     ULONG (STDMETHODCALLTYPE *Release)(
2234         IOleCacheControl* This);
2235
2236     /*** IOleCacheControl methods ***/
2237     HRESULT (STDMETHODCALLTYPE *OnRun)(
2238         IOleCacheControl* This,
2239         LPDATAOBJECT pDataObject);
2240
2241     HRESULT (STDMETHODCALLTYPE *OnStop)(
2242         IOleCacheControl* This);
2243
2244 };
2245
2246 /*** IUnknown methods ***/
2247 #define IOleCacheControl_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2248 #define IOleCacheControl_AddRef(p) (p)->lpVtbl->AddRef(p)
2249 #define IOleCacheControl_Release(p) (p)->lpVtbl->Release(p)
2250 /*** IOleCacheControl methods ***/
2251 #define IOleCacheControl_OnRun(p,a) (p)->lpVtbl->OnRun(p,a)
2252 #define IOleCacheControl_OnStop(p) (p)->lpVtbl->OnStop(p)
2253
2254 #endif
2255
2256 #define IOleCacheControl_METHODS \
2257     ICOM_MSVTABLE_COMPAT_FIELDS \
2258     /*** IUnknown methods ***/ \
2259     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2260     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2261     STDMETHOD_(ULONG,Release)(THIS) PURE; \
2262     /*** IOleCacheControl methods ***/ \
2263     STDMETHOD_(HRESULT,OnRun)(THIS_ LPDATAOBJECT pDataObject) PURE; \
2264     STDMETHOD_(HRESULT,OnStop)(THIS) PURE;
2265
2266 HRESULT CALLBACK IOleCacheControl_OnRun_Proxy(
2267     IOleCacheControl* This,
2268     LPDATAOBJECT pDataObject);
2269 void __RPC_STUB IOleCacheControl_OnRun_Stub(
2270     struct IRpcStubBuffer* This,
2271     struct IRpcChannelBuffer* pRpcChannelBuffer,
2272     PRPC_MESSAGE pRpcMessage,
2273     DWORD* pdwStubPhase);
2274 HRESULT CALLBACK IOleCacheControl_OnStop_Proxy(
2275     IOleCacheControl* This);
2276 void __RPC_STUB IOleCacheControl_OnStop_Stub(
2277     struct IRpcStubBuffer* This,
2278     struct IRpcChannelBuffer* pRpcChannelBuffer,
2279     PRPC_MESSAGE pRpcMessage,
2280     DWORD* pdwStubPhase);
2281
2282 #endif  /* __IOleCacheControl_INTERFACE_DEFINED__ */
2283
2284 #ifndef __IEnumOLEVERB_FWD_DEFINED__
2285 #define __IEnumOLEVERB_FWD_DEFINED__
2286 typedef struct IEnumOLEVERB IEnumOLEVERB;
2287 #endif
2288
2289 typedef IEnumOLEVERB *LPENUMOLEVERB;
2290
2291 typedef struct tagOLEVERB {
2292     LONG lVerb;
2293     LPOLESTR lpszVerbName;
2294     DWORD fuFlags;
2295     DWORD grfAttribs;
2296 } OLEVERB, *LPOLEVERB;
2297
2298 typedef enum tagOLEVERBATTRIB {
2299     OLEVERBATTRIB_NEVERDIRTIES = 1,
2300     OLEVERBATTRIB_ONCONTAINERMENU = 2
2301 } OLEVERBATTRIB;
2302
2303 /*****************************************************************************
2304  * IEnumOLEVERB interface
2305  */
2306 #ifndef __IEnumOLEVERB_INTERFACE_DEFINED__
2307 #define __IEnumOLEVERB_INTERFACE_DEFINED__
2308
2309 DEFINE_GUID(IID_IEnumOLEVERB, 0x00000104, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2310 #if defined(__cplusplus) && !defined(CINTERFACE)
2311 struct IEnumOLEVERB : public IUnknown
2312 {
2313     virtual HRESULT STDMETHODCALLTYPE Next(
2314         ULONG celt,
2315         LPOLEVERB rgelt,
2316         ULONG* pceltFetched) = 0;
2317
2318     virtual HRESULT STDMETHODCALLTYPE Skip(
2319         ULONG celt) = 0;
2320
2321     virtual HRESULT STDMETHODCALLTYPE Reset(
2322         ) = 0;
2323
2324     virtual HRESULT STDMETHODCALLTYPE Clone(
2325         IEnumOLEVERB** ppenum) = 0;
2326
2327 };
2328 #else
2329 typedef struct IEnumOLEVERBVtbl IEnumOLEVERBVtbl;
2330 struct IEnumOLEVERB {
2331     const IEnumOLEVERBVtbl* lpVtbl;
2332 };
2333 struct IEnumOLEVERBVtbl {
2334     ICOM_MSVTABLE_COMPAT_FIELDS
2335
2336     /*** IUnknown methods ***/
2337     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2338         IEnumOLEVERB* This,
2339         REFIID riid,
2340         void** ppvObject);
2341
2342     ULONG (STDMETHODCALLTYPE *AddRef)(
2343         IEnumOLEVERB* This);
2344
2345     ULONG (STDMETHODCALLTYPE *Release)(
2346         IEnumOLEVERB* This);
2347
2348     /*** IEnumOLEVERB methods ***/
2349     HRESULT (STDMETHODCALLTYPE *Next)(
2350         IEnumOLEVERB* This,
2351         ULONG celt,
2352         LPOLEVERB rgelt,
2353         ULONG* pceltFetched);
2354
2355     HRESULT (STDMETHODCALLTYPE *Skip)(
2356         IEnumOLEVERB* This,
2357         ULONG celt);
2358
2359     HRESULT (STDMETHODCALLTYPE *Reset)(
2360         IEnumOLEVERB* This);
2361
2362     HRESULT (STDMETHODCALLTYPE *Clone)(
2363         IEnumOLEVERB* This,
2364         IEnumOLEVERB** ppenum);
2365
2366 };
2367
2368 /*** IUnknown methods ***/
2369 #define IEnumOLEVERB_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2370 #define IEnumOLEVERB_AddRef(p) (p)->lpVtbl->AddRef(p)
2371 #define IEnumOLEVERB_Release(p) (p)->lpVtbl->Release(p)
2372 /*** IEnumOLEVERB methods ***/
2373 #define IEnumOLEVERB_Next(p,a,b,c) (p)->lpVtbl->Next(p,a,b,c)
2374 #define IEnumOLEVERB_Skip(p,a) (p)->lpVtbl->Skip(p,a)
2375 #define IEnumOLEVERB_Reset(p) (p)->lpVtbl->Reset(p)
2376 #define IEnumOLEVERB_Clone(p,a) (p)->lpVtbl->Clone(p,a)
2377
2378 #endif
2379
2380 #define IEnumOLEVERB_METHODS \
2381     ICOM_MSVTABLE_COMPAT_FIELDS \
2382     /*** IUnknown methods ***/ \
2383     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2384     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2385     STDMETHOD_(ULONG,Release)(THIS) PURE; \
2386     /*** IEnumOLEVERB methods ***/ \
2387     STDMETHOD_(HRESULT,Next)(THIS_ ULONG celt, LPOLEVERB rgelt, ULONG* pceltFetched) PURE; \
2388     STDMETHOD_(HRESULT,Skip)(THIS_ ULONG celt) PURE; \
2389     STDMETHOD_(HRESULT,Reset)(THIS) PURE; \
2390     STDMETHOD_(HRESULT,Clone)(THIS_ IEnumOLEVERB** ppenum) PURE;
2391
2392 HRESULT CALLBACK IEnumOLEVERB_RemoteNext_Proxy(
2393     IEnumOLEVERB* This,
2394     ULONG celt,
2395     LPOLEVERB rgelt,
2396     ULONG* pceltFetched);
2397 void __RPC_STUB IEnumOLEVERB_RemoteNext_Stub(
2398     struct IRpcStubBuffer* This,
2399     struct IRpcChannelBuffer* pRpcChannelBuffer,
2400     PRPC_MESSAGE pRpcMessage,
2401     DWORD* pdwStubPhase);
2402 HRESULT CALLBACK IEnumOLEVERB_Next_Proxy(
2403     IEnumOLEVERB* This,
2404     ULONG celt,
2405     LPOLEVERB rgelt,
2406     ULONG* pceltFetched);
2407 HRESULT __RPC_STUB IEnumOLEVERB_Next_Stub(
2408     IEnumOLEVERB* This,
2409     ULONG celt,
2410     LPOLEVERB rgelt,
2411     ULONG* pceltFetched);
2412 HRESULT CALLBACK IEnumOLEVERB_Skip_Proxy(
2413     IEnumOLEVERB* This,
2414     ULONG celt);
2415 void __RPC_STUB IEnumOLEVERB_Skip_Stub(
2416     struct IRpcStubBuffer* This,
2417     struct IRpcChannelBuffer* pRpcChannelBuffer,
2418     PRPC_MESSAGE pRpcMessage,
2419     DWORD* pdwStubPhase);
2420 HRESULT CALLBACK IEnumOLEVERB_Reset_Proxy(
2421     IEnumOLEVERB* This);
2422 void __RPC_STUB IEnumOLEVERB_Reset_Stub(
2423     struct IRpcStubBuffer* This,
2424     struct IRpcChannelBuffer* pRpcChannelBuffer,
2425     PRPC_MESSAGE pRpcMessage,
2426     DWORD* pdwStubPhase);
2427 HRESULT CALLBACK IEnumOLEVERB_Clone_Proxy(
2428     IEnumOLEVERB* This,
2429     IEnumOLEVERB** ppenum);
2430 void __RPC_STUB IEnumOLEVERB_Clone_Stub(
2431     struct IRpcStubBuffer* This,
2432     struct IRpcChannelBuffer* pRpcChannelBuffer,
2433     PRPC_MESSAGE pRpcMessage,
2434     DWORD* pdwStubPhase);
2435
2436 #endif  /* __IEnumOLEVERB_INTERFACE_DEFINED__ */
2437
2438 #ifndef __IOleObject_FWD_DEFINED__
2439 #define __IOleObject_FWD_DEFINED__
2440 typedef struct IOleObject IOleObject;
2441 #endif
2442
2443 typedef IOleObject *LPOLEOBJECT;
2444
2445 typedef enum tagOLEGETMONIKER {
2446     OLEGETMONIKER_ONLYIFTHERE = 1,
2447     OLEGETMONIKER_FORCEASSIGN = 2,
2448     OLEGETMONIKER_UNASSIGN = 3,
2449     OLEGETMONIKER_TEMPFORUSER = 4
2450 } OLEGETMONIKER;
2451
2452 typedef enum tagOLEWHICHMK {
2453     OLEWHICHMK_CONTAINER = 1,
2454     OLEWHICHMK_OBJREL = 2,
2455     OLEWHICHMK_OBJFULL = 3
2456 } OLEWHICHMK;
2457
2458 typedef enum tagUSERCLASSTYPE {
2459     USERCLASSTYPE_FULL = 1,
2460     USERCLASSTYPE_SHORT = 2,
2461     USERCLASSTYPE_APPNAME = 3
2462 } USERCLASSTYPE;
2463
2464 typedef enum tagOLEMISC {
2465     OLEMISC_RECOMPOSEONRESIZE = 0x1,
2466     OLEMISC_ONLYICONIC = 0x2,
2467     OLEMISC_INSERTNOTREPLACE = 0x4,
2468     OLEMISC_STATIC = 0x8,
2469     OLEMISC_CANTLINKINSIDE = 0x10,
2470     OLEMISC_CANLINKBYOLE1 = 0x20,
2471     OLEMISC_ISLINKOBJECT = 0x40,
2472     OLEMISC_INSIDEOUT = 0x80,
2473     OLEMISC_ACTIVATEWHENVISIBLE = 0x100,
2474     OLEMISC_RENDERINGISDEVICEINDEPENDENT = 0x200,
2475     OLEMISC_INVISIBLEATRUNTIME = 0x400,
2476     OLEMISC_ALWAYSRUN = 0x800,
2477     OLEMISC_ACTSLIKEBUTTON = 0x1000,
2478     OLEMISC_ACTSLIKELABEL = 0x2000,
2479     OLEMISC_NOUIACTIVATE = 0x4000,
2480     OLEMISC_ALIGNABLE = 0x8000,
2481     OLEMISC_SIMPLEFRAME = 0x10000,
2482     OLEMISC_SETCLIENTSITEFIRST = 0x20000,
2483     OLEMISC_IMEMODE = 0x40000,
2484     OLEMISC_IGNOREACTIVATEWHENVISIBLE = 0x80000,
2485     OLEMISC_WANTSTOMENUMERGE = 0x100000,
2486     OLEMISC_SUPPORTSMULTILEVELUNDO = 0x200000
2487 } OLEMISC;
2488
2489 typedef enum tagOLECLOSE {
2490     OLECLOSE_SAVEIFDIRTY = 0,
2491     OLECLOSE_NOSAVE = 1,
2492     OLECLOSE_PROMPTSAVE = 2
2493 } OLECLOSE;
2494
2495 /*****************************************************************************
2496  * IOleObject interface
2497  */
2498 #ifndef __IOleObject_INTERFACE_DEFINED__
2499 #define __IOleObject_INTERFACE_DEFINED__
2500
2501 DEFINE_GUID(IID_IOleObject, 0x00000112, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2502 #if defined(__cplusplus) && !defined(CINTERFACE)
2503 struct IOleObject : public IUnknown
2504 {
2505     virtual HRESULT STDMETHODCALLTYPE SetClientSite(
2506         IOleClientSite* pClientSite) = 0;
2507
2508     virtual HRESULT STDMETHODCALLTYPE GetClientSite(
2509         IOleClientSite** ppClientSite) = 0;
2510
2511     virtual HRESULT STDMETHODCALLTYPE SetHostNames(
2512         LPCOLESTR szContainerApp,
2513         LPCOLESTR szContainerObj) = 0;
2514
2515     virtual HRESULT STDMETHODCALLTYPE Close(
2516         DWORD dwSaveOption) = 0;
2517
2518     virtual HRESULT STDMETHODCALLTYPE SetMoniker(
2519         DWORD dwWhichMoniker,
2520         IMoniker* pmk) = 0;
2521
2522     virtual HRESULT STDMETHODCALLTYPE GetMoniker(
2523         DWORD dwAssign,
2524         DWORD dwWhichMoniker,
2525         IMoniker** ppmk) = 0;
2526
2527     virtual HRESULT STDMETHODCALLTYPE InitFromData(
2528         IDataObject* pDataObject,
2529         BOOL fCreation,
2530         DWORD dwReserved) = 0;
2531
2532     virtual HRESULT STDMETHODCALLTYPE GetClipboardData(
2533         DWORD dwReserved,
2534         IDataObject** ppDataObject) = 0;
2535
2536     virtual HRESULT STDMETHODCALLTYPE DoVerb(
2537         LONG iVerb,
2538         LPMSG lpmsg,
2539         IOleClientSite* pActiveSite,
2540         LONG lindex,
2541         HWND hwndParent,
2542         LPCRECT lprcPosRect) = 0;
2543
2544     virtual HRESULT STDMETHODCALLTYPE EnumVerbs(
2545         IEnumOLEVERB** ppEnumOleVerb) = 0;
2546
2547     virtual HRESULT STDMETHODCALLTYPE Update(
2548         ) = 0;
2549
2550     virtual HRESULT STDMETHODCALLTYPE IsUpToDate(
2551         ) = 0;
2552
2553     virtual HRESULT STDMETHODCALLTYPE GetUserClassID(
2554         CLSID* pClsid) = 0;
2555
2556     virtual HRESULT STDMETHODCALLTYPE GetUserType(
2557         DWORD dwFormOfType,
2558         LPOLESTR* pszUserType) = 0;
2559
2560     virtual HRESULT STDMETHODCALLTYPE SetExtent(
2561         DWORD dwDrawAspect,
2562         SIZEL* psizel) = 0;
2563
2564     virtual HRESULT STDMETHODCALLTYPE GetExtent(
2565         DWORD dwDrawAspect,
2566         SIZEL* psizel) = 0;
2567
2568     virtual HRESULT STDMETHODCALLTYPE Advise(
2569         IAdviseSink* pAdvSink,
2570         DWORD* pdwConnection) = 0;
2571
2572     virtual HRESULT STDMETHODCALLTYPE Unadvise(
2573         DWORD dwConnection) = 0;
2574
2575     virtual HRESULT STDMETHODCALLTYPE EnumAdvise(
2576         IEnumSTATDATA** ppenumAdvise) = 0;
2577
2578     virtual HRESULT STDMETHODCALLTYPE GetMiscStatus(
2579         DWORD dwAspect,
2580         DWORD* pdwStatus) = 0;
2581
2582     virtual HRESULT STDMETHODCALLTYPE SetColorScheme(
2583         LOGPALETTE* pLogpal) = 0;
2584
2585 };
2586 #else
2587 typedef struct IOleObjectVtbl IOleObjectVtbl;
2588 struct IOleObject {
2589     const IOleObjectVtbl* lpVtbl;
2590 };
2591 struct IOleObjectVtbl {
2592     ICOM_MSVTABLE_COMPAT_FIELDS
2593
2594     /*** IUnknown methods ***/
2595     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2596         IOleObject* This,
2597         REFIID riid,
2598         void** ppvObject);
2599
2600     ULONG (STDMETHODCALLTYPE *AddRef)(
2601         IOleObject* This);
2602
2603     ULONG (STDMETHODCALLTYPE *Release)(
2604         IOleObject* This);
2605
2606     /*** IOleObject methods ***/
2607     HRESULT (STDMETHODCALLTYPE *SetClientSite)(
2608         IOleObject* This,
2609         IOleClientSite* pClientSite);
2610
2611     HRESULT (STDMETHODCALLTYPE *GetClientSite)(
2612         IOleObject* This,
2613         IOleClientSite** ppClientSite);
2614
2615     HRESULT (STDMETHODCALLTYPE *SetHostNames)(
2616         IOleObject* This,
2617         LPCOLESTR szContainerApp,
2618         LPCOLESTR szContainerObj);
2619
2620     HRESULT (STDMETHODCALLTYPE *Close)(
2621         IOleObject* This,
2622         DWORD dwSaveOption);
2623
2624     HRESULT (STDMETHODCALLTYPE *SetMoniker)(
2625         IOleObject* This,
2626         DWORD dwWhichMoniker,
2627         IMoniker* pmk);
2628
2629     HRESULT (STDMETHODCALLTYPE *GetMoniker)(
2630         IOleObject* This,
2631         DWORD dwAssign,
2632         DWORD dwWhichMoniker,
2633         IMoniker** ppmk);
2634
2635     HRESULT (STDMETHODCALLTYPE *InitFromData)(
2636         IOleObject* This,
2637         IDataObject* pDataObject,
2638         BOOL fCreation,
2639         DWORD dwReserved);
2640
2641     HRESULT (STDMETHODCALLTYPE *GetClipboardData)(
2642         IOleObject* This,
2643         DWORD dwReserved,
2644         IDataObject** ppDataObject);
2645
2646     HRESULT (STDMETHODCALLTYPE *DoVerb)(
2647         IOleObject* This,
2648         LONG iVerb,
2649         LPMSG lpmsg,
2650         IOleClientSite* pActiveSite,
2651         LONG lindex,
2652         HWND hwndParent,
2653         LPCRECT lprcPosRect);
2654
2655     HRESULT (STDMETHODCALLTYPE *EnumVerbs)(
2656         IOleObject* This,
2657         IEnumOLEVERB** ppEnumOleVerb);
2658
2659     HRESULT (STDMETHODCALLTYPE *Update)(
2660         IOleObject* This);
2661
2662     HRESULT (STDMETHODCALLTYPE *IsUpToDate)(
2663         IOleObject* This);
2664
2665     HRESULT (STDMETHODCALLTYPE *GetUserClassID)(
2666         IOleObject* This,
2667         CLSID* pClsid);
2668
2669     HRESULT (STDMETHODCALLTYPE *GetUserType)(
2670         IOleObject* This,
2671         DWORD dwFormOfType,
2672         LPOLESTR* pszUserType);
2673
2674     HRESULT (STDMETHODCALLTYPE *SetExtent)(
2675         IOleObject* This,
2676         DWORD dwDrawAspect,
2677         SIZEL* psizel);
2678
2679     HRESULT (STDMETHODCALLTYPE *GetExtent)(
2680         IOleObject* This,
2681         DWORD dwDrawAspect,
2682         SIZEL* psizel);
2683
2684     HRESULT (STDMETHODCALLTYPE *Advise)(
2685         IOleObject* This,
2686         IAdviseSink* pAdvSink,
2687         DWORD* pdwConnection);
2688
2689     HRESULT (STDMETHODCALLTYPE *Unadvise)(
2690         IOleObject* This,
2691         DWORD dwConnection);
2692
2693     HRESULT (STDMETHODCALLTYPE *EnumAdvise)(
2694         IOleObject* This,
2695         IEnumSTATDATA** ppenumAdvise);
2696
2697     HRESULT (STDMETHODCALLTYPE *GetMiscStatus)(
2698         IOleObject* This,
2699         DWORD dwAspect,
2700         DWORD* pdwStatus);
2701
2702     HRESULT (STDMETHODCALLTYPE *SetColorScheme)(
2703         IOleObject* This,
2704         LOGPALETTE* pLogpal);
2705
2706 };
2707
2708 /*** IUnknown methods ***/
2709 #define IOleObject_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
2710 #define IOleObject_AddRef(p) (p)->lpVtbl->AddRef(p)
2711 #define IOleObject_Release(p) (p)->lpVtbl->Release(p)
2712 /*** IOleObject methods ***/
2713 #define IOleObject_SetClientSite(p,a) (p)->lpVtbl->SetClientSite(p,a)
2714 #define IOleObject_GetClientSite(p,a) (p)->lpVtbl->GetClientSite(p,a)
2715 #define IOleObject_SetHostNames(p,a,b) (p)->lpVtbl->SetHostNames(p,a,b)
2716 #define IOleObject_Close(p,a) (p)->lpVtbl->Close(p,a)
2717 #define IOleObject_SetMoniker(p,a,b) (p)->lpVtbl->SetMoniker(p,a,b)
2718 #define IOleObject_GetMoniker(p,a,b,c) (p)->lpVtbl->GetMoniker(p,a,b,c)
2719 #define IOleObject_InitFromData(p,a,b,c) (p)->lpVtbl->InitFromData(p,a,b,c)
2720 #define IOleObject_GetClipboardData(p,a,b) (p)->lpVtbl->GetClipboardData(p,a,b)
2721 #define IOleObject_DoVerb(p,a,b,c,d,e,f) (p)->lpVtbl->DoVerb(p,a,b,c,d,e,f)
2722 #define IOleObject_EnumVerbs(p,a) (p)->lpVtbl->EnumVerbs(p,a)
2723 #define IOleObject_Update(p) (p)->lpVtbl->Update(p)
2724 #define IOleObject_IsUpToDate(p) (p)->lpVtbl->IsUpToDate(p)
2725 #define IOleObject_GetUserClassID(p,a) (p)->lpVtbl->GetUserClassID(p,a)
2726 #define IOleObject_GetUserType(p,a,b) (p)->lpVtbl->GetUserType(p,a,b)
2727 #define IOleObject_SetExtent(p,a,b) (p)->lpVtbl->SetExtent(p,a,b)
2728 #define IOleObject_GetExtent(p,a,b) (p)->lpVtbl->GetExtent(p,a,b)
2729 #define IOleObject_Advise(p,a,b) (p)->lpVtbl->Advise(p,a,b)
2730 #define IOleObject_Unadvise(p,a) (p)->lpVtbl->Unadvise(p,a)
2731 #define IOleObject_EnumAdvise(p,a) (p)->lpVtbl->EnumAdvise(p,a)
2732 #define IOleObject_GetMiscStatus(p,a,b) (p)->lpVtbl->GetMiscStatus(p,a,b)
2733 #define IOleObject_SetColorScheme(p,a) (p)->lpVtbl->SetColorScheme(p,a)
2734
2735 #endif
2736
2737 #define IOleObject_METHODS \
2738     ICOM_MSVTABLE_COMPAT_FIELDS \
2739     /*** IUnknown methods ***/ \
2740     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
2741     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
2742     STDMETHOD_(ULONG,Release)(THIS) PURE; \
2743     /*** IOleObject methods ***/ \
2744     STDMETHOD_(HRESULT,SetClientSite)(THIS_ IOleClientSite* pClientSite) PURE; \
2745     STDMETHOD_(HRESULT,GetClientSite)(THIS_ IOleClientSite** ppClientSite) PURE; \
2746     STDMETHOD_(HRESULT,SetHostNames)(THIS_ LPCOLESTR szContainerApp, LPCOLESTR szContainerObj) PURE; \
2747     STDMETHOD_(HRESULT,Close)(THIS_ DWORD dwSaveOption) PURE; \
2748     STDMETHOD_(HRESULT,SetMoniker)(THIS_ DWORD dwWhichMoniker, IMoniker* pmk) PURE; \
2749     STDMETHOD_(HRESULT,GetMoniker)(THIS_ DWORD dwAssign, DWORD dwWhichMoniker, IMoniker** ppmk) PURE; \
2750     STDMETHOD_(HRESULT,InitFromData)(THIS_ IDataObject* pDataObject, BOOL fCreation, DWORD dwReserved) PURE; \
2751     STDMETHOD_(HRESULT,GetClipboardData)(THIS_ DWORD dwReserved, IDataObject** ppDataObject) PURE; \
2752     STDMETHOD_(HRESULT,DoVerb)(THIS_ LONG iVerb, LPMSG lpmsg, IOleClientSite* pActiveSite, LONG lindex, HWND hwndParent, LPCRECT lprcPosRect) PURE; \
2753     STDMETHOD_(HRESULT,EnumVerbs)(THIS_ IEnumOLEVERB** ppEnumOleVerb) PURE; \
2754     STDMETHOD_(HRESULT,Update)(THIS) PURE; \
2755     STDMETHOD_(HRESULT,IsUpToDate)(THIS) PURE; \
2756     STDMETHOD_(HRESULT,GetUserClassID)(THIS_ CLSID* pClsid) PURE; \
2757     STDMETHOD_(HRESULT,GetUserType)(THIS_ DWORD dwFormOfType, LPOLESTR* pszUserType) PURE; \
2758     STDMETHOD_(HRESULT,SetExtent)(THIS_ DWORD dwDrawAspect, SIZEL* psizel) PURE; \
2759     STDMETHOD_(HRESULT,GetExtent)(THIS_ DWORD dwDrawAspect, SIZEL* psizel) PURE; \
2760     STDMETHOD_(HRESULT,Advise)(THIS_ IAdviseSink* pAdvSink, DWORD* pdwConnection) PURE; \
2761     STDMETHOD_(HRESULT,Unadvise)(THIS_ DWORD dwConnection) PURE; \
2762     STDMETHOD_(HRESULT,EnumAdvise)(THIS_ IEnumSTATDATA** ppenumAdvise) PURE; \
2763     STDMETHOD_(HRESULT,GetMiscStatus)(THIS_ DWORD dwAspect, DWORD* pdwStatus) PURE; \
2764     STDMETHOD_(HRESULT,SetColorScheme)(THIS_ LOGPALETTE* pLogpal) PURE;
2765
2766 HRESULT CALLBACK IOleObject_SetClientSite_Proxy(
2767     IOleObject* This,
2768     IOleClientSite* pClientSite);
2769 void __RPC_STUB IOleObject_SetClientSite_Stub(
2770     struct IRpcStubBuffer* This,
2771     struct IRpcChannelBuffer* pRpcChannelBuffer,
2772     PRPC_MESSAGE pRpcMessage,
2773     DWORD* pdwStubPhase);
2774 HRESULT CALLBACK IOleObject_GetClientSite_Proxy(
2775     IOleObject* This,
2776     IOleClientSite** ppClientSite);
2777 void __RPC_STUB IOleObject_GetClientSite_Stub(
2778     struct IRpcStubBuffer* This,
2779     struct IRpcChannelBuffer* pRpcChannelBuffer,
2780     PRPC_MESSAGE pRpcMessage,
2781     DWORD* pdwStubPhase);
2782 HRESULT CALLBACK IOleObject_SetHostNames_Proxy(
2783     IOleObject* This,
2784     LPCOLESTR szContainerApp,
2785     LPCOLESTR szContainerObj);
2786 void __RPC_STUB IOleObject_SetHostNames_Stub(
2787     struct IRpcStubBuffer* This,
2788     struct IRpcChannelBuffer* pRpcChannelBuffer,
2789     PRPC_MESSAGE pRpcMessage,
2790     DWORD* pdwStubPhase);
2791 HRESULT CALLBACK IOleObject_Close_Proxy(
2792     IOleObject* This,
2793     DWORD dwSaveOption);
2794 void __RPC_STUB IOleObject_Close_Stub(
2795     struct IRpcStubBuffer* This,
2796     struct IRpcChannelBuffer* pRpcChannelBuffer,
2797     PRPC_MESSAGE pRpcMessage,
2798     DWORD* pdwStubPhase);
2799 HRESULT CALLBACK IOleObject_SetMoniker_Proxy(
2800     IOleObject* This,
2801     DWORD dwWhichMoniker,
2802     IMoniker* pmk);
2803 void __RPC_STUB IOleObject_SetMoniker_Stub(
2804     struct IRpcStubBuffer* This,
2805     struct IRpcChannelBuffer* pRpcChannelBuffer,
2806     PRPC_MESSAGE pRpcMessage,
2807     DWORD* pdwStubPhase);
2808 HRESULT CALLBACK IOleObject_GetMoniker_Proxy(
2809     IOleObject* This,
2810     DWORD dwAssign,
2811     DWORD dwWhichMoniker,
2812     IMoniker** ppmk);
2813 void __RPC_STUB IOleObject_GetMoniker_Stub(
2814     struct IRpcStubBuffer* This,
2815     struct IRpcChannelBuffer* pRpcChannelBuffer,
2816     PRPC_MESSAGE pRpcMessage,
2817     DWORD* pdwStubPhase);
2818 HRESULT CALLBACK IOleObject_InitFromData_Proxy(
2819     IOleObject* This,
2820     IDataObject* pDataObject,
2821     BOOL fCreation,
2822     DWORD dwReserved);
2823 void __RPC_STUB IOleObject_InitFromData_Stub(
2824     struct IRpcStubBuffer* This,
2825     struct IRpcChannelBuffer* pRpcChannelBuffer,
2826     PRPC_MESSAGE pRpcMessage,
2827     DWORD* pdwStubPhase);
2828 HRESULT CALLBACK IOleObject_GetClipboardData_Proxy(
2829     IOleObject* This,
2830     DWORD dwReserved,
2831     IDataObject** ppDataObject);
2832 void __RPC_STUB IOleObject_GetClipboardData_Stub(
2833     struct IRpcStubBuffer* This,
2834     struct IRpcChannelBuffer* pRpcChannelBuffer,
2835     PRPC_MESSAGE pRpcMessage,
2836     DWORD* pdwStubPhase);
2837 HRESULT CALLBACK IOleObject_DoVerb_Proxy(
2838     IOleObject* This,
2839     LONG iVerb,
2840     LPMSG lpmsg,
2841     IOleClientSite* pActiveSite,
2842     LONG lindex,
2843     HWND hwndParent,
2844     LPCRECT lprcPosRect);
2845 void __RPC_STUB IOleObject_DoVerb_Stub(
2846     struct IRpcStubBuffer* This,
2847     struct IRpcChannelBuffer* pRpcChannelBuffer,
2848     PRPC_MESSAGE pRpcMessage,
2849     DWORD* pdwStubPhase);
2850 HRESULT CALLBACK IOleObject_EnumVerbs_Proxy(
2851     IOleObject* This,
2852     IEnumOLEVERB** ppEnumOleVerb);
2853 void __RPC_STUB IOleObject_EnumVerbs_Stub(
2854     struct IRpcStubBuffer* This,
2855     struct IRpcChannelBuffer* pRpcChannelBuffer,
2856     PRPC_MESSAGE pRpcMessage,
2857     DWORD* pdwStubPhase);
2858 HRESULT CALLBACK IOleObject_Update_Proxy(
2859     IOleObject* This);
2860 void __RPC_STUB IOleObject_Update_Stub(
2861     struct IRpcStubBuffer* This,
2862     struct IRpcChannelBuffer* pRpcChannelBuffer,
2863     PRPC_MESSAGE pRpcMessage,
2864     DWORD* pdwStubPhase);
2865 HRESULT CALLBACK IOleObject_IsUpToDate_Proxy(
2866     IOleObject* This);
2867 void __RPC_STUB IOleObject_IsUpToDate_Stub(
2868     struct IRpcStubBuffer* This,
2869     struct IRpcChannelBuffer* pRpcChannelBuffer,
2870     PRPC_MESSAGE pRpcMessage,
2871     DWORD* pdwStubPhase);
2872 HRESULT CALLBACK IOleObject_GetUserClassID_Proxy(
2873     IOleObject* This,
2874     CLSID* pClsid);
2875 void __RPC_STUB IOleObject_GetUserClassID_Stub(
2876     struct IRpcStubBuffer* This,
2877     struct IRpcChannelBuffer* pRpcChannelBuffer,
2878     PRPC_MESSAGE pRpcMessage,
2879     DWORD* pdwStubPhase);
2880 HRESULT CALLBACK IOleObject_GetUserType_Proxy(
2881     IOleObject* This,
2882     DWORD dwFormOfType,
2883     LPOLESTR* pszUserType);
2884 void __RPC_STUB IOleObject_GetUserType_Stub(
2885     struct IRpcStubBuffer* This,
2886     struct IRpcChannelBuffer* pRpcChannelBuffer,
2887     PRPC_MESSAGE pRpcMessage,
2888     DWORD* pdwStubPhase);
2889 HRESULT CALLBACK IOleObject_SetExtent_Proxy(
2890     IOleObject* This,
2891     DWORD dwDrawAspect,
2892     SIZEL* psizel);
2893 void __RPC_STUB IOleObject_SetExtent_Stub(
2894     struct IRpcStubBuffer* This,
2895     struct IRpcChannelBuffer* pRpcChannelBuffer,
2896     PRPC_MESSAGE pRpcMessage,
2897     DWORD* pdwStubPhase);
2898 HRESULT CALLBACK IOleObject_GetExtent_Proxy(
2899     IOleObject* This,
2900     DWORD dwDrawAspect,
2901     SIZEL* psizel);
2902 void __RPC_STUB IOleObject_GetExtent_Stub(
2903     struct IRpcStubBuffer* This,
2904     struct IRpcChannelBuffer* pRpcChannelBuffer,
2905     PRPC_MESSAGE pRpcMessage,
2906     DWORD* pdwStubPhase);
2907 HRESULT CALLBACK IOleObject_Advise_Proxy(
2908     IOleObject* This,
2909     IAdviseSink* pAdvSink,
2910     DWORD* pdwConnection);
2911 void __RPC_STUB IOleObject_Advise_Stub(
2912     struct IRpcStubBuffer* This,
2913     struct IRpcChannelBuffer* pRpcChannelBuffer,
2914     PRPC_MESSAGE pRpcMessage,
2915     DWORD* pdwStubPhase);
2916 HRESULT CALLBACK IOleObject_Unadvise_Proxy(
2917     IOleObject* This,
2918     DWORD dwConnection);
2919 void __RPC_STUB IOleObject_Unadvise_Stub(
2920     struct IRpcStubBuffer* This,
2921     struct IRpcChannelBuffer* pRpcChannelBuffer,
2922     PRPC_MESSAGE pRpcMessage,
2923     DWORD* pdwStubPhase);
2924 HRESULT CALLBACK IOleObject_EnumAdvise_Proxy(
2925     IOleObject* This,
2926     IEnumSTATDATA** ppenumAdvise);
2927 void __RPC_STUB IOleObject_EnumAdvise_Stub(
2928     struct IRpcStubBuffer* This,
2929     struct IRpcChannelBuffer* pRpcChannelBuffer,
2930     PRPC_MESSAGE pRpcMessage,
2931     DWORD* pdwStubPhase);
2932 HRESULT CALLBACK IOleObject_GetMiscStatus_Proxy(
2933     IOleObject* This,
2934     DWORD dwAspect,
2935     DWORD* pdwStatus);
2936 void __RPC_STUB IOleObject_GetMiscStatus_Stub(
2937     struct IRpcStubBuffer* This,
2938     struct IRpcChannelBuffer* pRpcChannelBuffer,
2939     PRPC_MESSAGE pRpcMessage,
2940     DWORD* pdwStubPhase);
2941 HRESULT CALLBACK IOleObject_SetColorScheme_Proxy(
2942     IOleObject* This,
2943     LOGPALETTE* pLogpal);
2944 void __RPC_STUB IOleObject_SetColorScheme_Stub(
2945     struct IRpcStubBuffer* This,
2946     struct IRpcChannelBuffer* pRpcChannelBuffer,
2947     PRPC_MESSAGE pRpcMessage,
2948     DWORD* pdwStubPhase);
2949
2950 #endif  /* __IOleObject_INTERFACE_DEFINED__ */
2951
2952 #ifndef __IOleAdviseHolder_FWD_DEFINED__
2953 #define __IOleAdviseHolder_FWD_DEFINED__
2954 typedef struct IOleAdviseHolder IOleAdviseHolder;
2955 #endif
2956
2957 typedef IOleAdviseHolder *LPOLEADVISEHOLDER;
2958
2959 /*****************************************************************************
2960  * IOleAdviseHolder interface
2961  */
2962 #ifndef __IOleAdviseHolder_INTERFACE_DEFINED__
2963 #define __IOleAdviseHolder_INTERFACE_DEFINED__
2964
2965 DEFINE_GUID(IID_IOleAdviseHolder, 0x00000111, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
2966 #if defined(__cplusplus) && !defined(CINTERFACE)
2967 struct IOleAdviseHolder : public IUnknown
2968 {
2969     virtual HRESULT STDMETHODCALLTYPE Advise(
2970         IAdviseSink* pAdvise,
2971         DWORD* pdwConnection) = 0;
2972
2973     virtual HRESULT STDMETHODCALLTYPE Unadvise(
2974         DWORD dwConnection) = 0;
2975
2976     virtual HRESULT STDMETHODCALLTYPE EnumAdvise(
2977         IEnumSTATDATA** ppenumAdvise) = 0;
2978
2979     virtual HRESULT STDMETHODCALLTYPE SendOnRename(
2980         IMoniker* pmk) = 0;
2981
2982     virtual HRESULT STDMETHODCALLTYPE SendOnSave(
2983         ) = 0;
2984
2985     virtual HRESULT STDMETHODCALLTYPE SendOnClose(
2986         ) = 0;
2987
2988 };
2989 #else
2990 typedef struct IOleAdviseHolderVtbl IOleAdviseHolderVtbl;
2991 struct IOleAdviseHolder {
2992     const IOleAdviseHolderVtbl* lpVtbl;
2993 };
2994 struct IOleAdviseHolderVtbl {
2995     ICOM_MSVTABLE_COMPAT_FIELDS
2996
2997     /*** IUnknown methods ***/
2998     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
2999         IOleAdviseHolder* This,
3000         REFIID riid,
3001         void** ppvObject);
3002
3003     ULONG (STDMETHODCALLTYPE *AddRef)(
3004         IOleAdviseHolder* This);
3005
3006     ULONG (STDMETHODCALLTYPE *Release)(
3007         IOleAdviseHolder* This);
3008
3009     /*** IOleAdviseHolder methods ***/
3010     HRESULT (STDMETHODCALLTYPE *Advise)(
3011         IOleAdviseHolder* This,
3012         IAdviseSink* pAdvise,
3013         DWORD* pdwConnection);
3014
3015     HRESULT (STDMETHODCALLTYPE *Unadvise)(
3016         IOleAdviseHolder* This,
3017         DWORD dwConnection);
3018
3019     HRESULT (STDMETHODCALLTYPE *EnumAdvise)(
3020         IOleAdviseHolder* This,
3021         IEnumSTATDATA** ppenumAdvise);
3022
3023     HRESULT (STDMETHODCALLTYPE *SendOnRename)(
3024         IOleAdviseHolder* This,
3025         IMoniker* pmk);
3026
3027     HRESULT (STDMETHODCALLTYPE *SendOnSave)(
3028         IOleAdviseHolder* This);
3029
3030     HRESULT (STDMETHODCALLTYPE *SendOnClose)(
3031         IOleAdviseHolder* This);
3032
3033 };
3034
3035 /*** IUnknown methods ***/
3036 #define IOleAdviseHolder_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3037 #define IOleAdviseHolder_AddRef(p) (p)->lpVtbl->AddRef(p)
3038 #define IOleAdviseHolder_Release(p) (p)->lpVtbl->Release(p)
3039 /*** IOleAdviseHolder methods ***/
3040 #define IOleAdviseHolder_Advise(p,a,b) (p)->lpVtbl->Advise(p,a,b)
3041 #define IOleAdviseHolder_Unadvise(p,a) (p)->lpVtbl->Unadvise(p,a)
3042 #define IOleAdviseHolder_EnumAdvise(p,a) (p)->lpVtbl->EnumAdvise(p,a)
3043 #define IOleAdviseHolder_SendOnRename(p,a) (p)->lpVtbl->SendOnRename(p,a)
3044 #define IOleAdviseHolder_SendOnSave(p) (p)->lpVtbl->SendOnSave(p)
3045 #define IOleAdviseHolder_SendOnClose(p) (p)->lpVtbl->SendOnClose(p)
3046
3047 #endif
3048
3049 #define IOleAdviseHolder_METHODS \
3050     ICOM_MSVTABLE_COMPAT_FIELDS \
3051     /*** IUnknown methods ***/ \
3052     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3053     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3054     STDMETHOD_(ULONG,Release)(THIS) PURE; \
3055     /*** IOleAdviseHolder methods ***/ \
3056     STDMETHOD_(HRESULT,Advise)(THIS_ IAdviseSink* pAdvise, DWORD* pdwConnection) PURE; \
3057     STDMETHOD_(HRESULT,Unadvise)(THIS_ DWORD dwConnection) PURE; \
3058     STDMETHOD_(HRESULT,EnumAdvise)(THIS_ IEnumSTATDATA** ppenumAdvise) PURE; \
3059     STDMETHOD_(HRESULT,SendOnRename)(THIS_ IMoniker* pmk) PURE; \
3060     STDMETHOD_(HRESULT,SendOnSave)(THIS) PURE; \
3061     STDMETHOD_(HRESULT,SendOnClose)(THIS) PURE;
3062
3063 HRESULT CALLBACK IOleAdviseHolder_Advise_Proxy(
3064     IOleAdviseHolder* This,
3065     IAdviseSink* pAdvise,
3066     DWORD* pdwConnection);
3067 void __RPC_STUB IOleAdviseHolder_Advise_Stub(
3068     struct IRpcStubBuffer* This,
3069     struct IRpcChannelBuffer* pRpcChannelBuffer,
3070     PRPC_MESSAGE pRpcMessage,
3071     DWORD* pdwStubPhase);
3072 HRESULT CALLBACK IOleAdviseHolder_Unadvise_Proxy(
3073     IOleAdviseHolder* This,
3074     DWORD dwConnection);
3075 void __RPC_STUB IOleAdviseHolder_Unadvise_Stub(
3076     struct IRpcStubBuffer* This,
3077     struct IRpcChannelBuffer* pRpcChannelBuffer,
3078     PRPC_MESSAGE pRpcMessage,
3079     DWORD* pdwStubPhase);
3080 HRESULT CALLBACK IOleAdviseHolder_EnumAdvise_Proxy(
3081     IOleAdviseHolder* This,
3082     IEnumSTATDATA** ppenumAdvise);
3083 void __RPC_STUB IOleAdviseHolder_EnumAdvise_Stub(
3084     struct IRpcStubBuffer* This,
3085     struct IRpcChannelBuffer* pRpcChannelBuffer,
3086     PRPC_MESSAGE pRpcMessage,
3087     DWORD* pdwStubPhase);
3088 HRESULT CALLBACK IOleAdviseHolder_SendOnRename_Proxy(
3089     IOleAdviseHolder* This,
3090     IMoniker* pmk);
3091 void __RPC_STUB IOleAdviseHolder_SendOnRename_Stub(
3092     struct IRpcStubBuffer* This,
3093     struct IRpcChannelBuffer* pRpcChannelBuffer,
3094     PRPC_MESSAGE pRpcMessage,
3095     DWORD* pdwStubPhase);
3096 HRESULT CALLBACK IOleAdviseHolder_SendOnSave_Proxy(
3097     IOleAdviseHolder* This);
3098 void __RPC_STUB IOleAdviseHolder_SendOnSave_Stub(
3099     struct IRpcStubBuffer* This,
3100     struct IRpcChannelBuffer* pRpcChannelBuffer,
3101     PRPC_MESSAGE pRpcMessage,
3102     DWORD* pdwStubPhase);
3103 HRESULT CALLBACK IOleAdviseHolder_SendOnClose_Proxy(
3104     IOleAdviseHolder* This);
3105 void __RPC_STUB IOleAdviseHolder_SendOnClose_Stub(
3106     struct IRpcStubBuffer* This,
3107     struct IRpcChannelBuffer* pRpcChannelBuffer,
3108     PRPC_MESSAGE pRpcMessage,
3109     DWORD* pdwStubPhase);
3110
3111 #endif  /* __IOleAdviseHolder_INTERFACE_DEFINED__ */
3112
3113 #ifndef __IContinue_FWD_DEFINED__
3114 #define __IContinue_FWD_DEFINED__
3115 typedef struct IContinue IContinue;
3116 #endif
3117
3118 /*****************************************************************************
3119  * IContinue interface
3120  */
3121 #ifndef __IContinue_INTERFACE_DEFINED__
3122 #define __IContinue_INTERFACE_DEFINED__
3123
3124 DEFINE_GUID(IID_IContinue, 0x0000012a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3125 #if defined(__cplusplus) && !defined(CINTERFACE)
3126 struct IContinue : public IUnknown
3127 {
3128     virtual HRESULT STDMETHODCALLTYPE FContinue(
3129         ) = 0;
3130
3131 };
3132 #else
3133 typedef struct IContinueVtbl IContinueVtbl;
3134 struct IContinue {
3135     const IContinueVtbl* lpVtbl;
3136 };
3137 struct IContinueVtbl {
3138     ICOM_MSVTABLE_COMPAT_FIELDS
3139
3140     /*** IUnknown methods ***/
3141     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3142         IContinue* This,
3143         REFIID riid,
3144         void** ppvObject);
3145
3146     ULONG (STDMETHODCALLTYPE *AddRef)(
3147         IContinue* This);
3148
3149     ULONG (STDMETHODCALLTYPE *Release)(
3150         IContinue* This);
3151
3152     /*** IContinue methods ***/
3153     HRESULT (STDMETHODCALLTYPE *FContinue)(
3154         IContinue* This);
3155
3156 };
3157
3158 /*** IUnknown methods ***/
3159 #define IContinue_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3160 #define IContinue_AddRef(p) (p)->lpVtbl->AddRef(p)
3161 #define IContinue_Release(p) (p)->lpVtbl->Release(p)
3162 /*** IContinue methods ***/
3163 #define IContinue_FContinue(p) (p)->lpVtbl->FContinue(p)
3164
3165 #endif
3166
3167 #define IContinue_METHODS \
3168     ICOM_MSVTABLE_COMPAT_FIELDS \
3169     /*** IUnknown methods ***/ \
3170     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3171     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3172     STDMETHOD_(ULONG,Release)(THIS) PURE; \
3173     /*** IContinue methods ***/ \
3174     STDMETHOD_(HRESULT,FContinue)(THIS) PURE;
3175
3176 HRESULT CALLBACK IContinue_FContinue_Proxy(
3177     IContinue* This);
3178 void __RPC_STUB IContinue_FContinue_Stub(
3179     struct IRpcStubBuffer* This,
3180     struct IRpcChannelBuffer* pRpcChannelBuffer,
3181     PRPC_MESSAGE pRpcMessage,
3182     DWORD* pdwStubPhase);
3183
3184 #endif  /* __IContinue_INTERFACE_DEFINED__ */
3185
3186 #ifndef __IViewObject_FWD_DEFINED__
3187 #define __IViewObject_FWD_DEFINED__
3188 typedef struct IViewObject IViewObject;
3189 #endif
3190
3191 typedef IViewObject *LPVIEWOBJECT;
3192
3193 /*****************************************************************************
3194  * IViewObject interface
3195  */
3196 #ifndef __IViewObject_INTERFACE_DEFINED__
3197 #define __IViewObject_INTERFACE_DEFINED__
3198
3199 DEFINE_GUID(IID_IViewObject, 0x0000010d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3200 #if defined(__cplusplus) && !defined(CINTERFACE)
3201 struct IViewObject : public IUnknown
3202 {
3203     virtual HRESULT STDMETHODCALLTYPE Draw(
3204         DWORD dwDrawAspect,
3205         LONG lindex,
3206         void* pvAspect,
3207         DVTARGETDEVICE* ptd,
3208         HDC hdcTargetDev,
3209         HDC hdcDraw,
3210         LPCRECTL lprcBounds,
3211         LPCRECTL lprcWBounds,
3212         BOOL (STDMETHODCALLTYPE *pfnContinue)(ULONG_PTR dwContinue),
3213         ULONG_PTR dwContinue) = 0;
3214
3215     virtual HRESULT STDMETHODCALLTYPE GetColorSet(
3216         DWORD dwDrawAspect,
3217         LONG lindex,
3218         void* pvAspect,
3219         DVTARGETDEVICE* ptd,
3220         HDC hicTargetDev,
3221         LOGPALETTE** ppColorSet) = 0;
3222
3223     virtual HRESULT STDMETHODCALLTYPE Freeze(
3224         DWORD dwDrawAspect,
3225         LONG lindex,
3226         void* pvAspect,
3227         DWORD* pdwFreeze) = 0;
3228
3229     virtual HRESULT STDMETHODCALLTYPE Unfreeze(
3230         DWORD dwFreeze) = 0;
3231
3232     virtual HRESULT STDMETHODCALLTYPE SetAdvise(
3233         DWORD aspects,
3234         DWORD advf,
3235         IAdviseSink* pAdvSink) = 0;
3236
3237     virtual HRESULT STDMETHODCALLTYPE GetAdvise(
3238         DWORD* pAspects,
3239         DWORD* pAdvf,
3240         IAdviseSink** ppAdvSink) = 0;
3241
3242 };
3243 #else
3244 typedef struct IViewObjectVtbl IViewObjectVtbl;
3245 struct IViewObject {
3246     const IViewObjectVtbl* lpVtbl;
3247 };
3248 struct IViewObjectVtbl {
3249     ICOM_MSVTABLE_COMPAT_FIELDS
3250
3251     /*** IUnknown methods ***/
3252     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3253         IViewObject* This,
3254         REFIID riid,
3255         void** ppvObject);
3256
3257     ULONG (STDMETHODCALLTYPE *AddRef)(
3258         IViewObject* This);
3259
3260     ULONG (STDMETHODCALLTYPE *Release)(
3261         IViewObject* This);
3262
3263     /*** IViewObject methods ***/
3264     HRESULT (STDMETHODCALLTYPE *Draw)(
3265         IViewObject* This,
3266         DWORD dwDrawAspect,
3267         LONG lindex,
3268         void* pvAspect,
3269         DVTARGETDEVICE* ptd,
3270         HDC hdcTargetDev,
3271         HDC hdcDraw,
3272         LPCRECTL lprcBounds,
3273         LPCRECTL lprcWBounds,
3274         BOOL (STDMETHODCALLTYPE *pfnContinue)(ULONG_PTR dwContinue),
3275         ULONG_PTR dwContinue);
3276
3277     HRESULT (STDMETHODCALLTYPE *GetColorSet)(
3278         IViewObject* This,
3279         DWORD dwDrawAspect,
3280         LONG lindex,
3281         void* pvAspect,
3282         DVTARGETDEVICE* ptd,
3283         HDC hicTargetDev,
3284         LOGPALETTE** ppColorSet);
3285
3286     HRESULT (STDMETHODCALLTYPE *Freeze)(
3287         IViewObject* This,
3288         DWORD dwDrawAspect,
3289         LONG lindex,
3290         void* pvAspect,
3291         DWORD* pdwFreeze);
3292
3293     HRESULT (STDMETHODCALLTYPE *Unfreeze)(
3294         IViewObject* This,
3295         DWORD dwFreeze);
3296
3297     HRESULT (STDMETHODCALLTYPE *SetAdvise)(
3298         IViewObject* This,
3299         DWORD aspects,
3300         DWORD advf,
3301         IAdviseSink* pAdvSink);
3302
3303     HRESULT (STDMETHODCALLTYPE *GetAdvise)(
3304         IViewObject* This,
3305         DWORD* pAspects,
3306         DWORD* pAdvf,
3307         IAdviseSink** ppAdvSink);
3308
3309 };
3310
3311 /*** IUnknown methods ***/
3312 #define IViewObject_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3313 #define IViewObject_AddRef(p) (p)->lpVtbl->AddRef(p)
3314 #define IViewObject_Release(p) (p)->lpVtbl->Release(p)
3315 /*** IViewObject methods ***/
3316 #define IViewObject_Draw(p,a,b,c,d,e,f,g,h,i,j) (p)->lpVtbl->Draw(p,a,b,c,d,e,f,g,h,i,j)
3317 #define IViewObject_GetColorSet(p,a,b,c,d,e,f) (p)->lpVtbl->GetColorSet(p,a,b,c,d,e,f)
3318 #define IViewObject_Freeze(p,a,b,c,d) (p)->lpVtbl->Freeze(p,a,b,c,d)
3319 #define IViewObject_Unfreeze(p,a) (p)->lpVtbl->Unfreeze(p,a)
3320 #define IViewObject_SetAdvise(p,a,b,c) (p)->lpVtbl->SetAdvise(p,a,b,c)
3321 #define IViewObject_GetAdvise(p,a,b,c) (p)->lpVtbl->GetAdvise(p,a,b,c)
3322
3323 #endif
3324
3325 #define IViewObject_METHODS \
3326     ICOM_MSVTABLE_COMPAT_FIELDS \
3327     /*** IUnknown methods ***/ \
3328     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3329     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3330     STDMETHOD_(ULONG,Release)(THIS) PURE; \
3331     /*** IViewObject methods ***/ \
3332     STDMETHOD_(HRESULT,Draw)(THIS_ DWORD dwDrawAspect, LONG lindex, void* pvAspect, DVTARGETDEVICE* ptd, HDC hdcTargetDev, HDC hdcDraw, LPCRECTL lprcBounds, LPCRECTL lprcWBounds, BOOL (STDMETHODCALLTYPE *pfnContinue)(ULONG_PTR dwContinue), ULONG_PTR dwContinue) PURE; \
3333     STDMETHOD_(HRESULT,GetColorSet)(THIS_ DWORD dwDrawAspect, LONG lindex, void* pvAspect, DVTARGETDEVICE* ptd, HDC hicTargetDev, LOGPALETTE** ppColorSet) PURE; \
3334     STDMETHOD_(HRESULT,Freeze)(THIS_ DWORD dwDrawAspect, LONG lindex, void* pvAspect, DWORD* pdwFreeze) PURE; \
3335     STDMETHOD_(HRESULT,Unfreeze)(THIS_ DWORD dwFreeze) PURE; \
3336     STDMETHOD_(HRESULT,SetAdvise)(THIS_ DWORD aspects, DWORD advf, IAdviseSink* pAdvSink) PURE; \
3337     STDMETHOD_(HRESULT,GetAdvise)(THIS_ DWORD* pAspects, DWORD* pAdvf, IAdviseSink** ppAdvSink) PURE;
3338
3339 HRESULT CALLBACK IViewObject_RemoteDraw_Proxy(
3340     IViewObject* This,
3341     DWORD dwDrawAspect,
3342     LONG lindex,
3343     ULONG_PTR pvAspect,
3344     DVTARGETDEVICE* ptd,
3345     ULONG_PTR hdcTargetDev,
3346     ULONG_PTR hdcDraw,
3347     LPCRECTL lprcBounds,
3348     LPCRECTL lprcWBounds,
3349     IContinue* pContinue);
3350 void __RPC_STUB IViewObject_RemoteDraw_Stub(
3351     struct IRpcStubBuffer* This,
3352     struct IRpcChannelBuffer* pRpcChannelBuffer,
3353     PRPC_MESSAGE pRpcMessage,
3354     DWORD* pdwStubPhase);
3355 HRESULT CALLBACK IViewObject_Draw_Proxy(
3356     IViewObject* This,
3357     DWORD dwDrawAspect,
3358     LONG lindex,
3359     void* pvAspect,
3360     DVTARGETDEVICE* ptd,
3361     HDC hdcTargetDev,
3362     HDC hdcDraw,
3363     LPCRECTL lprcBounds,
3364     LPCRECTL lprcWBounds,
3365     BOOL (STDMETHODCALLTYPE *pfnContinue)(ULONG_PTR dwContinue),
3366     ULONG_PTR dwContinue);
3367 HRESULT __RPC_STUB IViewObject_Draw_Stub(
3368     IViewObject* This,
3369     DWORD dwDrawAspect,
3370     LONG lindex,
3371     ULONG_PTR pvAspect,
3372     DVTARGETDEVICE* ptd,
3373     ULONG_PTR hdcTargetDev,
3374     ULONG_PTR hdcDraw,
3375     LPCRECTL lprcBounds,
3376     LPCRECTL lprcWBounds,
3377     IContinue* pContinue);
3378 HRESULT CALLBACK IViewObject_RemoteGetColorSet_Proxy(
3379     IViewObject* This,
3380     DWORD dwDrawAspect,
3381     LONG lindex,
3382     ULONG_PTR pvAspect,
3383     DVTARGETDEVICE* ptd,
3384     ULONG_PTR hicTargetDev,
3385     LOGPALETTE** ppColorSet);
3386 void __RPC_STUB IViewObject_RemoteGetColorSet_Stub(
3387     struct IRpcStubBuffer* This,
3388     struct IRpcChannelBuffer* pRpcChannelBuffer,
3389     PRPC_MESSAGE pRpcMessage,
3390     DWORD* pdwStubPhase);
3391 HRESULT CALLBACK IViewObject_GetColorSet_Proxy(
3392     IViewObject* This,
3393     DWORD dwDrawAspect,
3394     LONG lindex,
3395     void* pvAspect,
3396     DVTARGETDEVICE* ptd,
3397     HDC hicTargetDev,
3398     LOGPALETTE** ppColorSet);
3399 HRESULT __RPC_STUB IViewObject_GetColorSet_Stub(
3400     IViewObject* This,
3401     DWORD dwDrawAspect,
3402     LONG lindex,
3403     ULONG_PTR pvAspect,
3404     DVTARGETDEVICE* ptd,
3405     ULONG_PTR hicTargetDev,
3406     LOGPALETTE** ppColorSet);
3407 HRESULT CALLBACK IViewObject_RemoteFreeze_Proxy(
3408     IViewObject* This,
3409     DWORD dwDrawAspect,
3410     LONG lindex,
3411     ULONG_PTR pvAspect,
3412     DWORD* pdwFreeze);
3413 void __RPC_STUB IViewObject_RemoteFreeze_Stub(
3414     struct IRpcStubBuffer* This,
3415     struct IRpcChannelBuffer* pRpcChannelBuffer,
3416     PRPC_MESSAGE pRpcMessage,
3417     DWORD* pdwStubPhase);
3418 HRESULT CALLBACK IViewObject_Freeze_Proxy(
3419     IViewObject* This,
3420     DWORD dwDrawAspect,
3421     LONG lindex,
3422     void* pvAspect,
3423     DWORD* pdwFreeze);
3424 HRESULT __RPC_STUB IViewObject_Freeze_Stub(
3425     IViewObject* This,
3426     DWORD dwDrawAspect,
3427     LONG lindex,
3428     ULONG_PTR pvAspect,
3429     DWORD* pdwFreeze);
3430 HRESULT CALLBACK IViewObject_Unfreeze_Proxy(
3431     IViewObject* This,
3432     DWORD dwFreeze);
3433 void __RPC_STUB IViewObject_Unfreeze_Stub(
3434     struct IRpcStubBuffer* This,
3435     struct IRpcChannelBuffer* pRpcChannelBuffer,
3436     PRPC_MESSAGE pRpcMessage,
3437     DWORD* pdwStubPhase);
3438 HRESULT CALLBACK IViewObject_SetAdvise_Proxy(
3439     IViewObject* This,
3440     DWORD aspects,
3441     DWORD advf,
3442     IAdviseSink* pAdvSink);
3443 void __RPC_STUB IViewObject_SetAdvise_Stub(
3444     struct IRpcStubBuffer* This,
3445     struct IRpcChannelBuffer* pRpcChannelBuffer,
3446     PRPC_MESSAGE pRpcMessage,
3447     DWORD* pdwStubPhase);
3448 HRESULT CALLBACK IViewObject_RemoteGetAdvise_Proxy(
3449     IViewObject* This,
3450     DWORD* pAspects,
3451     DWORD* pAdvf,
3452     IAdviseSink** ppAdvSink);
3453 void __RPC_STUB IViewObject_RemoteGetAdvise_Stub(
3454     struct IRpcStubBuffer* This,
3455     struct IRpcChannelBuffer* pRpcChannelBuffer,
3456     PRPC_MESSAGE pRpcMessage,
3457     DWORD* pdwStubPhase);
3458 HRESULT CALLBACK IViewObject_GetAdvise_Proxy(
3459     IViewObject* This,
3460     DWORD* pAspects,
3461     DWORD* pAdvf,
3462     IAdviseSink** ppAdvSink);
3463 HRESULT __RPC_STUB IViewObject_GetAdvise_Stub(
3464     IViewObject* This,
3465     DWORD* pAspects,
3466     DWORD* pAdvf,
3467     IAdviseSink** ppAdvSink);
3468
3469 #endif  /* __IViewObject_INTERFACE_DEFINED__ */
3470
3471 #ifndef __IViewObject2_FWD_DEFINED__
3472 #define __IViewObject2_FWD_DEFINED__
3473 typedef struct IViewObject2 IViewObject2;
3474 #endif
3475
3476 typedef IViewObject2 *LPVIEWOBJECT2;
3477
3478 /*****************************************************************************
3479  * IViewObject2 interface
3480  */
3481 #ifndef __IViewObject2_INTERFACE_DEFINED__
3482 #define __IViewObject2_INTERFACE_DEFINED__
3483
3484 DEFINE_GUID(IID_IViewObject2, 0x00000127, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3485 #if defined(__cplusplus) && !defined(CINTERFACE)
3486 struct IViewObject2 : public IViewObject
3487 {
3488     virtual HRESULT STDMETHODCALLTYPE GetExtent(
3489         DWORD dwDrawAspect,
3490         LONG lindex,
3491         DVTARGETDEVICE* ptd,
3492         LPSIZEL lpsizel) = 0;
3493
3494 };
3495 #else
3496 typedef struct IViewObject2Vtbl IViewObject2Vtbl;
3497 struct IViewObject2 {
3498     const IViewObject2Vtbl* lpVtbl;
3499 };
3500 struct IViewObject2Vtbl {
3501     ICOM_MSVTABLE_COMPAT_FIELDS
3502
3503     /*** IUnknown methods ***/
3504     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3505         IViewObject2* This,
3506         REFIID riid,
3507         void** ppvObject);
3508
3509     ULONG (STDMETHODCALLTYPE *AddRef)(
3510         IViewObject2* This);
3511
3512     ULONG (STDMETHODCALLTYPE *Release)(
3513         IViewObject2* This);
3514
3515     /*** IViewObject methods ***/
3516     HRESULT (STDMETHODCALLTYPE *Draw)(
3517         IViewObject2* This,
3518         DWORD dwDrawAspect,
3519         LONG lindex,
3520         void* pvAspect,
3521         DVTARGETDEVICE* ptd,
3522         HDC hdcTargetDev,
3523         HDC hdcDraw,
3524         LPCRECTL lprcBounds,
3525         LPCRECTL lprcWBounds,
3526         BOOL (STDMETHODCALLTYPE *pfnContinue)(ULONG_PTR dwContinue),
3527         ULONG_PTR dwContinue);
3528
3529     HRESULT (STDMETHODCALLTYPE *GetColorSet)(
3530         IViewObject2* This,
3531         DWORD dwDrawAspect,
3532         LONG lindex,
3533         void* pvAspect,
3534         DVTARGETDEVICE* ptd,
3535         HDC hicTargetDev,
3536         LOGPALETTE** ppColorSet);
3537
3538     HRESULT (STDMETHODCALLTYPE *Freeze)(
3539         IViewObject2* This,
3540         DWORD dwDrawAspect,
3541         LONG lindex,
3542         void* pvAspect,
3543         DWORD* pdwFreeze);
3544
3545     HRESULT (STDMETHODCALLTYPE *Unfreeze)(
3546         IViewObject2* This,
3547         DWORD dwFreeze);
3548
3549     HRESULT (STDMETHODCALLTYPE *SetAdvise)(
3550         IViewObject2* This,
3551         DWORD aspects,
3552         DWORD advf,
3553         IAdviseSink* pAdvSink);
3554
3555     HRESULT (STDMETHODCALLTYPE *GetAdvise)(
3556         IViewObject2* This,
3557         DWORD* pAspects,
3558         DWORD* pAdvf,
3559         IAdviseSink** ppAdvSink);
3560
3561     /*** IViewObject2 methods ***/
3562     HRESULT (STDMETHODCALLTYPE *GetExtent)(
3563         IViewObject2* This,
3564         DWORD dwDrawAspect,
3565         LONG lindex,
3566         DVTARGETDEVICE* ptd,
3567         LPSIZEL lpsizel);
3568
3569 };
3570
3571 /*** IUnknown methods ***/
3572 #define IViewObject2_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3573 #define IViewObject2_AddRef(p) (p)->lpVtbl->AddRef(p)
3574 #define IViewObject2_Release(p) (p)->lpVtbl->Release(p)
3575 /*** IViewObject methods ***/
3576 #define IViewObject2_Draw(p,a,b,c,d,e,f,g,h,i,j) (p)->lpVtbl->Draw(p,a,b,c,d,e,f,g,h,i,j)
3577 #define IViewObject2_GetColorSet(p,a,b,c,d,e,f) (p)->lpVtbl->GetColorSet(p,a,b,c,d,e,f)
3578 #define IViewObject2_Freeze(p,a,b,c,d) (p)->lpVtbl->Freeze(p,a,b,c,d)
3579 #define IViewObject2_Unfreeze(p,a) (p)->lpVtbl->Unfreeze(p,a)
3580 #define IViewObject2_SetAdvise(p,a,b,c) (p)->lpVtbl->SetAdvise(p,a,b,c)
3581 #define IViewObject2_GetAdvise(p,a,b,c) (p)->lpVtbl->GetAdvise(p,a,b,c)
3582 /*** IViewObject2 methods ***/
3583 #define IViewObject2_GetExtent(p,a,b,c,d) (p)->lpVtbl->GetExtent(p,a,b,c,d)
3584
3585 #endif
3586
3587 #define IViewObject2_METHODS \
3588     ICOM_MSVTABLE_COMPAT_FIELDS \
3589     /*** IUnknown methods ***/ \
3590     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3591     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3592     STDMETHOD_(ULONG,Release)(THIS) PURE; \
3593     /*** IViewObject methods ***/ \
3594     STDMETHOD_(HRESULT,Draw)(THIS_ DWORD dwDrawAspect, LONG lindex, void* pvAspect, DVTARGETDEVICE* ptd, HDC hdcTargetDev, HDC hdcDraw, LPCRECTL lprcBounds, LPCRECTL lprcWBounds, BOOL (STDMETHODCALLTYPE *pfnContinue)(ULONG_PTR dwContinue), ULONG_PTR dwContinue) PURE; \
3595     STDMETHOD_(HRESULT,GetColorSet)(THIS_ DWORD dwDrawAspect, LONG lindex, void* pvAspect, DVTARGETDEVICE* ptd, HDC hicTargetDev, LOGPALETTE** ppColorSet) PURE; \
3596     STDMETHOD_(HRESULT,Freeze)(THIS_ DWORD dwDrawAspect, LONG lindex, void* pvAspect, DWORD* pdwFreeze) PURE; \
3597     STDMETHOD_(HRESULT,Unfreeze)(THIS_ DWORD dwFreeze) PURE; \
3598     STDMETHOD_(HRESULT,SetAdvise)(THIS_ DWORD aspects, DWORD advf, IAdviseSink* pAdvSink) PURE; \
3599     STDMETHOD_(HRESULT,GetAdvise)(THIS_ DWORD* pAspects, DWORD* pAdvf, IAdviseSink** ppAdvSink) PURE; \
3600     /*** IViewObject2 methods ***/ \
3601     STDMETHOD_(HRESULT,GetExtent)(THIS_ DWORD dwDrawAspect, LONG lindex, DVTARGETDEVICE* ptd, LPSIZEL lpsizel) PURE;
3602
3603 HRESULT CALLBACK IViewObject2_GetExtent_Proxy(
3604     IViewObject2* This,
3605     DWORD dwDrawAspect,
3606     LONG lindex,
3607     DVTARGETDEVICE* ptd,
3608     LPSIZEL lpsizel);
3609 void __RPC_STUB IViewObject2_GetExtent_Stub(
3610     struct IRpcStubBuffer* This,
3611     struct IRpcChannelBuffer* pRpcChannelBuffer,
3612     PRPC_MESSAGE pRpcMessage,
3613     DWORD* pdwStubPhase);
3614
3615 #endif  /* __IViewObject2_INTERFACE_DEFINED__ */
3616
3617 #ifndef __IDropSource_FWD_DEFINED__
3618 #define __IDropSource_FWD_DEFINED__
3619 typedef struct IDropSource IDropSource;
3620 #endif
3621
3622 typedef IDropSource *LPDROPSOURCE;
3623
3624 /*****************************************************************************
3625  * IDropSource interface
3626  */
3627 #ifndef __IDropSource_INTERFACE_DEFINED__
3628 #define __IDropSource_INTERFACE_DEFINED__
3629
3630 DEFINE_GUID(IID_IDropSource, 0x00000121, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3631 #if defined(__cplusplus) && !defined(CINTERFACE)
3632 struct IDropSource : public IUnknown
3633 {
3634     virtual HRESULT STDMETHODCALLTYPE QueryContinueDrag(
3635         BOOL fEscapePressed,
3636         DWORD grfKeyState) = 0;
3637
3638     virtual HRESULT STDMETHODCALLTYPE GiveFeedback(
3639         DWORD dwEffect) = 0;
3640
3641 };
3642 #else
3643 typedef struct IDropSourceVtbl IDropSourceVtbl;
3644 struct IDropSource {
3645     const IDropSourceVtbl* lpVtbl;
3646 };
3647 struct IDropSourceVtbl {
3648     ICOM_MSVTABLE_COMPAT_FIELDS
3649
3650     /*** IUnknown methods ***/
3651     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3652         IDropSource* This,
3653         REFIID riid,
3654         void** ppvObject);
3655
3656     ULONG (STDMETHODCALLTYPE *AddRef)(
3657         IDropSource* This);
3658
3659     ULONG (STDMETHODCALLTYPE *Release)(
3660         IDropSource* This);
3661
3662     /*** IDropSource methods ***/
3663     HRESULT (STDMETHODCALLTYPE *QueryContinueDrag)(
3664         IDropSource* This,
3665         BOOL fEscapePressed,
3666         DWORD grfKeyState);
3667
3668     HRESULT (STDMETHODCALLTYPE *GiveFeedback)(
3669         IDropSource* This,
3670         DWORD dwEffect);
3671
3672 };
3673
3674 /*** IUnknown methods ***/
3675 #define IDropSource_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3676 #define IDropSource_AddRef(p) (p)->lpVtbl->AddRef(p)
3677 #define IDropSource_Release(p) (p)->lpVtbl->Release(p)
3678 /*** IDropSource methods ***/
3679 #define IDropSource_QueryContinueDrag(p,a,b) (p)->lpVtbl->QueryContinueDrag(p,a,b)
3680 #define IDropSource_GiveFeedback(p,a) (p)->lpVtbl->GiveFeedback(p,a)
3681
3682 #endif
3683
3684 #define IDropSource_METHODS \
3685     ICOM_MSVTABLE_COMPAT_FIELDS \
3686     /*** IUnknown methods ***/ \
3687     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3688     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3689     STDMETHOD_(ULONG,Release)(THIS) PURE; \
3690     /*** IDropSource methods ***/ \
3691     STDMETHOD_(HRESULT,QueryContinueDrag)(THIS_ BOOL fEscapePressed, DWORD grfKeyState) PURE; \
3692     STDMETHOD_(HRESULT,GiveFeedback)(THIS_ DWORD dwEffect) PURE;
3693
3694 HRESULT CALLBACK IDropSource_QueryContinueDrag_Proxy(
3695     IDropSource* This,
3696     BOOL fEscapePressed,
3697     DWORD grfKeyState);
3698 void __RPC_STUB IDropSource_QueryContinueDrag_Stub(
3699     struct IRpcStubBuffer* This,
3700     struct IRpcChannelBuffer* pRpcChannelBuffer,
3701     PRPC_MESSAGE pRpcMessage,
3702     DWORD* pdwStubPhase);
3703 HRESULT CALLBACK IDropSource_GiveFeedback_Proxy(
3704     IDropSource* This,
3705     DWORD dwEffect);
3706 void __RPC_STUB IDropSource_GiveFeedback_Stub(
3707     struct IRpcStubBuffer* This,
3708     struct IRpcChannelBuffer* pRpcChannelBuffer,
3709     PRPC_MESSAGE pRpcMessage,
3710     DWORD* pdwStubPhase);
3711
3712 #endif  /* __IDropSource_INTERFACE_DEFINED__ */
3713
3714 #ifndef __IDropTarget_FWD_DEFINED__
3715 #define __IDropTarget_FWD_DEFINED__
3716 typedef struct IDropTarget IDropTarget;
3717 #endif
3718
3719 typedef IDropTarget *LPDROPTARGET;
3720
3721 #define MK_ALT (0x20)
3722
3723 #define DROPEFFECT_NONE (0)
3724
3725 #define DROPEFFECT_COPY (1)
3726
3727 #define DROPEFFECT_MOVE (2)
3728
3729 #define DROPEFFECT_LINK (4)
3730
3731 #define DROPEFFECT_SCROLL (0x80000000)
3732
3733 #define DD_DEFSCROLLINSET (11)
3734
3735 #define DD_DEFSCROLLDELAY (50)
3736
3737 #define DD_DEFSCROLLINTERVAL (50)
3738
3739 #define DD_DEFDRAGDELAY (200)
3740
3741 #define DD_DEFDRAGMINDIST (2)
3742
3743 /*****************************************************************************
3744  * IDropTarget interface
3745  */
3746 #ifndef __IDropTarget_INTERFACE_DEFINED__
3747 #define __IDropTarget_INTERFACE_DEFINED__
3748
3749 DEFINE_GUID(IID_IDropTarget, 0x00000122, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
3750 #if defined(__cplusplus) && !defined(CINTERFACE)
3751 struct IDropTarget : public IUnknown
3752 {
3753     virtual HRESULT STDMETHODCALLTYPE DragEnter(
3754         IDataObject* pDataObj,
3755         DWORD grfKeyState,
3756         POINTL pt,
3757         DWORD* pdwEffect) = 0;
3758
3759     virtual HRESULT STDMETHODCALLTYPE DragOver(
3760         DWORD grfKeyState,
3761         POINTL pt,
3762         DWORD* pdwEffect) = 0;
3763
3764     virtual HRESULT STDMETHODCALLTYPE DragLeave(
3765         ) = 0;
3766
3767     virtual HRESULT STDMETHODCALLTYPE Drop(
3768         IDataObject* pDataObj,
3769         DWORD grfKeyState,
3770         POINTL pt,
3771         DWORD* pdwEffect) = 0;
3772
3773 };
3774 #else
3775 typedef struct IDropTargetVtbl IDropTargetVtbl;
3776 struct IDropTarget {
3777     const IDropTargetVtbl* lpVtbl;
3778 };
3779 struct IDropTargetVtbl {
3780     ICOM_MSVTABLE_COMPAT_FIELDS
3781
3782     /*** IUnknown methods ***/
3783     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
3784         IDropTarget* This,
3785         REFIID riid,
3786         void** ppvObject);
3787
3788     ULONG (STDMETHODCALLTYPE *AddRef)(
3789         IDropTarget* This);
3790
3791     ULONG (STDMETHODCALLTYPE *Release)(
3792         IDropTarget* This);
3793
3794     /*** IDropTarget methods ***/
3795     HRESULT (STDMETHODCALLTYPE *DragEnter)(
3796         IDropTarget* This,
3797         IDataObject* pDataObj,
3798         DWORD grfKeyState,
3799         POINTL pt,
3800         DWORD* pdwEffect);
3801
3802     HRESULT (STDMETHODCALLTYPE *DragOver)(
3803         IDropTarget* This,
3804         DWORD grfKeyState,
3805         POINTL pt,
3806         DWORD* pdwEffect);
3807
3808     HRESULT (STDMETHODCALLTYPE *DragLeave)(
3809         IDropTarget* This);
3810
3811     HRESULT (STDMETHODCALLTYPE *Drop)(
3812         IDropTarget* This,
3813         IDataObject* pDataObj,
3814         DWORD grfKeyState,
3815         POINTL pt,
3816         DWORD* pdwEffect);
3817
3818 };
3819
3820 /*** IUnknown methods ***/
3821 #define IDropTarget_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
3822 #define IDropTarget_AddRef(p) (p)->lpVtbl->AddRef(p)
3823 #define IDropTarget_Release(p) (p)->lpVtbl->Release(p)
3824 /*** IDropTarget methods ***/
3825 #define IDropTarget_DragEnter(p,a,b,c,d) (p)->lpVtbl->DragEnter(p,a,b,c,d)
3826 #define IDropTarget_DragOver(p,a,b,c) (p)->lpVtbl->DragOver(p,a,b,c)
3827 #define IDropTarget_DragLeave(p) (p)->lpVtbl->DragLeave(p)
3828 #define IDropTarget_Drop(p,a,b,c,d) (p)->lpVtbl->Drop(p,a,b,c,d)
3829
3830 #endif
3831
3832 #define IDropTarget_METHODS \
3833     ICOM_MSVTABLE_COMPAT_FIELDS \
3834     /*** IUnknown methods ***/ \
3835     STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
3836     STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
3837     STDMETHOD_(ULONG,Release)(THIS) PURE; \
3838     /*** IDropTarget methods ***/ \
3839     STDMETHOD_(HRESULT,DragEnter)(THIS_ IDataObject* pDataObj, DWORD grfKeyState, POINTL pt, DWORD* pdwEffect) PURE; \
3840     STDMETHOD_(HRESULT,DragOver)(THIS_ DWORD grfKeyState, POINTL pt, DWORD* pdwEffect) PURE; \
3841     STDMETHOD_(HRESULT,DragLeave)(THIS) PURE; \
3842     STDMETHOD_(HRESULT,Drop)(THIS_ IDataObject* pDataObj, DWORD grfKeyState, POINTL pt, DWORD* pdwEffect) PURE;
3843
3844 HRESULT CALLBACK IDropTarget_DragEnter_Proxy(
3845     IDropTarget* This,
3846     IDataObject* pDataObj,
3847     DWORD grfKeyState,
3848     POINTL pt,
3849     DWORD* pdwEffect);
3850 void __RPC_STUB IDropTarget_DragEnter_Stub(
3851     struct IRpcStubBuffer* This,
3852     struct IRpcChannelBuffer* pRpcChannelBuffer,
3853     PRPC_MESSAGE pRpcMessage,
3854     DWORD* pdwStubPhase);
3855 HRESULT CALLBACK IDropTarget_DragOver_Proxy(
3856     IDropTarget* This,
3857     DWORD grfKeyState,
3858     POINTL pt,
3859     DWORD* pdwEffect);
3860 void __RPC_STUB IDropTarget_DragOver_Stub(
3861     struct IRpcStubBuffer* This,
3862     struct IRpcChannelBuffer* pRpcChannelBuffer,
3863     PRPC_MESSAGE pRpcMessage,
3864     DWORD* pdwStubPhase);
3865 HRESULT CALLBACK IDropTarget_DragLeave_Proxy(
3866     IDropTarget* This);
3867 void __RPC_STUB IDropTarget_DragLeave_Stub(
3868     struct IRpcStubBuffer* This,
3869     struct IRpcChannelBuffer* pRpcChannelBuffer,
3870     PRPC_MESSAGE pRpcMessage,
3871     DWORD* pdwStubPhase);
3872 HRESULT CALLBACK IDropTarget_Drop_Proxy(
3873     IDropTarget* This,
3874     IDataObject* pDataObj,
3875     DWORD grfKeyState,
3876     POINTL pt,
3877     DWORD* pdwEffect);
3878 void __RPC_STUB IDropTarget_Drop_Stub(
3879     struct IRpcStubBuffer* This,
3880     struct IRpcChannelBuffer* pRpcChannelBuffer,
3881     PRPC_MESSAGE pRpcMessage,
3882     DWORD* pdwStubPhase);
3883
3884 #endif  /* __IDropTarget_INTERFACE_DEFINED__ */
3885
3886 #ifdef __cplusplus
3887 }
3888 #endif
3889 #endif /* __WIDL_OLEIDL_H */