Home | History | Annotate | Download | only in include
      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__
     22 typedef interface IOleAdviseHolder IOleAdviseHolder;
     23 #endif
     24 
     25 #ifndef __IOleCache_FWD_DEFINED__
     26 #define __IOleCache_FWD_DEFINED__
     27 typedef interface IOleCache IOleCache;
     28 #endif
     29 
     30 #ifndef __IOleCache2_FWD_DEFINED__
     31 #define __IOleCache2_FWD_DEFINED__
     32 typedef interface IOleCache2 IOleCache2;
     33 #endif
     34 
     35 #ifndef __IOleCacheControl_FWD_DEFINED__
     36 #define __IOleCacheControl_FWD_DEFINED__
     37 typedef interface IOleCacheControl IOleCacheControl;
     38 #endif
     39 
     40 #ifndef __IParseDisplayName_FWD_DEFINED__
     41 #define __IParseDisplayName_FWD_DEFINED__
     42 typedef interface IParseDisplayName IParseDisplayName;
     43 #endif
     44 
     45 #ifndef __IOleContainer_FWD_DEFINED__
     46 #define __IOleContainer_FWD_DEFINED__
     47 typedef interface IOleContainer IOleContainer;
     48 #endif
     49 
     50 #ifndef __IOleClientSite_FWD_DEFINED__
     51 #define __IOleClientSite_FWD_DEFINED__
     52 typedef interface IOleClientSite IOleClientSite;
     53 #endif
     54 
     55 #ifndef __IOleObject_FWD_DEFINED__
     56 #define __IOleObject_FWD_DEFINED__
     57 typedef interface IOleObject IOleObject;
     58 #endif
     59 
     60 #ifndef __IOleWindow_FWD_DEFINED__
     61 #define __IOleWindow_FWD_DEFINED__
     62 typedef interface IOleWindow IOleWindow;
     63 #endif
     64 
     65 #ifndef __IOleLink_FWD_DEFINED__
     66 #define __IOleLink_FWD_DEFINED__
     67 typedef interface IOleLink IOleLink;
     68 #endif
     69 
     70 #ifndef __IOleItemContainer_FWD_DEFINED__
     71 #define __IOleItemContainer_FWD_DEFINED__
     72 typedef interface IOleItemContainer IOleItemContainer;
     73 #endif
     74 
     75 #ifndef __IOleInPlaceUIWindow_FWD_DEFINED__
     76 #define __IOleInPlaceUIWindow_FWD_DEFINED__
     77 typedef interface IOleInPlaceUIWindow IOleInPlaceUIWindow;
     78 #endif
     79 
     80 #ifndef __IOleInPlaceActiveObject_FWD_DEFINED__
     81 #define __IOleInPlaceActiveObject_FWD_DEFINED__
     82 typedef interface IOleInPlaceActiveObject IOleInPlaceActiveObject;
     83 #endif
     84 
     85 #ifndef __IOleInPlaceFrame_FWD_DEFINED__
     86 #define __IOleInPlaceFrame_FWD_DEFINED__
     87 typedef interface IOleInPlaceFrame IOleInPlaceFrame;
     88 #endif
     89 
     90 #ifndef __IOleInPlaceObject_FWD_DEFINED__
     91 #define __IOleInPlaceObject_FWD_DEFINED__
     92 typedef interface IOleInPlaceObject IOleInPlaceObject;
     93 #endif
     94 
     95 #ifndef __IOleInPlaceSite_FWD_DEFINED__
     96 #define __IOleInPlaceSite_FWD_DEFINED__
     97 typedef interface IOleInPlaceSite IOleInPlaceSite;
     98 #endif
     99 
    100 #ifndef __IContinue_FWD_DEFINED__
    101 #define __IContinue_FWD_DEFINED__
    102 typedef interface IContinue IContinue;
    103 #endif
    104 
    105 #ifndef __IViewObject_FWD_DEFINED__
    106 #define __IViewObject_FWD_DEFINED__
    107 typedef interface IViewObject IViewObject;
    108 #endif
    109 
    110 #ifndef __IViewObject2_FWD_DEFINED__
    111 #define __IViewObject2_FWD_DEFINED__
    112 typedef interface IViewObject2 IViewObject2;
    113 #endif
    114 
    115 #ifndef __IDropSource_FWD_DEFINED__
    116 #define __IDropSource_FWD_DEFINED__
    117 typedef interface IDropSource IDropSource;
    118 #endif
    119 
    120 #ifndef __IDropTarget_FWD_DEFINED__
    121 #define __IDropTarget_FWD_DEFINED__
    122 typedef interface IDropTarget IDropTarget;
    123 #endif
    124 
    125 #ifndef __IDropSourceNotify_FWD_DEFINED__
    126 #define __IDropSourceNotify_FWD_DEFINED__
    127 typedef interface IDropSourceNotify IDropSourceNotify;
    128 #endif
    129 
    130 #ifndef __IEnumOLEVERB_FWD_DEFINED__
    131 #define __IEnumOLEVERB_FWD_DEFINED__
    132 typedef interface IEnumOLEVERB IEnumOLEVERB;
    133 #endif
    134 
    135 /* Headers for imported files */
    136 
    137 #include <objidl.h>
    138 
    139 #ifdef __cplusplus
    140 extern "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__
    154 typedef interface IOleInPlaceActiveObject IOleInPlaceActiveObject;
    155 #endif
    156 
    157 #ifndef __IEnumOLEVERB_FWD_DEFINED__
    158 #define __IEnumOLEVERB_FWD_DEFINED__
    159 typedef interface IEnumOLEVERB IEnumOLEVERB;
    160 #endif
    161 
    162 
    163 /*****************************************************************************
    164  * IOleAdviseHolder interface
    165  */
    166 #ifndef __IOleAdviseHolder_INTERFACE_DEFINED__
    167 #define __IOleAdviseHolder_INTERFACE_DEFINED__
    168 
    169 typedef IOleAdviseHolder *LPOLEADVISEHOLDER;
    170 
    171 DEFINE_GUID(IID_IOleAdviseHolder, 0x00000111, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
    172 #if defined(__cplusplus) && !defined(CINTERFACE)
    173 MIDL_INTERFACE("00000111-0000-0000-c000-000000000046")
    174 IOleAdviseHolder : 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
    200 typedef 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;
    241 interface 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 ***/
    260 static FORCEINLINE HRESULT IOleAdviseHolder_QueryInterface(IOleAdviseHolder* This,REFIID riid,void **ppvObject) {
    261     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    262 }
    263 static FORCEINLINE ULONG IOleAdviseHolder_AddRef(IOleAdviseHolder* This) {
    264     return This->lpVtbl->AddRef(This);
    265 }
    266 static FORCEINLINE ULONG IOleAdviseHolder_Release(IOleAdviseHolder* This) {
    267     return This->lpVtbl->Release(This);
    268 }
    269 /*** IOleAdviseHolder methods ***/
    270 static FORCEINLINE HRESULT IOleAdviseHolder_Advise(IOleAdviseHolder* This,IAdviseSink *pAdvise,DWORD *pdwConnection) {
    271     return This->lpVtbl->Advise(This,pAdvise,pdwConnection);
    272 }
    273 static FORCEINLINE HRESULT IOleAdviseHolder_Unadvise(IOleAdviseHolder* This,DWORD dwConnection) {
    274     return This->lpVtbl->Unadvise(This,dwConnection);
    275 }
    276 static FORCEINLINE HRESULT IOleAdviseHolder_EnumAdvise(IOleAdviseHolder* This,IEnumSTATDATA **ppenumAdvise) {
    277     return This->lpVtbl->EnumAdvise(This,ppenumAdvise);
    278 }
    279 static FORCEINLINE HRESULT IOleAdviseHolder_SendOnRename(IOleAdviseHolder* This,IMoniker *pmk) {
    280     return This->lpVtbl->SendOnRename(This,pmk);
    281 }
    282 static FORCEINLINE HRESULT IOleAdviseHolder_SendOnSave(IOleAdviseHolder* This) {
    283     return This->lpVtbl->SendOnSave(This);
    284 }
    285 static FORCEINLINE HRESULT IOleAdviseHolder_SendOnClose(IOleAdviseHolder* This) {
    286     return This->lpVtbl->SendOnClose(This);
    287 }
    288 #endif
    289 #endif
    290 
    291 #endif
    292 
    293 HRESULT STDMETHODCALLTYPE IOleAdviseHolder_Advise_Proxy(
    294     IOleAdviseHolder* This,
    295     IAdviseSink *pAdvise,
    296     DWORD *pdwConnection);
    297 void __RPC_STUB IOleAdviseHolder_Advise_Stub(
    298     IRpcStubBuffer* This,
    299     IRpcChannelBuffer* pRpcChannelBuffer,
    300     PRPC_MESSAGE pRpcMessage,
    301     DWORD* pdwStubPhase);
    302 HRESULT STDMETHODCALLTYPE IOleAdviseHolder_Unadvise_Proxy(
    303     IOleAdviseHolder* This,
    304     DWORD dwConnection);
    305 void __RPC_STUB IOleAdviseHolder_Unadvise_Stub(
    306     IRpcStubBuffer* This,
    307     IRpcChannelBuffer* pRpcChannelBuffer,
    308     PRPC_MESSAGE pRpcMessage,
    309     DWORD* pdwStubPhase);
    310 HRESULT STDMETHODCALLTYPE IOleAdviseHolder_EnumAdvise_Proxy(
    311     IOleAdviseHolder* This,
    312     IEnumSTATDATA **ppenumAdvise);
    313 void __RPC_STUB IOleAdviseHolder_EnumAdvise_Stub(
    314     IRpcStubBuffer* This,
    315     IRpcChannelBuffer* pRpcChannelBuffer,
    316     PRPC_MESSAGE pRpcMessage,
    317     DWORD* pdwStubPhase);
    318 HRESULT STDMETHODCALLTYPE IOleAdviseHolder_SendOnRename_Proxy(
    319     IOleAdviseHolder* This,
    320     IMoniker *pmk);
    321 void __RPC_STUB IOleAdviseHolder_SendOnRename_Stub(
    322     IRpcStubBuffer* This,
    323     IRpcChannelBuffer* pRpcChannelBuffer,
    324     PRPC_MESSAGE pRpcMessage,
    325     DWORD* pdwStubPhase);
    326 HRESULT STDMETHODCALLTYPE IOleAdviseHolder_SendOnSave_Proxy(
    327     IOleAdviseHolder* This);
    328 void __RPC_STUB IOleAdviseHolder_SendOnSave_Stub(
    329     IRpcStubBuffer* This,
    330     IRpcChannelBuffer* pRpcChannelBuffer,
    331     PRPC_MESSAGE pRpcMessage,
    332     DWORD* pdwStubPhase);
    333 HRESULT STDMETHODCALLTYPE IOleAdviseHolder_SendOnClose_Proxy(
    334     IOleAdviseHolder* This);
    335 void __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 
    352 typedef IOleCache *LPOLECACHE;
    353 
    354 DEFINE_GUID(IID_IOleCache, 0x0000011e, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
    355 #if defined(__cplusplus) && !defined(CINTERFACE)
    356 MIDL_INTERFACE("0000011e-0000-0000-c000-000000000046")
    357 IOleCache : 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
    383 typedef 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;
    425 interface 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 ***/
    443 static FORCEINLINE HRESULT IOleCache_QueryInterface(IOleCache* This,REFIID riid,void **ppvObject) {
    444     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    445 }
    446 static FORCEINLINE ULONG IOleCache_AddRef(IOleCache* This) {
    447     return This->lpVtbl->AddRef(This);
    448 }
    449 static FORCEINLINE ULONG IOleCache_Release(IOleCache* This) {
    450     return This->lpVtbl->Release(This);
    451 }
    452 /*** IOleCache methods ***/
    453 static FORCEINLINE HRESULT IOleCache_Cache(IOleCache* This,FORMATETC *pformatetc,DWORD advf,DWORD *pdwConnection) {
    454     return This->lpVtbl->Cache(This,pformatetc,advf,pdwConnection);
    455 }
    456 static FORCEINLINE HRESULT IOleCache_Uncache(IOleCache* This,DWORD dwConnection) {
    457     return This->lpVtbl->Uncache(This,dwConnection);
    458 }
    459 static FORCEINLINE HRESULT IOleCache_EnumCache(IOleCache* This,IEnumSTATDATA **ppenumSTATDATA) {
    460     return This->lpVtbl->EnumCache(This,ppenumSTATDATA);
    461 }
    462 static FORCEINLINE HRESULT IOleCache_InitCache(IOleCache* This,IDataObject *pDataObject) {
    463     return This->lpVtbl->InitCache(This,pDataObject);
    464 }
    465 static 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 
    473 HRESULT STDMETHODCALLTYPE IOleCache_Cache_Proxy(
    474     IOleCache* This,
    475     FORMATETC *pformatetc,
    476     DWORD advf,
    477     DWORD *pdwConnection);
    478 void __RPC_STUB IOleCache_Cache_Stub(
    479     IRpcStubBuffer* This,
    480     IRpcChannelBuffer* pRpcChannelBuffer,
    481     PRPC_MESSAGE pRpcMessage,
    482     DWORD* pdwStubPhase);
    483 HRESULT STDMETHODCALLTYPE IOleCache_Uncache_Proxy(
    484     IOleCache* This,
    485     DWORD dwConnection);
    486 void __RPC_STUB IOleCache_Uncache_Stub(
    487     IRpcStubBuffer* This,
    488     IRpcChannelBuffer* pRpcChannelBuffer,
    489     PRPC_MESSAGE pRpcMessage,
    490     DWORD* pdwStubPhase);
    491 HRESULT STDMETHODCALLTYPE IOleCache_EnumCache_Proxy(
    492     IOleCache* This,
    493     IEnumSTATDATA **ppenumSTATDATA);
    494 void __RPC_STUB IOleCache_EnumCache_Stub(
    495     IRpcStubBuffer* This,
    496     IRpcChannelBuffer* pRpcChannelBuffer,
    497     PRPC_MESSAGE pRpcMessage,
    498     DWORD* pdwStubPhase);
    499 HRESULT STDMETHODCALLTYPE IOleCache_InitCache_Proxy(
    500     IOleCache* This,
    501     IDataObject *pDataObject);
    502 void __RPC_STUB IOleCache_InitCache_Stub(
    503     IRpcStubBuffer* This,
    504     IRpcChannelBuffer* pRpcChannelBuffer,
    505     PRPC_MESSAGE pRpcMessage,
    506     DWORD* pdwStubPhase);
    507 HRESULT STDMETHODCALLTYPE IOleCache_SetData_Proxy(
    508     IOleCache* This,
    509     FORMATETC *pformatetc,
    510     STGMEDIUM *pmedium,
    511     WINBOOL fRelease);
    512 void __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 
    527 typedef 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 
    548 typedef enum tagDISCARDCACHE {
    549     DISCARDCACHE_SAVEIFDIRTY = 0,
    550     DISCARDCACHE_NOSAVE = 1
    551 } DISCARDCACHE;
    552 
    553 DEFINE_GUID(IID_IOleCache2, 0x00000128, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
    554 #if defined(__cplusplus) && !defined(CINTERFACE)
    555 MIDL_INTERFACE("00000128-0000-0000-c000-000000000046")
    556 IOleCache2 : 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
    571 typedef 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;
    624 interface 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 ***/
    645 static FORCEINLINE HRESULT IOleCache2_QueryInterface(IOleCache2* This,REFIID riid,void **ppvObject) {
    646     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    647 }
    648 static FORCEINLINE ULONG IOleCache2_AddRef(IOleCache2* This) {
    649     return This->lpVtbl->AddRef(This);
    650 }
    651 static FORCEINLINE ULONG IOleCache2_Release(IOleCache2* This) {
    652     return This->lpVtbl->Release(This);
    653 }
    654 /*** IOleCache methods ***/
    655 static FORCEINLINE HRESULT IOleCache2_Cache(IOleCache2* This,FORMATETC *pformatetc,DWORD advf,DWORD *pdwConnection) {
    656     return This->lpVtbl->Cache(This,pformatetc,advf,pdwConnection);
    657 }
    658 static FORCEINLINE HRESULT IOleCache2_Uncache(IOleCache2* This,DWORD dwConnection) {
    659     return This->lpVtbl->Uncache(This,dwConnection);
    660 }
    661 static FORCEINLINE HRESULT IOleCache2_EnumCache(IOleCache2* This,IEnumSTATDATA **ppenumSTATDATA) {
    662     return This->lpVtbl->EnumCache(This,ppenumSTATDATA);
    663 }
    664 static FORCEINLINE HRESULT IOleCache2_InitCache(IOleCache2* This,IDataObject *pDataObject) {
    665     return This->lpVtbl->InitCache(This,pDataObject);
    666 }
    667 static 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 ***/
    671 static FORCEINLINE HRESULT IOleCache2_UpdateCache(IOleCache2* This,LPDATAOBJECT pDataObject,DWORD grfUpdf,LPVOID pReserved) {
    672     return This->lpVtbl->UpdateCache(This,pDataObject,grfUpdf,pReserved);
    673 }
    674 static FORCEINLINE HRESULT IOleCache2_DiscardCache(IOleCache2* This,DWORD dwDiscardOptions) {
    675     return This->lpVtbl->DiscardCache(This,dwDiscardOptions);
    676 }
    677 #endif
    678 #endif
    679 
    680 #endif
    681 
    682 HRESULT STDMETHODCALLTYPE IOleCache2_RemoteUpdateCache_Proxy(
    683     IOleCache2* This,
    684     LPDATAOBJECT pDataObject,
    685     DWORD grfUpdf,
    686     LONG_PTR pReserved);
    687 void __RPC_STUB IOleCache2_RemoteUpdateCache_Stub(
    688     IRpcStubBuffer* This,
    689     IRpcChannelBuffer* pRpcChannelBuffer,
    690     PRPC_MESSAGE pRpcMessage,
    691     DWORD* pdwStubPhase);
    692 HRESULT STDMETHODCALLTYPE IOleCache2_DiscardCache_Proxy(
    693     IOleCache2* This,
    694     DWORD dwDiscardOptions);
    695 void __RPC_STUB IOleCache2_DiscardCache_Stub(
    696     IRpcStubBuffer* This,
    697     IRpcChannelBuffer* pRpcChannelBuffer,
    698     PRPC_MESSAGE pRpcMessage,
    699     DWORD* pdwStubPhase);
    700 HRESULT CALLBACK IOleCache2_UpdateCache_Proxy(
    701     IOleCache2* This,
    702     LPDATAOBJECT pDataObject,
    703     DWORD grfUpdf,
    704     LPVOID pReserved);
    705 HRESULT __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 
    722 typedef IOleCacheControl *LPOLECACHECONTROL;
    723 
    724 DEFINE_GUID(IID_IOleCacheControl, 0x00000129, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
    725 #if defined(__cplusplus) && !defined(CINTERFACE)
    726 MIDL_INTERFACE("00000129-0000-0000-c000-000000000046")
    727 IOleCacheControl : 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
    740 typedef 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;
    765 interface 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 ***/
    780 static FORCEINLINE HRESULT IOleCacheControl_QueryInterface(IOleCacheControl* This,REFIID riid,void **ppvObject) {
    781     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    782 }
    783 static FORCEINLINE ULONG IOleCacheControl_AddRef(IOleCacheControl* This) {
    784     return This->lpVtbl->AddRef(This);
    785 }
    786 static FORCEINLINE ULONG IOleCacheControl_Release(IOleCacheControl* This) {
    787     return This->lpVtbl->Release(This);
    788 }
    789 /*** IOleCacheControl methods ***/
    790 static FORCEINLINE HRESULT IOleCacheControl_OnRun(IOleCacheControl* This,LPDATAOBJECT pDataObject) {
    791     return This->lpVtbl->OnRun(This,pDataObject);
    792 }
    793 static FORCEINLINE HRESULT IOleCacheControl_OnStop(IOleCacheControl* This) {
    794     return This->lpVtbl->OnStop(This);
    795 }
    796 #endif
    797 #endif
    798 
    799 #endif
    800 
    801 HRESULT STDMETHODCALLTYPE IOleCacheControl_OnRun_Proxy(
    802     IOleCacheControl* This,
    803     LPDATAOBJECT pDataObject);
    804 void __RPC_STUB IOleCacheControl_OnRun_Stub(
    805     IRpcStubBuffer* This,
    806     IRpcChannelBuffer* pRpcChannelBuffer,
    807     PRPC_MESSAGE pRpcMessage,
    808     DWORD* pdwStubPhase);
    809 HRESULT STDMETHODCALLTYPE IOleCacheControl_OnStop_Proxy(
    810     IOleCacheControl* This);
    811 void __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 
    826 typedef IParseDisplayName *LPPARSEDISPLAYNAME;
    827 
    828 DEFINE_GUID(IID_IParseDisplayName, 0x0000011a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
    829 #if defined(__cplusplus) && !defined(CINTERFACE)
    830 MIDL_INTERFACE("0000011a-0000-0000-c000-000000000046")
    831 IParseDisplayName : 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
    844 typedef 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;
    869 interface 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 ***/
    883 static FORCEINLINE HRESULT IParseDisplayName_QueryInterface(IParseDisplayName* This,REFIID riid,void **ppvObject) {
    884     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    885 }
    886 static FORCEINLINE ULONG IParseDisplayName_AddRef(IParseDisplayName* This) {
    887     return This->lpVtbl->AddRef(This);
    888 }
    889 static FORCEINLINE ULONG IParseDisplayName_Release(IParseDisplayName* This) {
    890     return This->lpVtbl->Release(This);
    891 }
    892 /*** IParseDisplayName methods ***/
    893 static 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 
    901 HRESULT STDMETHODCALLTYPE IParseDisplayName_ParseDisplayName_Proxy(
    902     IParseDisplayName* This,
    903     IBindCtx *pbc,
    904     LPOLESTR pszDisplayName,
    905     ULONG *pchEaten,
    906     IMoniker **ppmkOut);
    907 void __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 
    922 typedef IOleContainer *LPOLECONTAINER;
    923 
    924 DEFINE_GUID(IID_IOleContainer, 0x0000011b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
    925 #if defined(__cplusplus) && !defined(CINTERFACE)
    926 MIDL_INTERFACE("0000011b-0000-0000-c000-000000000046")
    927 IOleContainer : 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
    941 typedef 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;
    976 interface 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 ***/
    993 static FORCEINLINE HRESULT IOleContainer_QueryInterface(IOleContainer* This,REFIID riid,void **ppvObject) {
    994     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    995 }
    996 static FORCEINLINE ULONG IOleContainer_AddRef(IOleContainer* This) {
    997     return This->lpVtbl->AddRef(This);
    998 }
    999 static FORCEINLINE ULONG IOleContainer_Release(IOleContainer* This) {
   1000     return This->lpVtbl->Release(This);
   1001 }
   1002 /*** IParseDisplayName methods ***/
   1003 static 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 ***/
   1007 static FORCEINLINE HRESULT IOleContainer_EnumObjects(IOleContainer* This,DWORD grfFlags,IEnumUnknown **ppenum) {
   1008     return This->lpVtbl->EnumObjects(This,grfFlags,ppenum);
   1009 }
   1010 static FORCEINLINE HRESULT IOleContainer_LockContainer(IOleContainer* This,WINBOOL fLock) {
   1011     return This->lpVtbl->LockContainer(This,fLock);
   1012 }
   1013 #endif
   1014 #endif
   1015 
   1016 #endif
   1017 
   1018 HRESULT STDMETHODCALLTYPE IOleContainer_EnumObjects_Proxy(
   1019     IOleContainer* This,
   1020     DWORD grfFlags,
   1021     IEnumUnknown **ppenum);
   1022 void __RPC_STUB IOleContainer_EnumObjects_Stub(
   1023     IRpcStubBuffer* This,
   1024     IRpcChannelBuffer* pRpcChannelBuffer,
   1025     PRPC_MESSAGE pRpcMessage,
   1026     DWORD* pdwStubPhase);
   1027 HRESULT STDMETHODCALLTYPE IOleContainer_LockContainer_Proxy(
   1028     IOleContainer* This,
   1029     WINBOOL fLock);
   1030 void __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 
   1045 typedef IOleClientSite *LPOLECLIENTSITE;
   1046 
   1047 DEFINE_GUID(IID_IOleClientSite, 0x00000118, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   1048 #if defined(__cplusplus) && !defined(CINTERFACE)
   1049 MIDL_INTERFACE("00000118-0000-0000-c000-000000000046")
   1050 IOleClientSite : 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
   1077 typedef 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;
   1118 interface 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 ***/
   1137 static FORCEINLINE HRESULT IOleClientSite_QueryInterface(IOleClientSite* This,REFIID riid,void **ppvObject) {
   1138     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1139 }
   1140 static FORCEINLINE ULONG IOleClientSite_AddRef(IOleClientSite* This) {
   1141     return This->lpVtbl->AddRef(This);
   1142 }
   1143 static FORCEINLINE ULONG IOleClientSite_Release(IOleClientSite* This) {
   1144     return This->lpVtbl->Release(This);
   1145 }
   1146 /*** IOleClientSite methods ***/
   1147 static FORCEINLINE HRESULT IOleClientSite_SaveObject(IOleClientSite* This) {
   1148     return This->lpVtbl->SaveObject(This);
   1149 }
   1150 static FORCEINLINE HRESULT IOleClientSite_GetMoniker(IOleClientSite* This,DWORD dwAssign,DWORD dwWhichMoniker,IMoniker **ppmk) {
   1151     return This->lpVtbl->GetMoniker(This,dwAssign,dwWhichMoniker,ppmk);
   1152 }
   1153 static FORCEINLINE HRESULT IOleClientSite_GetContainer(IOleClientSite* This,IOleContainer **ppContainer) {
   1154     return This->lpVtbl->GetContainer(This,ppContainer);
   1155 }
   1156 static FORCEINLINE HRESULT IOleClientSite_ShowObject(IOleClientSite* This) {
   1157     return This->lpVtbl->ShowObject(This);
   1158 }
   1159 static FORCEINLINE HRESULT IOleClientSite_OnShowWindow(IOleClientSite* This,WINBOOL fShow) {
   1160     return This->lpVtbl->OnShowWindow(This,fShow);
   1161 }
   1162 static FORCEINLINE HRESULT IOleClientSite_RequestNewObjectLayout(IOleClientSite* This) {
   1163     return This->lpVtbl->RequestNewObjectLayout(This);
   1164 }
   1165 #endif
   1166 #endif
   1167 
   1168 #endif
   1169 
   1170 HRESULT STDMETHODCALLTYPE IOleClientSite_SaveObject_Proxy(
   1171     IOleClientSite* This);
   1172 void __RPC_STUB IOleClientSite_SaveObject_Stub(
   1173     IRpcStubBuffer* This,
   1174     IRpcChannelBuffer* pRpcChannelBuffer,
   1175     PRPC_MESSAGE pRpcMessage,
   1176     DWORD* pdwStubPhase);
   1177 HRESULT STDMETHODCALLTYPE IOleClientSite_GetMoniker_Proxy(
   1178     IOleClientSite* This,
   1179     DWORD dwAssign,
   1180     DWORD dwWhichMoniker,
   1181     IMoniker **ppmk);
   1182 void __RPC_STUB IOleClientSite_GetMoniker_Stub(
   1183     IRpcStubBuffer* This,
   1184     IRpcChannelBuffer* pRpcChannelBuffer,
   1185     PRPC_MESSAGE pRpcMessage,
   1186     DWORD* pdwStubPhase);
   1187 HRESULT STDMETHODCALLTYPE IOleClientSite_GetContainer_Proxy(
   1188     IOleClientSite* This,
   1189     IOleContainer **ppContainer);
   1190 void __RPC_STUB IOleClientSite_GetContainer_Stub(
   1191     IRpcStubBuffer* This,
   1192     IRpcChannelBuffer* pRpcChannelBuffer,
   1193     PRPC_MESSAGE pRpcMessage,
   1194     DWORD* pdwStubPhase);
   1195 HRESULT STDMETHODCALLTYPE IOleClientSite_ShowObject_Proxy(
   1196     IOleClientSite* This);
   1197 void __RPC_STUB IOleClientSite_ShowObject_Stub(
   1198     IRpcStubBuffer* This,
   1199     IRpcChannelBuffer* pRpcChannelBuffer,
   1200     PRPC_MESSAGE pRpcMessage,
   1201     DWORD* pdwStubPhase);
   1202 HRESULT STDMETHODCALLTYPE IOleClientSite_OnShowWindow_Proxy(
   1203     IOleClientSite* This,
   1204     WINBOOL fShow);
   1205 void __RPC_STUB IOleClientSite_OnShowWindow_Stub(
   1206     IRpcStubBuffer* This,
   1207     IRpcChannelBuffer* pRpcChannelBuffer,
   1208     PRPC_MESSAGE pRpcMessage,
   1209     DWORD* pdwStubPhase);
   1210 HRESULT STDMETHODCALLTYPE IOleClientSite_RequestNewObjectLayout_Proxy(
   1211     IOleClientSite* This);
   1212 void __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 
   1227 typedef IOleObject *LPOLEOBJECT;
   1228 
   1229 typedef enum tagOLEGETMONIKER {
   1230     OLEGETMONIKER_ONLYIFTHERE = 1,
   1231     OLEGETMONIKER_FORCEASSIGN = 2,
   1232     OLEGETMONIKER_UNASSIGN = 3,
   1233     OLEGETMONIKER_TEMPFORUSER = 4
   1234 } OLEGETMONIKER;
   1235 
   1236 typedef enum tagOLEWHICHMK {
   1237     OLEWHICHMK_CONTAINER = 1,
   1238     OLEWHICHMK_OBJREL = 2,
   1239     OLEWHICHMK_OBJFULL = 3
   1240 } OLEWHICHMK;
   1241 
   1242 typedef enum tagUSERCLASSTYPE {
   1243     USERCLASSTYPE_FULL = 1,
   1244     USERCLASSTYPE_SHORT = 2,
   1245     USERCLASSTYPE_APPNAME = 3
   1246 } USERCLASSTYPE;
   1247 
   1248 typedef 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;
   1272 typedef enum tagOLECLOSE {
   1273     OLECLOSE_SAVEIFDIRTY = 0,
   1274     OLECLOSE_NOSAVE = 1,
   1275     OLECLOSE_PROMPTSAVE = 2
   1276 } OLECLOSE;
   1277 
   1278 DEFINE_GUID(IID_IOleObject, 0x00000112, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   1279 #if defined(__cplusplus) && !defined(CINTERFACE)
   1280 MIDL_INTERFACE("00000112-0000-0000-c000-000000000046")
   1281 IOleObject : 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
   1368 typedef 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;
   1485 interface 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 ***/
   1519 static FORCEINLINE HRESULT IOleObject_QueryInterface(IOleObject* This,REFIID riid,void **ppvObject) {
   1520     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1521 }
   1522 static FORCEINLINE ULONG IOleObject_AddRef(IOleObject* This) {
   1523     return This->lpVtbl->AddRef(This);
   1524 }
   1525 static FORCEINLINE ULONG IOleObject_Release(IOleObject* This) {
   1526     return This->lpVtbl->Release(This);
   1527 }
   1528 /*** IOleObject methods ***/
   1529 static FORCEINLINE HRESULT IOleObject_SetClientSite(IOleObject* This,IOleClientSite *pClientSite) {
   1530     return This->lpVtbl->SetClientSite(This,pClientSite);
   1531 }
   1532 static FORCEINLINE HRESULT IOleObject_GetClientSite(IOleObject* This,IOleClientSite **ppClientSite) {
   1533     return This->lpVtbl->GetClientSite(This,ppClientSite);
   1534 }
   1535 static FORCEINLINE HRESULT IOleObject_SetHostNames(IOleObject* This,LPCOLESTR szContainerApp,LPCOLESTR szContainerObj) {
   1536     return This->lpVtbl->SetHostNames(This,szContainerApp,szContainerObj);
   1537 }
   1538 static FORCEINLINE HRESULT IOleObject_Close(IOleObject* This,DWORD dwSaveOption) {
   1539     return This->lpVtbl->Close(This,dwSaveOption);
   1540 }
   1541 static FORCEINLINE HRESULT IOleObject_SetMoniker(IOleObject* This,DWORD dwWhichMoniker,IMoniker *pmk) {
   1542     return This->lpVtbl->SetMoniker(This,dwWhichMoniker,pmk);
   1543 }
   1544 static FORCEINLINE HRESULT IOleObject_GetMoniker(IOleObject* This,DWORD dwAssign,DWORD dwWhichMoniker,IMoniker **ppmk) {
   1545     return This->lpVtbl->GetMoniker(This,dwAssign,dwWhichMoniker,ppmk);
   1546 }
   1547 static FORCEINLINE HRESULT IOleObject_InitFromData(IOleObject* This,IDataObject *pDataObject,WINBOOL fCreation,DWORD dwReserved) {
   1548     return This->lpVtbl->InitFromData(This,pDataObject,fCreation,dwReserved);
   1549 }
   1550 static FORCEINLINE HRESULT IOleObject_GetClipboardData(IOleObject* This,DWORD dwReserved,IDataObject **ppDataObject) {
   1551     return This->lpVtbl->GetClipboardData(This,dwReserved,ppDataObject);
   1552 }
   1553 static 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 }
   1556 static FORCEINLINE HRESULT IOleObject_EnumVerbs(IOleObject* This,IEnumOLEVERB **ppEnumOleVerb) {
   1557     return This->lpVtbl->EnumVerbs(This,ppEnumOleVerb);
   1558 }
   1559 static FORCEINLINE HRESULT IOleObject_Update(IOleObject* This) {
   1560     return This->lpVtbl->Update(This);
   1561 }
   1562 static FORCEINLINE HRESULT IOleObject_IsUpToDate(IOleObject* This) {
   1563     return This->lpVtbl->IsUpToDate(This);
   1564 }
   1565 static FORCEINLINE HRESULT IOleObject_GetUserClassID(IOleObject* This,CLSID *pClsid) {
   1566     return This->lpVtbl->GetUserClassID(This,pClsid);
   1567 }
   1568 static FORCEINLINE HRESULT IOleObject_GetUserType(IOleObject* This,DWORD dwFormOfType,LPOLESTR *pszUserType) {
   1569     return This->lpVtbl->GetUserType(This,dwFormOfType,pszUserType);
   1570 }
   1571 static FORCEINLINE HRESULT IOleObject_SetExtent(IOleObject* This,DWORD dwDrawAspect,SIZEL *psizel) {
   1572     return This->lpVtbl->SetExtent(This,dwDrawAspect,psizel);
   1573 }
   1574 static FORCEINLINE HRESULT IOleObject_GetExtent(IOleObject* This,DWORD dwDrawAspect,SIZEL *psizel) {
   1575     return This->lpVtbl->GetExtent(This,dwDrawAspect,psizel);
   1576 }
   1577 static FORCEINLINE HRESULT IOleObject_Advise(IOleObject* This,IAdviseSink *pAdvSink,DWORD *pdwConnection) {
   1578     return This->lpVtbl->Advise(This,pAdvSink,pdwConnection);
   1579 }
   1580 static FORCEINLINE HRESULT IOleObject_Unadvise(IOleObject* This,DWORD dwConnection) {
   1581     return This->lpVtbl->Unadvise(This,dwConnection);
   1582 }
   1583 static FORCEINLINE HRESULT IOleObject_EnumAdvise(IOleObject* This,IEnumSTATDATA **ppenumAdvise) {
   1584     return This->lpVtbl->EnumAdvise(This,ppenumAdvise);
   1585 }
   1586 static FORCEINLINE HRESULT IOleObject_GetMiscStatus(IOleObject* This,DWORD dwAspect,DWORD *pdwStatus) {
   1587     return This->lpVtbl->GetMiscStatus(This,dwAspect,pdwStatus);
   1588 }
   1589 static FORCEINLINE HRESULT IOleObject_SetColorScheme(IOleObject* This,LOGPALETTE *pLogpal) {
   1590     return This->lpVtbl->SetColorScheme(This,pLogpal);
   1591 }
   1592 #endif
   1593 #endif
   1594 
   1595 #endif
   1596 
   1597 HRESULT STDMETHODCALLTYPE IOleObject_SetClientSite_Proxy(
   1598     IOleObject* This,
   1599     IOleClientSite *pClientSite);
   1600 void __RPC_STUB IOleObject_SetClientSite_Stub(
   1601     IRpcStubBuffer* This,
   1602     IRpcChannelBuffer* pRpcChannelBuffer,
   1603     PRPC_MESSAGE pRpcMessage,
   1604     DWORD* pdwStubPhase);
   1605 HRESULT STDMETHODCALLTYPE IOleObject_GetClientSite_Proxy(
   1606     IOleObject* This,
   1607     IOleClientSite **ppClientSite);
   1608 void __RPC_STUB IOleObject_GetClientSite_Stub(
   1609     IRpcStubBuffer* This,
   1610     IRpcChannelBuffer* pRpcChannelBuffer,
   1611     PRPC_MESSAGE pRpcMessage,
   1612     DWORD* pdwStubPhase);
   1613 HRESULT STDMETHODCALLTYPE IOleObject_SetHostNames_Proxy(
   1614     IOleObject* This,
   1615     LPCOLESTR szContainerApp,
   1616     LPCOLESTR szContainerObj);
   1617 void __RPC_STUB IOleObject_SetHostNames_Stub(
   1618     IRpcStubBuffer* This,
   1619     IRpcChannelBuffer* pRpcChannelBuffer,
   1620     PRPC_MESSAGE pRpcMessage,
   1621     DWORD* pdwStubPhase);
   1622 HRESULT STDMETHODCALLTYPE IOleObject_Close_Proxy(
   1623     IOleObject* This,
   1624     DWORD dwSaveOption);
   1625 void __RPC_STUB IOleObject_Close_Stub(
   1626     IRpcStubBuffer* This,
   1627     IRpcChannelBuffer* pRpcChannelBuffer,
   1628     PRPC_MESSAGE pRpcMessage,
   1629     DWORD* pdwStubPhase);
   1630 HRESULT STDMETHODCALLTYPE IOleObject_SetMoniker_Proxy(
   1631     IOleObject* This,
   1632     DWORD dwWhichMoniker,
   1633     IMoniker *pmk);
   1634 void __RPC_STUB IOleObject_SetMoniker_Stub(
   1635     IRpcStubBuffer* This,
   1636     IRpcChannelBuffer* pRpcChannelBuffer,
   1637     PRPC_MESSAGE pRpcMessage,
   1638     DWORD* pdwStubPhase);
   1639 HRESULT STDMETHODCALLTYPE IOleObject_GetMoniker_Proxy(
   1640     IOleObject* This,
   1641     DWORD dwAssign,
   1642     DWORD dwWhichMoniker,
   1643     IMoniker **ppmk);
   1644 void __RPC_STUB IOleObject_GetMoniker_Stub(
   1645     IRpcStubBuffer* This,
   1646     IRpcChannelBuffer* pRpcChannelBuffer,
   1647     PRPC_MESSAGE pRpcMessage,
   1648     DWORD* pdwStubPhase);
   1649 HRESULT STDMETHODCALLTYPE IOleObject_InitFromData_Proxy(
   1650     IOleObject* This,
   1651     IDataObject *pDataObject,
   1652     WINBOOL fCreation,
   1653     DWORD dwReserved);
   1654 void __RPC_STUB IOleObject_InitFromData_Stub(
   1655     IRpcStubBuffer* This,
   1656     IRpcChannelBuffer* pRpcChannelBuffer,
   1657     PRPC_MESSAGE pRpcMessage,
   1658     DWORD* pdwStubPhase);
   1659 HRESULT STDMETHODCALLTYPE IOleObject_GetClipboardData_Proxy(
   1660     IOleObject* This,
   1661     DWORD dwReserved,
   1662     IDataObject **ppDataObject);
   1663 void __RPC_STUB IOleObject_GetClipboardData_Stub(
   1664     IRpcStubBuffer* This,
   1665     IRpcChannelBuffer* pRpcChannelBuffer,
   1666     PRPC_MESSAGE pRpcMessage,
   1667     DWORD* pdwStubPhase);
   1668 HRESULT 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);
   1676 void __RPC_STUB IOleObject_DoVerb_Stub(
   1677     IRpcStubBuffer* This,
   1678     IRpcChannelBuffer* pRpcChannelBuffer,
   1679     PRPC_MESSAGE pRpcMessage,
   1680     DWORD* pdwStubPhase);
   1681 HRESULT STDMETHODCALLTYPE IOleObject_EnumVerbs_Proxy(
   1682     IOleObject* This,
   1683     IEnumOLEVERB **ppEnumOleVerb);
   1684 void __RPC_STUB IOleObject_EnumVerbs_Stub(
   1685     IRpcStubBuffer* This,
   1686     IRpcChannelBuffer* pRpcChannelBuffer,
   1687     PRPC_MESSAGE pRpcMessage,
   1688     DWORD* pdwStubPhase);
   1689 HRESULT STDMETHODCALLTYPE IOleObject_Update_Proxy(
   1690     IOleObject* This);
   1691 void __RPC_STUB IOleObject_Update_Stub(
   1692     IRpcStubBuffer* This,
   1693     IRpcChannelBuffer* pRpcChannelBuffer,
   1694     PRPC_MESSAGE pRpcMessage,
   1695     DWORD* pdwStubPhase);
   1696 HRESULT STDMETHODCALLTYPE IOleObject_IsUpToDate_Proxy(
   1697     IOleObject* This);
   1698 void __RPC_STUB IOleObject_IsUpToDate_Stub(
   1699     IRpcStubBuffer* This,
   1700     IRpcChannelBuffer* pRpcChannelBuffer,
   1701     PRPC_MESSAGE pRpcMessage,
   1702     DWORD* pdwStubPhase);
   1703 HRESULT STDMETHODCALLTYPE IOleObject_GetUserClassID_Proxy(
   1704     IOleObject* This,
   1705     CLSID *pClsid);
   1706 void __RPC_STUB IOleObject_GetUserClassID_Stub(
   1707     IRpcStubBuffer* This,
   1708     IRpcChannelBuffer* pRpcChannelBuffer,
   1709     PRPC_MESSAGE pRpcMessage,
   1710     DWORD* pdwStubPhase);
   1711 HRESULT STDMETHODCALLTYPE IOleObject_GetUserType_Proxy(
   1712     IOleObject* This,
   1713     DWORD dwFormOfType,
   1714     LPOLESTR *pszUserType);
   1715 void __RPC_STUB IOleObject_GetUserType_Stub(
   1716     IRpcStubBuffer* This,
   1717     IRpcChannelBuffer* pRpcChannelBuffer,
   1718     PRPC_MESSAGE pRpcMessage,
   1719     DWORD* pdwStubPhase);
   1720 HRESULT STDMETHODCALLTYPE IOleObject_SetExtent_Proxy(
   1721     IOleObject* This,
   1722     DWORD dwDrawAspect,
   1723     SIZEL *psizel);
   1724 void __RPC_STUB IOleObject_SetExtent_Stub(
   1725     IRpcStubBuffer* This,
   1726     IRpcChannelBuffer* pRpcChannelBuffer,
   1727     PRPC_MESSAGE pRpcMessage,
   1728     DWORD* pdwStubPhase);
   1729 HRESULT STDMETHODCALLTYPE IOleObject_GetExtent_Proxy(
   1730     IOleObject* This,
   1731     DWORD dwDrawAspect,
   1732     SIZEL *psizel);
   1733 void __RPC_STUB IOleObject_GetExtent_Stub(
   1734     IRpcStubBuffer* This,
   1735     IRpcChannelBuffer* pRpcChannelBuffer,
   1736     PRPC_MESSAGE pRpcMessage,
   1737     DWORD* pdwStubPhase);
   1738 HRESULT STDMETHODCALLTYPE IOleObject_Advise_Proxy(
   1739     IOleObject* This,
   1740     IAdviseSink *pAdvSink,
   1741     DWORD *pdwConnection);
   1742 void __RPC_STUB IOleObject_Advise_Stub(
   1743     IRpcStubBuffer* This,
   1744     IRpcChannelBuffer* pRpcChannelBuffer,
   1745     PRPC_MESSAGE pRpcMessage,
   1746     DWORD* pdwStubPhase);
   1747 HRESULT STDMETHODCALLTYPE IOleObject_Unadvise_Proxy(
   1748     IOleObject* This,
   1749     DWORD dwConnection);
   1750 void __RPC_STUB IOleObject_Unadvise_Stub(
   1751     IRpcStubBuffer* This,
   1752     IRpcChannelBuffer* pRpcChannelBuffer,
   1753     PRPC_MESSAGE pRpcMessage,
   1754     DWORD* pdwStubPhase);
   1755 HRESULT STDMETHODCALLTYPE IOleObject_EnumAdvise_Proxy(
   1756     IOleObject* This,
   1757     IEnumSTATDATA **ppenumAdvise);
   1758 void __RPC_STUB IOleObject_EnumAdvise_Stub(
   1759     IRpcStubBuffer* This,
   1760     IRpcChannelBuffer* pRpcChannelBuffer,
   1761     PRPC_MESSAGE pRpcMessage,
   1762     DWORD* pdwStubPhase);
   1763 HRESULT STDMETHODCALLTYPE IOleObject_GetMiscStatus_Proxy(
   1764     IOleObject* This,
   1765     DWORD dwAspect,
   1766     DWORD *pdwStatus);
   1767 void __RPC_STUB IOleObject_GetMiscStatus_Stub(
   1768     IRpcStubBuffer* This,
   1769     IRpcChannelBuffer* pRpcChannelBuffer,
   1770     PRPC_MESSAGE pRpcMessage,
   1771     DWORD* pdwStubPhase);
   1772 HRESULT STDMETHODCALLTYPE IOleObject_SetColorScheme_Proxy(
   1773     IOleObject* This,
   1774     LOGPALETTE *pLogpal);
   1775 void __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 
   1790 extern RPC_IF_HANDLE IOLETypes_v0_0_c_ifspec;
   1791 extern RPC_IF_HANDLE IOLETypes_v0_0_s_ifspec;
   1792 typedef enum tagOLERENDER {
   1793     OLERENDER_NONE = 0,
   1794     OLERENDER_DRAW = 1,
   1795     OLERENDER_FORMAT = 2,
   1796     OLERENDER_ASIS = 3
   1797 } OLERENDER;
   1798 
   1799 typedef OLERENDER *LPOLERENDER;
   1800 
   1801 typedef 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;
   1811 typedef struct tagOBJECTDESCRIPTOR *POBJECTDESCRIPTOR;
   1812 typedef struct tagOBJECTDESCRIPTOR *LPOBJECTDESCRIPTOR;
   1813 typedef struct tagOBJECTDESCRIPTOR LINKSRCDESCRIPTOR;
   1814 typedef struct tagOBJECTDESCRIPTOR *PLINKSRCDESCRIPTOR;
   1815 typedef 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 
   1826 typedef IOleWindow *LPOLEWINDOW;
   1827 
   1828 DEFINE_GUID(IID_IOleWindow, 0x00000114, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   1829 #if defined(__cplusplus) && !defined(CINTERFACE)
   1830 MIDL_INTERFACE("00000114-0000-0000-c000-000000000046")
   1831 IOleWindow : 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
   1844 typedef 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;
   1870 interface 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 ***/
   1885 static FORCEINLINE HRESULT IOleWindow_QueryInterface(IOleWindow* This,REFIID riid,void **ppvObject) {
   1886     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1887 }
   1888 static FORCEINLINE ULONG IOleWindow_AddRef(IOleWindow* This) {
   1889     return This->lpVtbl->AddRef(This);
   1890 }
   1891 static FORCEINLINE ULONG IOleWindow_Release(IOleWindow* This) {
   1892     return This->lpVtbl->Release(This);
   1893 }
   1894 /*** IOleWindow methods ***/
   1895 static FORCEINLINE HRESULT IOleWindow_GetWindow(IOleWindow* This,HWND *phwnd) {
   1896     return This->lpVtbl->GetWindow(This,phwnd);
   1897 }
   1898 static FORCEINLINE HRESULT IOleWindow_ContextSensitiveHelp(IOleWindow* This,WINBOOL fEnterMode) {
   1899     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
   1900 }
   1901 #endif
   1902 #endif
   1903 
   1904 #endif
   1905 
   1906 HRESULT STDMETHODCALLTYPE IOleWindow_GetWindow_Proxy(
   1907     IOleWindow* This,
   1908     HWND *phwnd);
   1909 void __RPC_STUB IOleWindow_GetWindow_Stub(
   1910     IRpcStubBuffer* This,
   1911     IRpcChannelBuffer* pRpcChannelBuffer,
   1912     PRPC_MESSAGE pRpcMessage,
   1913     DWORD* pdwStubPhase);
   1914 HRESULT STDMETHODCALLTYPE IOleWindow_ContextSensitiveHelp_Proxy(
   1915     IOleWindow* This,
   1916     WINBOOL fEnterMode);
   1917 void __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 
   1932 typedef IOleLink *LPOLELINK;
   1933 
   1934 typedef enum tagOLEUPDATE {
   1935     OLEUPDATE_ALWAYS = 1,
   1936     OLEUPDATE_ONCALL = 3
   1937 } OLEUPDATE;
   1938 
   1939 typedef OLEUPDATE *LPOLEUPDATE;
   1940 typedef OLEUPDATE *POLEUPDATE;
   1941 
   1942 typedef enum tagOLELINKBIND {
   1943     OLELINKBIND_EVENIFCLASSDIFF = 1
   1944 } OLELINKBIND;
   1945 
   1946 DEFINE_GUID(IID_IOleLink, 0x0000011d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   1947 #if defined(__cplusplus) && !defined(CINTERFACE)
   1948 MIDL_INTERFACE("0000011d-0000-0000-c000-000000000046")
   1949 IOleLink : 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
   1991 typedef 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;
   2053 interface 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 ***/
   2077 static FORCEINLINE HRESULT IOleLink_QueryInterface(IOleLink* This,REFIID riid,void **ppvObject) {
   2078     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2079 }
   2080 static FORCEINLINE ULONG IOleLink_AddRef(IOleLink* This) {
   2081     return This->lpVtbl->AddRef(This);
   2082 }
   2083 static FORCEINLINE ULONG IOleLink_Release(IOleLink* This) {
   2084     return This->lpVtbl->Release(This);
   2085 }
   2086 /*** IOleLink methods ***/
   2087 static FORCEINLINE HRESULT IOleLink_SetUpdateOptions(IOleLink* This,DWORD dwUpdateOpt) {
   2088     return This->lpVtbl->SetUpdateOptions(This,dwUpdateOpt);
   2089 }
   2090 static FORCEINLINE HRESULT IOleLink_GetUpdateOptions(IOleLink* This,DWORD *pdwUpdateOpt) {
   2091     return This->lpVtbl->GetUpdateOptions(This,pdwUpdateOpt);
   2092 }
   2093 static FORCEINLINE HRESULT IOleLink_SetSourceMoniker(IOleLink* This,IMoniker *pmk,REFCLSID rclsid) {
   2094     return This->lpVtbl->SetSourceMoniker(This,pmk,rclsid);
   2095 }
   2096 static FORCEINLINE HRESULT IOleLink_GetSourceMoniker(IOleLink* This,IMoniker **ppmk) {
   2097     return This->lpVtbl->GetSourceMoniker(This,ppmk);
   2098 }
   2099 static FORCEINLINE HRESULT IOleLink_SetSourceDisplayName(IOleLink* This,LPCOLESTR pszStatusText) {
   2100     return This->lpVtbl->SetSourceDisplayName(This,pszStatusText);
   2101 }
   2102 static FORCEINLINE HRESULT IOleLink_GetSourceDisplayName(IOleLink* This,LPOLESTR *ppszDisplayName) {
   2103     return This->lpVtbl->GetSourceDisplayName(This,ppszDisplayName);
   2104 }
   2105 static FORCEINLINE HRESULT IOleLink_BindToSource(IOleLink* This,DWORD bindflags,IBindCtx *pbc) {
   2106     return This->lpVtbl->BindToSource(This,bindflags,pbc);
   2107 }
   2108 static FORCEINLINE HRESULT IOleLink_BindIfRunning(IOleLink* This) {
   2109     return This->lpVtbl->BindIfRunning(This);
   2110 }
   2111 static FORCEINLINE HRESULT IOleLink_GetBoundSource(IOleLink* This,IUnknown **ppunk) {
   2112     return This->lpVtbl->GetBoundSource(This,ppunk);
   2113 }
   2114 static FORCEINLINE HRESULT IOleLink_UnbindSource(IOleLink* This) {
   2115     return This->lpVtbl->UnbindSource(This);
   2116 }
   2117 static FORCEINLINE HRESULT IOleLink_Update(IOleLink* This,IBindCtx *pbc) {
   2118     return This->lpVtbl->Update(This,pbc);
   2119 }
   2120 #endif
   2121 #endif
   2122 
   2123 #endif
   2124 
   2125 HRESULT STDMETHODCALLTYPE IOleLink_SetUpdateOptions_Proxy(
   2126     IOleLink* This,
   2127     DWORD dwUpdateOpt);
   2128 void __RPC_STUB IOleLink_SetUpdateOptions_Stub(
   2129     IRpcStubBuffer* This,
   2130     IRpcChannelBuffer* pRpcChannelBuffer,
   2131     PRPC_MESSAGE pRpcMessage,
   2132     DWORD* pdwStubPhase);
   2133 HRESULT STDMETHODCALLTYPE IOleLink_GetUpdateOptions_Proxy(
   2134     IOleLink* This,
   2135     DWORD *pdwUpdateOpt);
   2136 void __RPC_STUB IOleLink_GetUpdateOptions_Stub(
   2137     IRpcStubBuffer* This,
   2138     IRpcChannelBuffer* pRpcChannelBuffer,
   2139     PRPC_MESSAGE pRpcMessage,
   2140     DWORD* pdwStubPhase);
   2141 HRESULT STDMETHODCALLTYPE IOleLink_SetSourceMoniker_Proxy(
   2142     IOleLink* This,
   2143     IMoniker *pmk,
   2144     REFCLSID rclsid);
   2145 void __RPC_STUB IOleLink_SetSourceMoniker_Stub(
   2146     IRpcStubBuffer* This,
   2147     IRpcChannelBuffer* pRpcChannelBuffer,
   2148     PRPC_MESSAGE pRpcMessage,
   2149     DWORD* pdwStubPhase);
   2150 HRESULT STDMETHODCALLTYPE IOleLink_GetSourceMoniker_Proxy(
   2151     IOleLink* This,
   2152     IMoniker **ppmk);
   2153 void __RPC_STUB IOleLink_GetSourceMoniker_Stub(
   2154     IRpcStubBuffer* This,
   2155     IRpcChannelBuffer* pRpcChannelBuffer,
   2156     PRPC_MESSAGE pRpcMessage,
   2157     DWORD* pdwStubPhase);
   2158 HRESULT STDMETHODCALLTYPE IOleLink_SetSourceDisplayName_Proxy(
   2159     IOleLink* This,
   2160     LPCOLESTR pszStatusText);
   2161 void __RPC_STUB IOleLink_SetSourceDisplayName_Stub(
   2162     IRpcStubBuffer* This,
   2163     IRpcChannelBuffer* pRpcChannelBuffer,
   2164     PRPC_MESSAGE pRpcMessage,
   2165     DWORD* pdwStubPhase);
   2166 HRESULT STDMETHODCALLTYPE IOleLink_GetSourceDisplayName_Proxy(
   2167     IOleLink* This,
   2168     LPOLESTR *ppszDisplayName);
   2169 void __RPC_STUB IOleLink_GetSourceDisplayName_Stub(
   2170     IRpcStubBuffer* This,
   2171     IRpcChannelBuffer* pRpcChannelBuffer,
   2172     PRPC_MESSAGE pRpcMessage,
   2173     DWORD* pdwStubPhase);
   2174 HRESULT STDMETHODCALLTYPE IOleLink_BindToSource_Proxy(
   2175     IOleLink* This,
   2176     DWORD bindflags,
   2177     IBindCtx *pbc);
   2178 void __RPC_STUB IOleLink_BindToSource_Stub(
   2179     IRpcStubBuffer* This,
   2180     IRpcChannelBuffer* pRpcChannelBuffer,
   2181     PRPC_MESSAGE pRpcMessage,
   2182     DWORD* pdwStubPhase);
   2183 HRESULT STDMETHODCALLTYPE IOleLink_BindIfRunning_Proxy(
   2184     IOleLink* This);
   2185 void __RPC_STUB IOleLink_BindIfRunning_Stub(
   2186     IRpcStubBuffer* This,
   2187     IRpcChannelBuffer* pRpcChannelBuffer,
   2188     PRPC_MESSAGE pRpcMessage,
   2189     DWORD* pdwStubPhase);
   2190 HRESULT STDMETHODCALLTYPE IOleLink_GetBoundSource_Proxy(
   2191     IOleLink* This,
   2192     IUnknown **ppunk);
   2193 void __RPC_STUB IOleLink_GetBoundSource_Stub(
   2194     IRpcStubBuffer* This,
   2195     IRpcChannelBuffer* pRpcChannelBuffer,
   2196     PRPC_MESSAGE pRpcMessage,
   2197     DWORD* pdwStubPhase);
   2198 HRESULT STDMETHODCALLTYPE IOleLink_UnbindSource_Proxy(
   2199     IOleLink* This);
   2200 void __RPC_STUB IOleLink_UnbindSource_Stub(
   2201     IRpcStubBuffer* This,
   2202     IRpcChannelBuffer* pRpcChannelBuffer,
   2203     PRPC_MESSAGE pRpcMessage,
   2204     DWORD* pdwStubPhase);
   2205 HRESULT STDMETHODCALLTYPE IOleLink_Update_Proxy(
   2206     IOleLink* This,
   2207     IBindCtx *pbc);
   2208 void __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 
   2223 typedef IOleItemContainer *LPOLEITEMCONTAINER;
   2224 
   2225 typedef enum tagBINDSPEED {
   2226     BINDSPEED_INDEFINITE = 1,
   2227     BINDSPEED_MODERATE = 2,
   2228     BINDSPEED_IMMEDIATE = 3
   2229 } BINDSPEED;
   2230 
   2231 typedef 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 
   2239 DEFINE_GUID(IID_IOleItemContainer, 0x0000011c, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   2240 #if defined(__cplusplus) && !defined(CINTERFACE)
   2241 MIDL_INTERFACE("0000011c-0000-0000-c000-000000000046")
   2242 IOleItemContainer : 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
   2265 typedef 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;
   2320 interface 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 ***/
   2341 static FORCEINLINE HRESULT IOleItemContainer_QueryInterface(IOleItemContainer* This,REFIID riid,void **ppvObject) {
   2342     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2343 }
   2344 static FORCEINLINE ULONG IOleItemContainer_AddRef(IOleItemContainer* This) {
   2345     return This->lpVtbl->AddRef(This);
   2346 }
   2347 static FORCEINLINE ULONG IOleItemContainer_Release(IOleItemContainer* This) {
   2348     return This->lpVtbl->Release(This);
   2349 }
   2350 /*** IParseDisplayName methods ***/
   2351 static 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 ***/
   2355 static FORCEINLINE HRESULT IOleItemContainer_EnumObjects(IOleItemContainer* This,DWORD grfFlags,IEnumUnknown **ppenum) {
   2356     return This->lpVtbl->EnumObjects(This,grfFlags,ppenum);
   2357 }
   2358 static FORCEINLINE HRESULT IOleItemContainer_LockContainer(IOleItemContainer* This,WINBOOL fLock) {
   2359     return This->lpVtbl->LockContainer(This,fLock);
   2360 }
   2361 /*** IOleItemContainer methods ***/
   2362 static 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 }
   2365 static 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 }
   2368 static FORCEINLINE HRESULT IOleItemContainer_IsRunning(IOleItemContainer* This,LPOLESTR pszItem) {
   2369     return This->lpVtbl->IsRunning(This,pszItem);
   2370 }
   2371 #endif
   2372 #endif
   2373 
   2374 #endif
   2375 
   2376 HRESULT STDMETHODCALLTYPE IOleItemContainer_GetObject_Proxy(
   2377     IOleItemContainer* This,
   2378     LPOLESTR pszItem,
   2379     DWORD dwSpeedNeeded,
   2380     IBindCtx *pbc,
   2381     REFIID riid,
   2382     void **ppvObject);
   2383 void __RPC_STUB IOleItemContainer_GetObject_Stub(
   2384     IRpcStubBuffer* This,
   2385     IRpcChannelBuffer* pRpcChannelBuffer,
   2386     PRPC_MESSAGE pRpcMessage,
   2387     DWORD* pdwStubPhase);
   2388 HRESULT STDMETHODCALLTYPE IOleItemContainer_GetObjectStorage_Proxy(
   2389     IOleItemContainer* This,
   2390     LPOLESTR pszItem,
   2391     IBindCtx *pbc,
   2392     REFIID riid,
   2393     void **ppvStorage);
   2394 void __RPC_STUB IOleItemContainer_GetObjectStorage_Stub(
   2395     IRpcStubBuffer* This,
   2396     IRpcChannelBuffer* pRpcChannelBuffer,
   2397     PRPC_MESSAGE pRpcMessage,
   2398     DWORD* pdwStubPhase);
   2399 HRESULT STDMETHODCALLTYPE IOleItemContainer_IsRunning_Proxy(
   2400     IOleItemContainer* This,
   2401     LPOLESTR pszItem);
   2402 void __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 
   2417 typedef IOleInPlaceUIWindow *LPOLEINPLACEUIWINDOW;
   2418 typedef RECT BORDERWIDTHS;
   2419 typedef LPRECT LPBORDERWIDTHS;
   2420 typedef LPCRECT LPCBORDERWIDTHS;
   2421 
   2422 DEFINE_GUID(IID_IOleInPlaceUIWindow, 0x00000115, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   2423 #if defined(__cplusplus) && !defined(CINTERFACE)
   2424 MIDL_INTERFACE("00000115-0000-0000-c000-000000000046")
   2425 IOleInPlaceUIWindow : 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
   2445 typedef 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;
   2489 interface 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 ***/
   2509 static FORCEINLINE HRESULT IOleInPlaceUIWindow_QueryInterface(IOleInPlaceUIWindow* This,REFIID riid,void **ppvObject) {
   2510     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2511 }
   2512 static FORCEINLINE ULONG IOleInPlaceUIWindow_AddRef(IOleInPlaceUIWindow* This) {
   2513     return This->lpVtbl->AddRef(This);
   2514 }
   2515 static FORCEINLINE ULONG IOleInPlaceUIWindow_Release(IOleInPlaceUIWindow* This) {
   2516     return This->lpVtbl->Release(This);
   2517 }
   2518 /*** IOleWindow methods ***/
   2519 static FORCEINLINE HRESULT IOleInPlaceUIWindow_GetWindow(IOleInPlaceUIWindow* This,HWND *phwnd) {
   2520     return This->lpVtbl->GetWindow(This,phwnd);
   2521 }
   2522 static FORCEINLINE HRESULT IOleInPlaceUIWindow_ContextSensitiveHelp(IOleInPlaceUIWindow* This,WINBOOL fEnterMode) {
   2523     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
   2524 }
   2525 /*** IOleInPlaceUIWindow methods ***/
   2526 static FORCEINLINE HRESULT IOleInPlaceUIWindow_GetBorder(IOleInPlaceUIWindow* This,LPRECT lprectBorder) {
   2527     return This->lpVtbl->GetBorder(This,lprectBorder);
   2528 }
   2529 static FORCEINLINE HRESULT IOleInPlaceUIWindow_RequestBorderSpace(IOleInPlaceUIWindow* This,LPCBORDERWIDTHS pborderwidths) {
   2530     return This->lpVtbl->RequestBorderSpace(This,pborderwidths);
   2531 }
   2532 static FORCEINLINE HRESULT IOleInPlaceUIWindow_SetBorderSpace(IOleInPlaceUIWindow* This,LPCBORDERWIDTHS pborderwidths) {
   2533     return This->lpVtbl->SetBorderSpace(This,pborderwidths);
   2534 }
   2535 static 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 
   2543 HRESULT STDMETHODCALLTYPE IOleInPlaceUIWindow_GetBorder_Proxy(
   2544     IOleInPlaceUIWindow* This,
   2545     LPRECT lprectBorder);
   2546 void __RPC_STUB IOleInPlaceUIWindow_GetBorder_Stub(
   2547     IRpcStubBuffer* This,
   2548     IRpcChannelBuffer* pRpcChannelBuffer,
   2549     PRPC_MESSAGE pRpcMessage,
   2550     DWORD* pdwStubPhase);
   2551 HRESULT STDMETHODCALLTYPE IOleInPlaceUIWindow_RequestBorderSpace_Proxy(
   2552     IOleInPlaceUIWindow* This,
   2553     LPCBORDERWIDTHS pborderwidths);
   2554 void __RPC_STUB IOleInPlaceUIWindow_RequestBorderSpace_Stub(
   2555     IRpcStubBuffer* This,
   2556     IRpcChannelBuffer* pRpcChannelBuffer,
   2557     PRPC_MESSAGE pRpcMessage,
   2558     DWORD* pdwStubPhase);
   2559 HRESULT STDMETHODCALLTYPE IOleInPlaceUIWindow_SetBorderSpace_Proxy(
   2560     IOleInPlaceUIWindow* This,
   2561     LPCBORDERWIDTHS pborderwidths);
   2562 void __RPC_STUB IOleInPlaceUIWindow_SetBorderSpace_Stub(
   2563     IRpcStubBuffer* This,
   2564     IRpcChannelBuffer* pRpcChannelBuffer,
   2565     PRPC_MESSAGE pRpcMessage,
   2566     DWORD* pdwStubPhase);
   2567 HRESULT STDMETHODCALLTYPE IOleInPlaceUIWindow_SetActiveObject_Proxy(
   2568     IOleInPlaceUIWindow* This,
   2569     IOleInPlaceActiveObject *pActiveObject,
   2570     LPCOLESTR pszObjName);
   2571 void __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 
   2586 typedef IOleInPlaceActiveObject *LPOLEINPLACEACTIVEOBJECT;
   2587 
   2588 DEFINE_GUID(IID_IOleInPlaceActiveObject, 0x00000117, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   2589 #if defined(__cplusplus) && !defined(CINTERFACE)
   2590 MIDL_INTERFACE("00000117-0000-0000-c000-000000000046")
   2591 IOleInPlaceActiveObject : 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
   2615 typedef 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;
   2664 interface 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 ***/
   2685 static FORCEINLINE HRESULT IOleInPlaceActiveObject_QueryInterface(IOleInPlaceActiveObject* This,REFIID riid,void **ppvObject) {
   2686     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2687 }
   2688 static FORCEINLINE ULONG IOleInPlaceActiveObject_AddRef(IOleInPlaceActiveObject* This) {
   2689     return This->lpVtbl->AddRef(This);
   2690 }
   2691 static FORCEINLINE ULONG IOleInPlaceActiveObject_Release(IOleInPlaceActiveObject* This) {
   2692     return This->lpVtbl->Release(This);
   2693 }
   2694 /*** IOleWindow methods ***/
   2695 static FORCEINLINE HRESULT IOleInPlaceActiveObject_GetWindow(IOleInPlaceActiveObject* This,HWND *phwnd) {
   2696     return This->lpVtbl->GetWindow(This,phwnd);
   2697 }
   2698 static FORCEINLINE HRESULT IOleInPlaceActiveObject_ContextSensitiveHelp(IOleInPlaceActiveObject* This,WINBOOL fEnterMode) {
   2699     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
   2700 }
   2701 /*** IOleInPlaceActiveObject methods ***/
   2702 static FORCEINLINE HRESULT IOleInPlaceActiveObject_TranslateAccelerator(IOleInPlaceActiveObject* This,LPMSG lpmsg) {
   2703     return This->lpVtbl->TranslateAccelerator(This,lpmsg);
   2704 }
   2705 static FORCEINLINE HRESULT IOleInPlaceActiveObject_OnFrameWindowActivate(IOleInPlaceActiveObject* This,WINBOOL fActivate) {
   2706     return This->lpVtbl->OnFrameWindowActivate(This,fActivate);
   2707 }
   2708 static FORCEINLINE HRESULT IOleInPlaceActiveObject_OnDocWindowActivate(IOleInPlaceActiveObject* This,WINBOOL fActivate) {
   2709     return This->lpVtbl->OnDocWindowActivate(This,fActivate);
   2710 }
   2711 static FORCEINLINE HRESULT IOleInPlaceActiveObject_ResizeBorder(IOleInPlaceActiveObject* This,LPCRECT prcBorder,IOleInPlaceUIWindow *pUIWindow,WINBOOL fFrameWindow) {
   2712     return This->lpVtbl->ResizeBorder(This,prcBorder,pUIWindow,fFrameWindow);
   2713 }
   2714 static FORCEINLINE HRESULT IOleInPlaceActiveObject_EnableModeless(IOleInPlaceActiveObject* This,WINBOOL fEnable) {
   2715     return This->lpVtbl->EnableModeless(This,fEnable);
   2716 }
   2717 #endif
   2718 #endif
   2719 
   2720 #endif
   2721 
   2722 HRESULT STDMETHODCALLTYPE IOleInPlaceActiveObject_RemoteTranslateAccelerator_Proxy(
   2723     IOleInPlaceActiveObject* This);
   2724 void __RPC_STUB IOleInPlaceActiveObject_RemoteTranslateAccelerator_Stub(
   2725     IRpcStubBuffer* This,
   2726     IRpcChannelBuffer* pRpcChannelBuffer,
   2727     PRPC_MESSAGE pRpcMessage,
   2728     DWORD* pdwStubPhase);
   2729 HRESULT STDMETHODCALLTYPE IOleInPlaceActiveObject_OnFrameWindowActivate_Proxy(
   2730     IOleInPlaceActiveObject* This,
   2731     WINBOOL fActivate);
   2732 void __RPC_STUB IOleInPlaceActiveObject_OnFrameWindowActivate_Stub(
   2733     IRpcStubBuffer* This,
   2734     IRpcChannelBuffer* pRpcChannelBuffer,
   2735     PRPC_MESSAGE pRpcMessage,
   2736     DWORD* pdwStubPhase);
   2737 HRESULT STDMETHODCALLTYPE IOleInPlaceActiveObject_OnDocWindowActivate_Proxy(
   2738     IOleInPlaceActiveObject* This,
   2739     WINBOOL fActivate);
   2740 void __RPC_STUB IOleInPlaceActiveObject_OnDocWindowActivate_Stub(
   2741     IRpcStubBuffer* This,
   2742     IRpcChannelBuffer* pRpcChannelBuffer,
   2743     PRPC_MESSAGE pRpcMessage,
   2744     DWORD* pdwStubPhase);
   2745 HRESULT STDMETHODCALLTYPE IOleInPlaceActiveObject_RemoteResizeBorder_Proxy(
   2746     IOleInPlaceActiveObject* This,
   2747     LPCRECT prcBorder,
   2748     REFIID riid,
   2749     IOleInPlaceUIWindow *pUIWindow,
   2750     WINBOOL fFrameWindow);
   2751 void __RPC_STUB IOleInPlaceActiveObject_RemoteResizeBorder_Stub(
   2752     IRpcStubBuffer* This,
   2753     IRpcChannelBuffer* pRpcChannelBuffer,
   2754     PRPC_MESSAGE pRpcMessage,
   2755     DWORD* pdwStubPhase);
   2756 HRESULT STDMETHODCALLTYPE IOleInPlaceActiveObject_EnableModeless_Proxy(
   2757     IOleInPlaceActiveObject* This,
   2758     WINBOOL fEnable);
   2759 void __RPC_STUB IOleInPlaceActiveObject_EnableModeless_Stub(
   2760     IRpcStubBuffer* This,
   2761     IRpcChannelBuffer* pRpcChannelBuffer,
   2762     PRPC_MESSAGE pRpcMessage,
   2763     DWORD* pdwStubPhase);
   2764 HRESULT CALLBACK IOleInPlaceActiveObject_TranslateAccelerator_Proxy(
   2765     IOleInPlaceActiveObject* This,
   2766     LPMSG lpmsg);
   2767 HRESULT __RPC_STUB IOleInPlaceActiveObject_TranslateAccelerator_Stub(
   2768     IOleInPlaceActiveObject* This);
   2769 HRESULT CALLBACK IOleInPlaceActiveObject_ResizeBorder_Proxy(
   2770     IOleInPlaceActiveObject* This,
   2771     LPCRECT prcBorder,
   2772     IOleInPlaceUIWindow *pUIWindow,
   2773     WINBOOL fFrameWindow);
   2774 HRESULT __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 
   2790 typedef IOleInPlaceFrame *LPOLEINPLACEFRAME;
   2791 
   2792 typedef struct tagOIFI {
   2793     UINT cb;
   2794     WINBOOL fMDIApp;
   2795     HWND hwndFrame;
   2796     HACCEL haccel;
   2797     UINT cAccelEntries;
   2798 } OLEINPLACEFRAMEINFO;
   2799 typedef struct tagOIFI *LPOLEINPLACEFRAMEINFO;
   2800 
   2801 typedef struct tagOleMenuGroupWidths {
   2802     LONG width[6];
   2803 } OLEMENUGROUPWIDTHS;
   2804 typedef struct tagOleMenuGroupWidths *LPOLEMENUGROUPWIDTHS;
   2805 
   2806 typedef HGLOBAL HOLEMENU;
   2807 
   2808 DEFINE_GUID(IID_IOleInPlaceFrame, 0x00000116, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   2809 #if defined(__cplusplus) && !defined(CINTERFACE)
   2810 MIDL_INTERFACE("00000116-0000-0000-c000-000000000046")
   2811 IOleInPlaceFrame : 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
   2840 typedef 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;
   2913 interface 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 ***/
   2940 static FORCEINLINE HRESULT IOleInPlaceFrame_QueryInterface(IOleInPlaceFrame* This,REFIID riid,void **ppvObject) {
   2941     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2942 }
   2943 static FORCEINLINE ULONG IOleInPlaceFrame_AddRef(IOleInPlaceFrame* This) {
   2944     return This->lpVtbl->AddRef(This);
   2945 }
   2946 static FORCEINLINE ULONG IOleInPlaceFrame_Release(IOleInPlaceFrame* This) {
   2947     return This->lpVtbl->Release(This);
   2948 }
   2949 /*** IOleWindow methods ***/
   2950 static FORCEINLINE HRESULT IOleInPlaceFrame_GetWindow(IOleInPlaceFrame* This,HWND *phwnd) {
   2951     return This->lpVtbl->GetWindow(This,phwnd);
   2952 }
   2953 static FORCEINLINE HRESULT IOleInPlaceFrame_ContextSensitiveHelp(IOleInPlaceFrame* This,WINBOOL fEnterMode) {
   2954     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
   2955 }
   2956 /*** IOleInPlaceUIWindow methods ***/
   2957 static FORCEINLINE HRESULT IOleInPlaceFrame_GetBorder(IOleInPlaceFrame* This,LPRECT lprectBorder) {
   2958     return This->lpVtbl->GetBorder(This,lprectBorder);
   2959 }
   2960 static FORCEINLINE HRESULT IOleInPlaceFrame_RequestBorderSpace(IOleInPlaceFrame* This,LPCBORDERWIDTHS pborderwidths) {
   2961     return This->lpVtbl->RequestBorderSpace(This,pborderwidths);
   2962 }
   2963 static FORCEINLINE HRESULT IOleInPlaceFrame_SetBorderSpace(IOleInPlaceFrame* This,LPCBORDERWIDTHS pborderwidths) {
   2964     return This->lpVtbl->SetBorderSpace(This,pborderwidths);
   2965 }
   2966 static FORCEINLINE HRESULT IOleInPlaceFrame_SetActiveObject(IOleInPlaceFrame* This,IOleInPlaceActiveObject *pActiveObject,LPCOLESTR pszObjName) {
   2967     return This->lpVtbl->SetActiveObject(This,pActiveObject,pszObjName);
   2968 }
   2969 /*** IOleInPlaceFrame methods ***/
   2970 static FORCEINLINE HRESULT IOleInPlaceFrame_InsertMenus(IOleInPlaceFrame* This,HMENU hmenuShared,LPOLEMENUGROUPWIDTHS lpMenuWidths) {
   2971     return This->lpVtbl->InsertMenus(This,hmenuShared,lpMenuWidths);
   2972 }
   2973 static FORCEINLINE HRESULT IOleInPlaceFrame_SetMenu(IOleInPlaceFrame* This,HMENU hmenuShared,HOLEMENU holemenu,HWND hwndActiveObject) {
   2974     return This->lpVtbl->SetMenu(This,hmenuShared,holemenu,hwndActiveObject);
   2975 }
   2976 static FORCEINLINE HRESULT IOleInPlaceFrame_RemoveMenus(IOleInPlaceFrame* This,HMENU hmenuShared) {
   2977     return This->lpVtbl->RemoveMenus(This,hmenuShared);
   2978 }
   2979 static FORCEINLINE HRESULT IOleInPlaceFrame_SetStatusText(IOleInPlaceFrame* This,LPCOLESTR pszStatusText) {
   2980     return This->lpVtbl->SetStatusText(This,pszStatusText);
   2981 }
   2982 static FORCEINLINE HRESULT IOleInPlaceFrame_EnableModeless(IOleInPlaceFrame* This,WINBOOL fEnable) {
   2983     return This->lpVtbl->EnableModeless(This,fEnable);
   2984 }
   2985 static 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 
   2993 HRESULT STDMETHODCALLTYPE IOleInPlaceFrame_InsertMenus_Proxy(
   2994     IOleInPlaceFrame* This,
   2995     HMENU hmenuShared,
   2996     LPOLEMENUGROUPWIDTHS lpMenuWidths);
   2997 void __RPC_STUB IOleInPlaceFrame_InsertMenus_Stub(
   2998     IRpcStubBuffer* This,
   2999     IRpcChannelBuffer* pRpcChannelBuffer,
   3000     PRPC_MESSAGE pRpcMessage,
   3001     DWORD* pdwStubPhase);
   3002 HRESULT STDMETHODCALLTYPE IOleInPlaceFrame_SetMenu_Proxy(
   3003     IOleInPlaceFrame* This,
   3004     HMENU hmenuShared,
   3005     HOLEMENU holemenu,
   3006     HWND hwndActiveObject);
   3007 void __RPC_STUB IOleInPlaceFrame_SetMenu_Stub(
   3008     IRpcStubBuffer* This,
   3009     IRpcChannelBuffer* pRpcChannelBuffer,
   3010     PRPC_MESSAGE pRpcMessage,
   3011     DWORD* pdwStubPhase);
   3012 HRESULT STDMETHODCALLTYPE IOleInPlaceFrame_RemoveMenus_Proxy(
   3013     IOleInPlaceFrame* This,
   3014     HMENU hmenuShared);
   3015 void __RPC_STUB IOleInPlaceFrame_RemoveMenus_Stub(
   3016     IRpcStubBuffer* This,
   3017     IRpcChannelBuffer* pRpcChannelBuffer,
   3018     PRPC_MESSAGE pRpcMessage,
   3019     DWORD* pdwStubPhase);
   3020 HRESULT STDMETHODCALLTYPE IOleInPlaceFrame_SetStatusText_Proxy(
   3021     IOleInPlaceFrame* This,
   3022     LPCOLESTR pszStatusText);
   3023 void __RPC_STUB IOleInPlaceFrame_SetStatusText_Stub(
   3024     IRpcStubBuffer* This,
   3025     IRpcChannelBuffer* pRpcChannelBuffer,
   3026     PRPC_MESSAGE pRpcMessage,
   3027     DWORD* pdwStubPhase);
   3028 HRESULT STDMETHODCALLTYPE IOleInPlaceFrame_EnableModeless_Proxy(
   3029     IOleInPlaceFrame* This,
   3030     WINBOOL fEnable);
   3031 void __RPC_STUB IOleInPlaceFrame_EnableModeless_Stub(
   3032     IRpcStubBuffer* This,
   3033     IRpcChannelBuffer* pRpcChannelBuffer,
   3034     PRPC_MESSAGE pRpcMessage,
   3035     DWORD* pdwStubPhase);
   3036 HRESULT STDMETHODCALLTYPE IOleInPlaceFrame_TranslateAccelerator_Proxy(
   3037     IOleInPlaceFrame* This,
   3038     LPMSG lpmsg,
   3039     WORD wID);
   3040 void __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 
   3055 typedef IOleInPlaceObject *LPOLEINPLACEOBJECT;
   3056 
   3057 DEFINE_GUID(IID_IOleInPlaceObject, 0x00000113, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   3058 #if defined(__cplusplus) && !defined(CINTERFACE)
   3059 MIDL_INTERFACE("00000113-0000-0000-c000-000000000046")
   3060 IOleInPlaceObject : 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
   3080 typedef 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;
   3121 interface 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 ***/
   3141 static FORCEINLINE HRESULT IOleInPlaceObject_QueryInterface(IOleInPlaceObject* This,REFIID riid,void **ppvObject) {
   3142     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3143 }
   3144 static FORCEINLINE ULONG IOleInPlaceObject_AddRef(IOleInPlaceObject* This) {
   3145     return This->lpVtbl->AddRef(This);
   3146 }
   3147 static FORCEINLINE ULONG IOleInPlaceObject_Release(IOleInPlaceObject* This) {
   3148     return This->lpVtbl->Release(This);
   3149 }
   3150 /*** IOleWindow methods ***/
   3151 static FORCEINLINE HRESULT IOleInPlaceObject_GetWindow(IOleInPlaceObject* This,HWND *phwnd) {
   3152     return This->lpVtbl->GetWindow(This,phwnd);
   3153 }
   3154 static FORCEINLINE HRESULT IOleInPlaceObject_ContextSensitiveHelp(IOleInPlaceObject* This,WINBOOL fEnterMode) {
   3155     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
   3156 }
   3157 /*** IOleInPlaceObject methods ***/
   3158 static FORCEINLINE HRESULT IOleInPlaceObject_InPlaceDeactivate(IOleInPlaceObject* This) {
   3159     return This->lpVtbl->InPlaceDeactivate(This);
   3160 }
   3161 static FORCEINLINE HRESULT IOleInPlaceObject_UIDeactivate(IOleInPlaceObject* This) {
   3162     return This->lpVtbl->UIDeactivate(This);
   3163 }
   3164 static FORCEINLINE HRESULT IOleInPlaceObject_SetObjectRects(IOleInPlaceObject* This,LPCRECT lprcPosRect,LPCRECT lprcClipRect) {
   3165     return This->lpVtbl->SetObjectRects(This,lprcPosRect,lprcClipRect);
   3166 }
   3167 static FORCEINLINE HRESULT IOleInPlaceObject_ReactivateAndUndo(IOleInPlaceObject* This) {
   3168     return This->lpVtbl->ReactivateAndUndo(This);
   3169 }
   3170 #endif
   3171 #endif
   3172 
   3173 #endif
   3174 
   3175 HRESULT STDMETHODCALLTYPE IOleInPlaceObject_InPlaceDeactivate_Proxy(
   3176     IOleInPlaceObject* This);
   3177 void __RPC_STUB IOleInPlaceObject_InPlaceDeactivate_Stub(
   3178     IRpcStubBuffer* This,
   3179     IRpcChannelBuffer* pRpcChannelBuffer,
   3180     PRPC_MESSAGE pRpcMessage,
   3181     DWORD* pdwStubPhase);
   3182 HRESULT STDMETHODCALLTYPE IOleInPlaceObject_UIDeactivate_Proxy(
   3183     IOleInPlaceObject* This);
   3184 void __RPC_STUB IOleInPlaceObject_UIDeactivate_Stub(
   3185     IRpcStubBuffer* This,
   3186     IRpcChannelBuffer* pRpcChannelBuffer,
   3187     PRPC_MESSAGE pRpcMessage,
   3188     DWORD* pdwStubPhase);
   3189 HRESULT STDMETHODCALLTYPE IOleInPlaceObject_SetObjectRects_Proxy(
   3190     IOleInPlaceObject* This,
   3191     LPCRECT lprcPosRect,
   3192     LPCRECT lprcClipRect);
   3193 void __RPC_STUB IOleInPlaceObject_SetObjectRects_Stub(
   3194     IRpcStubBuffer* This,
   3195     IRpcChannelBuffer* pRpcChannelBuffer,
   3196     PRPC_MESSAGE pRpcMessage,
   3197     DWORD* pdwStubPhase);
   3198 HRESULT STDMETHODCALLTYPE IOleInPlaceObject_ReactivateAndUndo_Proxy(
   3199     IOleInPlaceObject* This);
   3200 void __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 
   3215 typedef IOleInPlaceSite *LPOLEINPLACESITE;
   3216 
   3217 DEFINE_GUID(IID_IOleInPlaceSite, 0x00000119, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   3218 #if defined(__cplusplus) && !defined(CINTERFACE)
   3219 MIDL_INTERFACE("00000119-0000-0000-c000-000000000046")
   3220 IOleInPlaceSite : 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
   3261 typedef 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;
   3326 interface 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 ***/
   3352 static FORCEINLINE HRESULT IOleInPlaceSite_QueryInterface(IOleInPlaceSite* This,REFIID riid,void **ppvObject) {
   3353     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3354 }
   3355 static FORCEINLINE ULONG IOleInPlaceSite_AddRef(IOleInPlaceSite* This) {
   3356     return This->lpVtbl->AddRef(This);
   3357 }
   3358 static FORCEINLINE ULONG IOleInPlaceSite_Release(IOleInPlaceSite* This) {
   3359     return This->lpVtbl->Release(This);
   3360 }
   3361 /*** IOleWindow methods ***/
   3362 static FORCEINLINE HRESULT IOleInPlaceSite_GetWindow(IOleInPlaceSite* This,HWND *phwnd) {
   3363     return This->lpVtbl->GetWindow(This,phwnd);
   3364 }
   3365 static FORCEINLINE HRESULT IOleInPlaceSite_ContextSensitiveHelp(IOleInPlaceSite* This,WINBOOL fEnterMode) {
   3366     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
   3367 }
   3368 /*** IOleInPlaceSite methods ***/
   3369 static FORCEINLINE HRESULT IOleInPlaceSite_CanInPlaceActivate(IOleInPlaceSite* This) {
   3370     return This->lpVtbl->CanInPlaceActivate(This);
   3371 }
   3372 static FORCEINLINE HRESULT IOleInPlaceSite_OnInPlaceActivate(IOleInPlaceSite* This) {
   3373     return This->lpVtbl->OnInPlaceActivate(This);
   3374 }
   3375 static FORCEINLINE HRESULT IOleInPlaceSite_OnUIActivate(IOleInPlaceSite* This) {
   3376     return This->lpVtbl->OnUIActivate(This);
   3377 }
   3378 static 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 }
   3381 static FORCEINLINE HRESULT IOleInPlaceSite_Scroll(IOleInPlaceSite* This,SIZE scrollExtant) {
   3382     return This->lpVtbl->Scroll(This,scrollExtant);
   3383 }
   3384 static FORCEINLINE HRESULT IOleInPlaceSite_OnUIDeactivate(IOleInPlaceSite* This,WINBOOL fUndoable) {
   3385     return This->lpVtbl->OnUIDeactivate(This,fUndoable);
   3386 }
   3387 static FORCEINLINE HRESULT IOleInPlaceSite_OnInPlaceDeactivate(IOleInPlaceSite* This) {
   3388     return This->lpVtbl->OnInPlaceDeactivate(This);
   3389 }
   3390 static FORCEINLINE HRESULT IOleInPlaceSite_DiscardUndoState(IOleInPlaceSite* This) {
   3391     return This->lpVtbl->DiscardUndoState(This);
   3392 }
   3393 static FORCEINLINE HRESULT IOleInPlaceSite_DeactivateAndUndo(IOleInPlaceSite* This) {
   3394     return This->lpVtbl->DeactivateAndUndo(This);
   3395 }
   3396 static FORCEINLINE HRESULT IOleInPlaceSite_OnPosRectChange(IOleInPlaceSite* This,LPCRECT lprcPosRect) {
   3397     return This->lpVtbl->OnPosRectChange(This,lprcPosRect);
   3398 }
   3399 #endif
   3400 #endif
   3401 
   3402 #endif
   3403 
   3404 HRESULT STDMETHODCALLTYPE IOleInPlaceSite_CanInPlaceActivate_Proxy(
   3405     IOleInPlaceSite* This);
   3406 void __RPC_STUB IOleInPlaceSite_CanInPlaceActivate_Stub(
   3407     IRpcStubBuffer* This,
   3408     IRpcChannelBuffer* pRpcChannelBuffer,
   3409     PRPC_MESSAGE pRpcMessage,
   3410     DWORD* pdwStubPhase);
   3411 HRESULT STDMETHODCALLTYPE IOleInPlaceSite_OnInPlaceActivate_Proxy(
   3412     IOleInPlaceSite* This);
   3413 void __RPC_STUB IOleInPlaceSite_OnInPlaceActivate_Stub(
   3414     IRpcStubBuffer* This,
   3415     IRpcChannelBuffer* pRpcChannelBuffer,
   3416     PRPC_MESSAGE pRpcMessage,
   3417     DWORD* pdwStubPhase);
   3418 HRESULT STDMETHODCALLTYPE IOleInPlaceSite_OnUIActivate_Proxy(
   3419     IOleInPlaceSite* This);
   3420 void __RPC_STUB IOleInPlaceSite_OnUIActivate_Stub(
   3421     IRpcStubBuffer* This,
   3422     IRpcChannelBuffer* pRpcChannelBuffer,
   3423     PRPC_MESSAGE pRpcMessage,
   3424     DWORD* pdwStubPhase);
   3425 HRESULT STDMETHODCALLTYPE IOleInPlaceSite_GetWindowContext_Proxy(
   3426     IOleInPlaceSite* This,
   3427     IOleInPlaceFrame **ppFrame,
   3428     IOleInPlaceUIWindow **ppDoc,
   3429     LPRECT lprcPosRect,
   3430     LPRECT lprcClipRect,
   3431     LPOLEINPLACEFRAMEINFO lpFrameInfo);
   3432 void __RPC_STUB IOleInPlaceSite_GetWindowContext_Stub(
   3433     IRpcStubBuffer* This,
   3434     IRpcChannelBuffer* pRpcChannelBuffer,
   3435     PRPC_MESSAGE pRpcMessage,
   3436     DWORD* pdwStubPhase);
   3437 HRESULT STDMETHODCALLTYPE IOleInPlaceSite_Scroll_Proxy(
   3438     IOleInPlaceSite* This,
   3439     SIZE scrollExtant);
   3440 void __RPC_STUB IOleInPlaceSite_Scroll_Stub(
   3441     IRpcStubBuffer* This,
   3442     IRpcChannelBuffer* pRpcChannelBuffer,
   3443     PRPC_MESSAGE pRpcMessage,
   3444     DWORD* pdwStubPhase);
   3445 HRESULT STDMETHODCALLTYPE IOleInPlaceSite_OnUIDeactivate_Proxy(
   3446     IOleInPlaceSite* This,
   3447     WINBOOL fUndoable);
   3448 void __RPC_STUB IOleInPlaceSite_OnUIDeactivate_Stub(
   3449     IRpcStubBuffer* This,
   3450     IRpcChannelBuffer* pRpcChannelBuffer,
   3451     PRPC_MESSAGE pRpcMessage,
   3452     DWORD* pdwStubPhase);
   3453 HRESULT STDMETHODCALLTYPE IOleInPlaceSite_OnInPlaceDeactivate_Proxy(
   3454     IOleInPlaceSite* This);
   3455 void __RPC_STUB IOleInPlaceSite_OnInPlaceDeactivate_Stub(
   3456     IRpcStubBuffer* This,
   3457     IRpcChannelBuffer* pRpcChannelBuffer,
   3458     PRPC_MESSAGE pRpcMessage,
   3459     DWORD* pdwStubPhase);
   3460 HRESULT STDMETHODCALLTYPE IOleInPlaceSite_DiscardUndoState_Proxy(
   3461     IOleInPlaceSite* This);
   3462 void __RPC_STUB IOleInPlaceSite_DiscardUndoState_Stub(
   3463     IRpcStubBuffer* This,
   3464     IRpcChannelBuffer* pRpcChannelBuffer,
   3465     PRPC_MESSAGE pRpcMessage,
   3466     DWORD* pdwStubPhase);
   3467 HRESULT STDMETHODCALLTYPE IOleInPlaceSite_DeactivateAndUndo_Proxy(
   3468     IOleInPlaceSite* This);
   3469 void __RPC_STUB IOleInPlaceSite_DeactivateAndUndo_Stub(
   3470     IRpcStubBuffer* This,
   3471     IRpcChannelBuffer* pRpcChannelBuffer,
   3472     PRPC_MESSAGE pRpcMessage,
   3473     DWORD* pdwStubPhase);
   3474 HRESULT STDMETHODCALLTYPE IOleInPlaceSite_OnPosRectChange_Proxy(
   3475     IOleInPlaceSite* This,
   3476     LPCRECT lprcPosRect);
   3477 void __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 
   3492 DEFINE_GUID(IID_IContinue, 0x0000012a, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   3493 #if defined(__cplusplus) && !defined(CINTERFACE)
   3494 MIDL_INTERFACE("0000012a-0000-0000-c000-000000000046")
   3495 IContinue : 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
   3505 typedef 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;
   3526 interface 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 ***/
   3540 static FORCEINLINE HRESULT IContinue_QueryInterface(IContinue* This,REFIID riid,void **ppvObject) {
   3541     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3542 }
   3543 static FORCEINLINE ULONG IContinue_AddRef(IContinue* This) {
   3544     return This->lpVtbl->AddRef(This);
   3545 }
   3546 static FORCEINLINE ULONG IContinue_Release(IContinue* This) {
   3547     return This->lpVtbl->Release(This);
   3548 }
   3549 /*** IContinue methods ***/
   3550 static FORCEINLINE HRESULT IContinue_FContinue(IContinue* This) {
   3551     return This->lpVtbl->FContinue(This);
   3552 }
   3553 #endif
   3554 #endif
   3555 
   3556 #endif
   3557 
   3558 HRESULT STDMETHODCALLTYPE IContinue_FContinue_Proxy(
   3559     IContinue* This);
   3560 void __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 
   3575 typedef IViewObject *LPVIEWOBJECT;
   3576 
   3577 DEFINE_GUID(IID_IViewObject, 0x0000010d, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   3578 #if defined(__cplusplus) && !defined(CINTERFACE)
   3579 MIDL_INTERFACE("0000010d-0000-0000-c000-000000000046")
   3580 IViewObject : 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
   3626 typedef 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;
   3689 interface 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 ***/
   3708 static FORCEINLINE HRESULT IViewObject_QueryInterface(IViewObject* This,REFIID riid,void **ppvObject) {
   3709     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3710 }
   3711 static FORCEINLINE ULONG IViewObject_AddRef(IViewObject* This) {
   3712     return This->lpVtbl->AddRef(This);
   3713 }
   3714 static FORCEINLINE ULONG IViewObject_Release(IViewObject* This) {
   3715     return This->lpVtbl->Release(This);
   3716 }
   3717 /*** IViewObject methods ***/
   3718 static 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 }
   3721 static 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 }
   3724 static 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 }
   3727 static FORCEINLINE HRESULT IViewObject_Unfreeze(IViewObject* This,DWORD dwFreeze) {
   3728     return This->lpVtbl->Unfreeze(This,dwFreeze);
   3729 }
   3730 static FORCEINLINE HRESULT IViewObject_SetAdvise(IViewObject* This,DWORD aspects,DWORD advf,IAdviseSink *pAdvSink) {
   3731     return This->lpVtbl->SetAdvise(This,aspects,advf,pAdvSink);
   3732 }
   3733 static 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 
   3741 HRESULT 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);
   3752 void __RPC_STUB IViewObject_RemoteDraw_Stub(
   3753     IRpcStubBuffer* This,
   3754     IRpcChannelBuffer* pRpcChannelBuffer,
   3755     PRPC_MESSAGE pRpcMessage,
   3756     DWORD* pdwStubPhase);
   3757 HRESULT 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);
   3765 void __RPC_STUB IViewObject_RemoteGetColorSet_Stub(
   3766     IRpcStubBuffer* This,
   3767     IRpcChannelBuffer* pRpcChannelBuffer,
   3768     PRPC_MESSAGE pRpcMessage,
   3769     DWORD* pdwStubPhase);
   3770 HRESULT STDMETHODCALLTYPE IViewObject_RemoteFreeze_Proxy(
   3771     IViewObject* This,
   3772     DWORD dwDrawAspect,
   3773     LONG lindex,
   3774     ULONG_PTR pvAspect,
   3775     DWORD *pdwFreeze);
   3776 void __RPC_STUB IViewObject_RemoteFreeze_Stub(
   3777     IRpcStubBuffer* This,
   3778     IRpcChannelBuffer* pRpcChannelBuffer,
   3779     PRPC_MESSAGE pRpcMessage,
   3780     DWORD* pdwStubPhase);
   3781 HRESULT STDMETHODCALLTYPE IViewObject_Unfreeze_Proxy(
   3782     IViewObject* This,
   3783     DWORD dwFreeze);
   3784 void __RPC_STUB IViewObject_Unfreeze_Stub(
   3785     IRpcStubBuffer* This,
   3786     IRpcChannelBuffer* pRpcChannelBuffer,
   3787     PRPC_MESSAGE pRpcMessage,
   3788     DWORD* pdwStubPhase);
   3789 HRESULT STDMETHODCALLTYPE IViewObject_SetAdvise_Proxy(
   3790     IViewObject* This,
   3791     DWORD aspects,
   3792     DWORD advf,
   3793     IAdviseSink *pAdvSink);
   3794 void __RPC_STUB IViewObject_SetAdvise_Stub(
   3795     IRpcStubBuffer* This,
   3796     IRpcChannelBuffer* pRpcChannelBuffer,
   3797     PRPC_MESSAGE pRpcMessage,
   3798     DWORD* pdwStubPhase);
   3799 HRESULT STDMETHODCALLTYPE IViewObject_RemoteGetAdvise_Proxy(
   3800     IViewObject* This,
   3801     DWORD *pAspects,
   3802     DWORD *pAdvf,
   3803     IAdviseSink **ppAdvSink);
   3804 void __RPC_STUB IViewObject_RemoteGetAdvise_Stub(
   3805     IRpcStubBuffer* This,
   3806     IRpcChannelBuffer* pRpcChannelBuffer,
   3807     PRPC_MESSAGE pRpcMessage,
   3808     DWORD* pdwStubPhase);
   3809 HRESULT 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);
   3821 HRESULT __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);
   3832 HRESULT 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);
   3840 HRESULT __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);
   3848 HRESULT CALLBACK IViewObject_Freeze_Proxy(
   3849     IViewObject* This,
   3850     DWORD dwDrawAspect,
   3851     LONG lindex,
   3852     void *pvAspect,
   3853     DWORD *pdwFreeze);
   3854 HRESULT __RPC_STUB IViewObject_Freeze_Stub(
   3855     IViewObject* This,
   3856     DWORD dwDrawAspect,
   3857     LONG lindex,
   3858     ULONG_PTR pvAspect,
   3859     DWORD *pdwFreeze);
   3860 HRESULT CALLBACK IViewObject_GetAdvise_Proxy(
   3861     IViewObject* This,
   3862     DWORD *pAspects,
   3863     DWORD *pAdvf,
   3864     IAdviseSink **ppAdvSink);
   3865 HRESULT __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 
   3880 typedef IViewObject2 *LPVIEWOBJECT2;
   3881 
   3882 DEFINE_GUID(IID_IViewObject2, 0x00000127, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   3883 #if defined(__cplusplus) && !defined(CINTERFACE)
   3884 MIDL_INTERFACE("00000127-0000-0000-c000-000000000046")
   3885 IViewObject2 : 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
   3898 typedef 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;
   3969 interface 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 ***/
   3990 static FORCEINLINE HRESULT IViewObject2_QueryInterface(IViewObject2* This,REFIID riid,void **ppvObject) {
   3991     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3992 }
   3993 static FORCEINLINE ULONG IViewObject2_AddRef(IViewObject2* This) {
   3994     return This->lpVtbl->AddRef(This);
   3995 }
   3996 static FORCEINLINE ULONG IViewObject2_Release(IViewObject2* This) {
   3997     return This->lpVtbl->Release(This);
   3998 }
   3999 /*** IViewObject methods ***/
   4000 static 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 }
   4003 static 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 }
   4006 static 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 }
   4009 static FORCEINLINE HRESULT IViewObject2_Unfreeze(IViewObject2* This,DWORD dwFreeze) {
   4010     return This->lpVtbl->Unfreeze(This,dwFreeze);
   4011 }
   4012 static FORCEINLINE HRESULT IViewObject2_SetAdvise(IViewObject2* This,DWORD aspects,DWORD advf,IAdviseSink *pAdvSink) {
   4013     return This->lpVtbl->SetAdvise(This,aspects,advf,pAdvSink);
   4014 }
   4015 static 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 ***/
   4019 static 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 
   4027 HRESULT STDMETHODCALLTYPE IViewObject2_GetExtent_Proxy(
   4028     IViewObject2* This,
   4029     DWORD dwDrawAspect,
   4030     LONG lindex,
   4031     DVTARGETDEVICE *ptd,
   4032     LPSIZEL lpsizel);
   4033 void __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 
   4048 typedef IDropSource *LPDROPSOURCE;
   4049 
   4050 DEFINE_GUID(IID_IDropSource, 0x00000121, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   4051 #if defined(__cplusplus) && !defined(CINTERFACE)
   4052 MIDL_INTERFACE("00000121-0000-0000-c000-000000000046")
   4053 IDropSource : 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
   4067 typedef 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;
   4094 interface 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 ***/
   4109 static FORCEINLINE HRESULT IDropSource_QueryInterface(IDropSource* This,REFIID riid,void **ppvObject) {
   4110     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4111 }
   4112 static FORCEINLINE ULONG IDropSource_AddRef(IDropSource* This) {
   4113     return This->lpVtbl->AddRef(This);
   4114 }
   4115 static FORCEINLINE ULONG IDropSource_Release(IDropSource* This) {
   4116     return This->lpVtbl->Release(This);
   4117 }
   4118 /*** IDropSource methods ***/
   4119 static FORCEINLINE HRESULT IDropSource_QueryContinueDrag(IDropSource* This,WINBOOL fEscapePressed,DWORD grfKeyState) {
   4120     return This->lpVtbl->QueryContinueDrag(This,fEscapePressed,grfKeyState);
   4121 }
   4122 static FORCEINLINE HRESULT IDropSource_GiveFeedback(IDropSource* This,DWORD dwEffect) {
   4123     return This->lpVtbl->GiveFeedback(This,dwEffect);
   4124 }
   4125 #endif
   4126 #endif
   4127 
   4128 #endif
   4129 
   4130 HRESULT STDMETHODCALLTYPE IDropSource_QueryContinueDrag_Proxy(
   4131     IDropSource* This,
   4132     WINBOOL fEscapePressed,
   4133     DWORD grfKeyState);
   4134 void __RPC_STUB IDropSource_QueryContinueDrag_Stub(
   4135     IRpcStubBuffer* This,
   4136     IRpcChannelBuffer* pRpcChannelBuffer,
   4137     PRPC_MESSAGE pRpcMessage,
   4138     DWORD* pdwStubPhase);
   4139 HRESULT STDMETHODCALLTYPE IDropSource_GiveFeedback_Proxy(
   4140     IDropSource* This,
   4141     DWORD dwEffect);
   4142 void __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 
   4157 typedef 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 
   4187 DEFINE_GUID(IID_IDropTarget, 0x00000122, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   4188 #if defined(__cplusplus) && !defined(CINTERFACE)
   4189 MIDL_INTERFACE("00000122-0000-0000-c000-000000000046")
   4190 IDropTarget : 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
   4217 typedef 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;
   4258 interface 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 ***/
   4275 static FORCEINLINE HRESULT IDropTarget_QueryInterface(IDropTarget* This,REFIID riid,void **ppvObject) {
   4276     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4277 }
   4278 static FORCEINLINE ULONG IDropTarget_AddRef(IDropTarget* This) {
   4279     return This->lpVtbl->AddRef(This);
   4280 }
   4281 static FORCEINLINE ULONG IDropTarget_Release(IDropTarget* This) {
   4282     return This->lpVtbl->Release(This);
   4283 }
   4284 /*** IDropTarget methods ***/
   4285 static 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 }
   4288 static FORCEINLINE HRESULT IDropTarget_DragOver(IDropTarget* This,DWORD grfKeyState,POINTL pt,DWORD *pdwEffect) {
   4289     return This->lpVtbl->DragOver(This,grfKeyState,pt,pdwEffect);
   4290 }
   4291 static FORCEINLINE HRESULT IDropTarget_DragLeave(IDropTarget* This) {
   4292     return This->lpVtbl->DragLeave(This);
   4293 }
   4294 static 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 
   4302 HRESULT STDMETHODCALLTYPE IDropTarget_DragEnter_Proxy(
   4303     IDropTarget* This,
   4304     IDataObject *pDataObj,
   4305     DWORD grfKeyState,
   4306     POINTL pt,
   4307     DWORD *pdwEffect);
   4308 void __RPC_STUB IDropTarget_DragEnter_Stub(
   4309     IRpcStubBuffer* This,
   4310     IRpcChannelBuffer* pRpcChannelBuffer,
   4311     PRPC_MESSAGE pRpcMessage,
   4312     DWORD* pdwStubPhase);
   4313 HRESULT STDMETHODCALLTYPE IDropTarget_DragOver_Proxy(
   4314     IDropTarget* This,
   4315     DWORD grfKeyState,
   4316     POINTL pt,
   4317     DWORD *pdwEffect);
   4318 void __RPC_STUB IDropTarget_DragOver_Stub(
   4319     IRpcStubBuffer* This,
   4320     IRpcChannelBuffer* pRpcChannelBuffer,
   4321     PRPC_MESSAGE pRpcMessage,
   4322     DWORD* pdwStubPhase);
   4323 HRESULT STDMETHODCALLTYPE IDropTarget_DragLeave_Proxy(
   4324     IDropTarget* This);
   4325 void __RPC_STUB IDropTarget_DragLeave_Stub(
   4326     IRpcStubBuffer* This,
   4327     IRpcChannelBuffer* pRpcChannelBuffer,
   4328     PRPC_MESSAGE pRpcMessage,
   4329     DWORD* pdwStubPhase);
   4330 HRESULT STDMETHODCALLTYPE IDropTarget_Drop_Proxy(
   4331     IDropTarget* This,
   4332     IDataObject *pDataObj,
   4333     DWORD grfKeyState,
   4334     POINTL pt,
   4335     DWORD *pdwEffect);
   4336 void __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 
   4351 DEFINE_GUID(IID_IDropSourceNotify, 0x0000012b, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   4352 #if defined(__cplusplus) && !defined(CINTERFACE)
   4353 MIDL_INTERFACE("0000012b-0000-0000-c000-000000000046")
   4354 IDropSourceNotify : 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
   4367 typedef 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;
   4392 interface 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 ***/
   4407 static FORCEINLINE HRESULT IDropSourceNotify_QueryInterface(IDropSourceNotify* This,REFIID riid,void **ppvObject) {
   4408     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4409 }
   4410 static FORCEINLINE ULONG IDropSourceNotify_AddRef(IDropSourceNotify* This) {
   4411     return This->lpVtbl->AddRef(This);
   4412 }
   4413 static FORCEINLINE ULONG IDropSourceNotify_Release(IDropSourceNotify* This) {
   4414     return This->lpVtbl->Release(This);
   4415 }
   4416 /*** IDropSourceNotify methods ***/
   4417 static FORCEINLINE HRESULT IDropSourceNotify_DragEnterTarget(IDropSourceNotify* This,HWND hwndTarget) {
   4418     return This->lpVtbl->DragEnterTarget(This,hwndTarget);
   4419 }
   4420 static FORCEINLINE HRESULT IDropSourceNotify_DragLeaveTarget(IDropSourceNotify* This) {
   4421     return This->lpVtbl->DragLeaveTarget(This);
   4422 }
   4423 #endif
   4424 #endif
   4425 
   4426 #endif
   4427 
   4428 HRESULT STDMETHODCALLTYPE IDropSourceNotify_DragEnterTarget_Proxy(
   4429     IDropSourceNotify* This,
   4430     HWND hwndTarget);
   4431 void __RPC_STUB IDropSourceNotify_DragEnterTarget_Stub(
   4432     IRpcStubBuffer* This,
   4433     IRpcChannelBuffer* pRpcChannelBuffer,
   4434     PRPC_MESSAGE pRpcMessage,
   4435     DWORD* pdwStubPhase);
   4436 HRESULT STDMETHODCALLTYPE IDropSourceNotify_DragLeaveTarget_Proxy(
   4437     IDropSourceNotify* This);
   4438 void __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 
   4455 typedef IEnumOLEVERB *LPENUMOLEVERB;
   4456 
   4457 typedef struct tagOLEVERB {
   4458     LONG lVerb;
   4459     LPOLESTR lpszVerbName;
   4460     DWORD fuFlags;
   4461     DWORD grfAttribs;
   4462 } OLEVERB;
   4463 typedef struct tagOLEVERB *LPOLEVERB;
   4464 
   4465 typedef enum tagOLEVERBATTRIB {
   4466     OLEVERBATTRIB_NEVERDIRTIES = 1,
   4467     OLEVERBATTRIB_ONCONTAINERMENU = 2
   4468 } OLEVERBATTRIB;
   4469 
   4470 DEFINE_GUID(IID_IEnumOLEVERB, 0x00000104, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   4471 #if defined(__cplusplus) && !defined(CINTERFACE)
   4472 MIDL_INTERFACE("00000104-0000-0000-c000-000000000046")
   4473 IEnumOLEVERB : 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
   4494 typedef 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;
   4529 interface 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 ***/
   4546 static FORCEINLINE HRESULT IEnumOLEVERB_QueryInterface(IEnumOLEVERB* This,REFIID riid,void **ppvObject) {
   4547     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4548 }
   4549 static FORCEINLINE ULONG IEnumOLEVERB_AddRef(IEnumOLEVERB* This) {
   4550     return This->lpVtbl->AddRef(This);
   4551 }
   4552 static FORCEINLINE ULONG IEnumOLEVERB_Release(IEnumOLEVERB* This) {
   4553     return This->lpVtbl->Release(This);
   4554 }
   4555 /*** IEnumOLEVERB methods ***/
   4556 static FORCEINLINE HRESULT IEnumOLEVERB_Next(IEnumOLEVERB* This,ULONG celt,LPOLEVERB rgelt,ULONG *pceltFetched) {
   4557     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
   4558 }
   4559 static FORCEINLINE HRESULT IEnumOLEVERB_Skip(IEnumOLEVERB* This,ULONG celt) {
   4560     return This->lpVtbl->Skip(This,celt);
   4561 }
   4562 static FORCEINLINE HRESULT IEnumOLEVERB_Reset(IEnumOLEVERB* This) {
   4563     return This->lpVtbl->Reset(This);
   4564 }
   4565 static FORCEINLINE HRESULT IEnumOLEVERB_Clone(IEnumOLEVERB* This,IEnumOLEVERB **ppenum) {
   4566     return This->lpVtbl->Clone(This,ppenum);
   4567 }
   4568 #endif
   4569 #endif
   4570 
   4571 #endif
   4572 
   4573 HRESULT STDMETHODCALLTYPE IEnumOLEVERB_RemoteNext_Proxy(
   4574     IEnumOLEVERB* This,
   4575     ULONG celt,
   4576     LPOLEVERB rgelt,
   4577     ULONG *pceltFetched);
   4578 void __RPC_STUB IEnumOLEVERB_RemoteNext_Stub(
   4579     IRpcStubBuffer* This,
   4580     IRpcChannelBuffer* pRpcChannelBuffer,
   4581     PRPC_MESSAGE pRpcMessage,
   4582     DWORD* pdwStubPhase);
   4583 HRESULT STDMETHODCALLTYPE IEnumOLEVERB_Skip_Proxy(
   4584     IEnumOLEVERB* This,
   4585     ULONG celt);
   4586 void __RPC_STUB IEnumOLEVERB_Skip_Stub(
   4587     IRpcStubBuffer* This,
   4588     IRpcChannelBuffer* pRpcChannelBuffer,
   4589     PRPC_MESSAGE pRpcMessage,
   4590     DWORD* pdwStubPhase);
   4591 HRESULT STDMETHODCALLTYPE IEnumOLEVERB_Reset_Proxy(
   4592     IEnumOLEVERB* This);
   4593 void __RPC_STUB IEnumOLEVERB_Reset_Stub(
   4594     IRpcStubBuffer* This,
   4595     IRpcChannelBuffer* pRpcChannelBuffer,
   4596     PRPC_MESSAGE pRpcMessage,
   4597     DWORD* pdwStubPhase);
   4598 HRESULT STDMETHODCALLTYPE IEnumOLEVERB_Clone_Proxy(
   4599     IEnumOLEVERB* This,
   4600     IEnumOLEVERB **ppenum);
   4601 void __RPC_STUB IEnumOLEVERB_Clone_Stub(
   4602     IRpcStubBuffer* This,
   4603     IRpcChannelBuffer* pRpcChannelBuffer,
   4604     PRPC_MESSAGE pRpcMessage,
   4605     DWORD* pdwStubPhase);
   4606 HRESULT CALLBACK IEnumOLEVERB_Next_Proxy(
   4607     IEnumOLEVERB* This,
   4608     ULONG celt,
   4609     LPOLEVERB rgelt,
   4610     ULONG *pceltFetched);
   4611 HRESULT __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 
   4622 ULONG           __RPC_USER CLIPFORMAT_UserSize     (ULONG *, ULONG, CLIPFORMAT *);
   4623 unsigned char * __RPC_USER CLIPFORMAT_UserMarshal  (ULONG *, unsigned char *, CLIPFORMAT *);
   4624 unsigned char * __RPC_USER CLIPFORMAT_UserUnmarshal(ULONG *, unsigned char *, CLIPFORMAT *);
   4625 void            __RPC_USER CLIPFORMAT_UserFree     (ULONG *, CLIPFORMAT *);
   4626 ULONG           __RPC_USER STGMEDIUM_UserSize     (ULONG *, ULONG, STGMEDIUM *);
   4627 unsigned char * __RPC_USER STGMEDIUM_UserMarshal  (ULONG *, unsigned char *, STGMEDIUM *);
   4628 unsigned char * __RPC_USER STGMEDIUM_UserUnmarshal(ULONG *, unsigned char *, STGMEDIUM *);
   4629 void            __RPC_USER STGMEDIUM_UserFree     (ULONG *, STGMEDIUM *);
   4630 ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
   4631 unsigned char * __RPC_USER HWND_UserMarshal  (ULONG *, unsigned char *, HWND *);
   4632 unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
   4633 void            __RPC_USER HWND_UserFree     (ULONG *, HWND *);
   4634 ULONG           __RPC_USER HMENU_UserSize     (ULONG *, ULONG, HMENU *);
   4635 unsigned char * __RPC_USER HMENU_UserMarshal  (ULONG *, unsigned char *, HMENU *);
   4636 unsigned char * __RPC_USER HMENU_UserUnmarshal(ULONG *, unsigned char *, HMENU *);
   4637 void            __RPC_USER HMENU_UserFree     (ULONG *, HMENU *);
   4638 ULONG           __RPC_USER HGLOBAL_UserSize     (ULONG *, ULONG, HGLOBAL *);
   4639 unsigned char * __RPC_USER HGLOBAL_UserMarshal  (ULONG *, unsigned char *, HGLOBAL *);
   4640 unsigned char * __RPC_USER HGLOBAL_UserUnmarshal(ULONG *, unsigned char *, HGLOBAL *);
   4641 void            __RPC_USER HGLOBAL_UserFree     (ULONG *, HGLOBAL *);
   4642 ULONG           __RPC_USER HACCEL_UserSize     (ULONG *, ULONG, HACCEL *);
   4643 unsigned char * __RPC_USER HACCEL_UserMarshal  (ULONG *, unsigned char *, HACCEL *);
   4644 unsigned char * __RPC_USER HACCEL_UserUnmarshal(ULONG *, unsigned char *, HACCEL *);
   4645 void            __RPC_USER HACCEL_UserFree     (ULONG *, HACCEL *);
   4646 ULONG           __RPC_USER HDC_UserSize     (ULONG *, ULONG, HDC *);
   4647 unsigned char * __RPC_USER HDC_UserMarshal  (ULONG *, unsigned char *, HDC *);
   4648 unsigned char * __RPC_USER HDC_UserUnmarshal(ULONG *, unsigned char *, HDC *);
   4649 void            __RPC_USER HDC_UserFree     (ULONG *, HDC *);
   4650 
   4651 /* End additional prototypes */
   4652 
   4653 #ifdef __cplusplus
   4654 }
   4655 #endif
   4656 
   4657 #endif /* __oleidl_h__ */
   4658