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