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