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