zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

thumbcache.h (23513B) - Raw


      1 /*** Autogenerated by WIDL 10.4 from include/thumbcache.idl - Do not edit ***/
      2 
      3 #ifdef _WIN32
      4 #ifndef __REQUIRED_RPCNDR_H_VERSION__
      5 #define __REQUIRED_RPCNDR_H_VERSION__ 475
      6 #endif
      7 #include <rpc.h>
      8 #include <rpcndr.h>
      9 #endif
     10 
     11 #ifndef COM_NO_WINDOWS_H
     12 #include <windows.h>
     13 #include <ole2.h>
     14 #endif
     15 
     16 #ifndef __thumbcache_h__
     17 #define __thumbcache_h__
     18 
     19 /* Forward declarations */
     20 
     21 #ifndef __ISharedBitmap_FWD_DEFINED__
     22 #define __ISharedBitmap_FWD_DEFINED__
     23 typedef interface ISharedBitmap ISharedBitmap;
     24 #ifdef __cplusplus
     25 interface ISharedBitmap;
     26 #endif /* __cplusplus */
     27 #endif
     28 
     29 #ifndef __IThumbnailCache_FWD_DEFINED__
     30 #define __IThumbnailCache_FWD_DEFINED__
     31 typedef interface IThumbnailCache IThumbnailCache;
     32 #ifdef __cplusplus
     33 interface IThumbnailCache;
     34 #endif /* __cplusplus */
     35 #endif
     36 
     37 #ifndef __IThumbnailProvider_FWD_DEFINED__
     38 #define __IThumbnailProvider_FWD_DEFINED__
     39 typedef interface IThumbnailProvider IThumbnailProvider;
     40 #ifdef __cplusplus
     41 interface IThumbnailProvider;
     42 #endif /* __cplusplus */
     43 #endif
     44 
     45 #ifndef __IThumbnailSettings_FWD_DEFINED__
     46 #define __IThumbnailSettings_FWD_DEFINED__
     47 typedef interface IThumbnailSettings IThumbnailSettings;
     48 #ifdef __cplusplus
     49 interface IThumbnailSettings;
     50 #endif /* __cplusplus */
     51 #endif
     52 
     53 #ifndef __IThumbnailCachePrimer_FWD_DEFINED__
     54 #define __IThumbnailCachePrimer_FWD_DEFINED__
     55 typedef interface IThumbnailCachePrimer IThumbnailCachePrimer;
     56 #ifdef __cplusplus
     57 interface IThumbnailCachePrimer;
     58 #endif /* __cplusplus */
     59 #endif
     60 
     61 #ifndef __LocalThumbnailCache_FWD_DEFINED__
     62 #define __LocalThumbnailCache_FWD_DEFINED__
     63 #ifdef __cplusplus
     64 typedef class LocalThumbnailCache LocalThumbnailCache;
     65 #else
     66 typedef struct LocalThumbnailCache LocalThumbnailCache;
     67 #endif /* defined __cplusplus */
     68 #endif /* defined __LocalThumbnailCache_FWD_DEFINED__ */
     69 
     70 #ifndef __SharedBitmap_FWD_DEFINED__
     71 #define __SharedBitmap_FWD_DEFINED__
     72 #ifdef __cplusplus
     73 typedef class SharedBitmap SharedBitmap;
     74 #else
     75 typedef struct SharedBitmap SharedBitmap;
     76 #endif /* defined __cplusplus */
     77 #endif /* defined __SharedBitmap_FWD_DEFINED__ */
     78 
     79 /* Headers for imported files */
     80 
     81 #include <oaidl.h>
     82 #include <shtypes.h>
     83 #include <shobjidl.h>
     84 
     85 #ifdef __cplusplus
     86 extern "C" {
     87 #endif
     88 
     89 typedef enum WTS_FLAGS {
     90     WTS_NONE = 0x0,
     91     WTS_EXTRACT = 0x0,
     92     WTS_INCACHEONLY = 0x1,
     93     WTS_FASTEXTRACT = 0x2,
     94     WTS_FORCEEXTRACTION = 0x4,
     95     WTS_SLOWRECLAIM = 0x8,
     96     WTS_EXTRACTDONOTCACHE = 0x20,
     97     WTS_SCALETOREQUESTEDSIZE = 0x40,
     98     WTS_SKIPFASTEXTRACT = 0x80,
     99     WTS_EXTRACTINPROC = 0x100,
    100     WTS_CROPTOSQUARE = 0x200,
    101     WTS_INSTANCESURROGATE = 0x400,
    102     WTS_REQUIRESURROGATE = 0x800,
    103     WTS_APPSTYLE = 0x2000,
    104     WTS_WIDETHUMBNAILS = 0x4000,
    105     WTS_IDEALCACHESIZEONLY = 0x8000,
    106     WTS_SCALEUP = 0x10000
    107 } WTS_FLAGS;
    108 DEFINE_ENUM_FLAG_OPERATORS(WTS_FLAGS)
    109 typedef enum WTS_CACHEFLAGS {
    110     WTS_DEFAULT = 0x0,
    111     WTS_LOWQUALITY = 0x1,
    112     WTS_CACHED = 0x2
    113 } WTS_CACHEFLAGS;
    114 DEFINE_ENUM_FLAG_OPERATORS(WTS_CACHEFLAGS)
    115 typedef enum WTS_CONTEXTFLAGS {
    116     WTSCF_DEFAULT = 0x0,
    117     WTSCF_APPSTYLE = 0x1,
    118     WTSCF_SQUARE = 0x2,
    119     WTSCF_WIDE = 0x4,
    120     WTSCF_FAST = 0x8
    121 } WTS_CONTEXTFLAGS;
    122 DEFINE_ENUM_FLAG_OPERATORS(WTS_CONTEXTFLAGS)
    123 typedef enum WTS_ALPHATYPE {
    124     WTSAT_UNKNOWN = 0,
    125     WTSAT_RGB = 1,
    126     WTSAT_ARGB = 2
    127 } WTS_ALPHATYPE;
    128 typedef struct WTS_THUMBNAILID {
    129     BYTE rgbKey[16];
    130 } WTS_THUMBNAILID;
    131 #define WTS_E_FAILEDEXTRACTION MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xb200)
    132 #define WTS_E_EXTRACTIONTIMEDOUT MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xb201)
    133 #define WTS_E_SURROGATEUNAVAILABLE MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xb202)
    134 #define WTS_E_FASTEXTRACTIONNOTSUPPORTED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xb203)
    135 #define WTS_E_DATAFILEUNAVAILABLE MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xb204)
    136 #define WTS_E_EXTRACTIONPENDING MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xb205)
    137 #define WTS_E_EXTRACTIONBLOCKED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xb206)
    138 /*****************************************************************************
    139  * ISharedBitmap interface
    140  */
    141 #ifndef __ISharedBitmap_INTERFACE_DEFINED__
    142 #define __ISharedBitmap_INTERFACE_DEFINED__
    143 
    144 DEFINE_GUID(IID_ISharedBitmap, 0x091162a4, 0xbc96, 0x411f, 0xaa,0xe8, 0xc5,0x12,0x2c,0xd0,0x33,0x63);
    145 #if defined(__cplusplus) && !defined(CINTERFACE)
    146 MIDL_INTERFACE("091162a4-bc96-411f-aae8-c5122cd03363")
    147 ISharedBitmap : public IUnknown
    148 {
    149     virtual HRESULT STDMETHODCALLTYPE GetSharedBitmap(
    150         HBITMAP *phbm) = 0;
    151 
    152     virtual HRESULT STDMETHODCALLTYPE GetSize(
    153         SIZE *pSize) = 0;
    154 
    155     virtual HRESULT STDMETHODCALLTYPE GetFormat(
    156         WTS_ALPHATYPE *pat) = 0;
    157 
    158     virtual HRESULT STDMETHODCALLTYPE InitializeBitmap(
    159         HBITMAP hbm,
    160         WTS_ALPHATYPE wtsAT) = 0;
    161 
    162     virtual HRESULT STDMETHODCALLTYPE Detach(
    163         HBITMAP *phbm) = 0;
    164 
    165 };
    166 #ifdef __CRT_UUID_DECL
    167 __CRT_UUID_DECL(ISharedBitmap, 0x091162a4, 0xbc96, 0x411f, 0xaa,0xe8, 0xc5,0x12,0x2c,0xd0,0x33,0x63)
    168 #endif
    169 #else
    170 typedef struct ISharedBitmapVtbl {
    171     BEGIN_INTERFACE
    172 
    173     /*** IUnknown methods ***/
    174     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    175         ISharedBitmap *This,
    176         REFIID riid,
    177         void **ppvObject);
    178 
    179     ULONG (STDMETHODCALLTYPE *AddRef)(
    180         ISharedBitmap *This);
    181 
    182     ULONG (STDMETHODCALLTYPE *Release)(
    183         ISharedBitmap *This);
    184 
    185     /*** ISharedBitmap methods ***/
    186     HRESULT (STDMETHODCALLTYPE *GetSharedBitmap)(
    187         ISharedBitmap *This,
    188         HBITMAP *phbm);
    189 
    190     HRESULT (STDMETHODCALLTYPE *GetSize)(
    191         ISharedBitmap *This,
    192         SIZE *pSize);
    193 
    194     HRESULT (STDMETHODCALLTYPE *GetFormat)(
    195         ISharedBitmap *This,
    196         WTS_ALPHATYPE *pat);
    197 
    198     HRESULT (STDMETHODCALLTYPE *InitializeBitmap)(
    199         ISharedBitmap *This,
    200         HBITMAP hbm,
    201         WTS_ALPHATYPE wtsAT);
    202 
    203     HRESULT (STDMETHODCALLTYPE *Detach)(
    204         ISharedBitmap *This,
    205         HBITMAP *phbm);
    206 
    207     END_INTERFACE
    208 } ISharedBitmapVtbl;
    209 
    210 interface ISharedBitmap {
    211     CONST_VTBL ISharedBitmapVtbl* lpVtbl;
    212 };
    213 
    214 #ifdef COBJMACROS
    215 #ifndef WIDL_C_INLINE_WRAPPERS
    216 /*** IUnknown methods ***/
    217 #define ISharedBitmap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    218 #define ISharedBitmap_AddRef(This) (This)->lpVtbl->AddRef(This)
    219 #define ISharedBitmap_Release(This) (This)->lpVtbl->Release(This)
    220 /*** ISharedBitmap methods ***/
    221 #define ISharedBitmap_GetSharedBitmap(This,phbm) (This)->lpVtbl->GetSharedBitmap(This,phbm)
    222 #define ISharedBitmap_GetSize(This,pSize) (This)->lpVtbl->GetSize(This,pSize)
    223 #define ISharedBitmap_GetFormat(This,pat) (This)->lpVtbl->GetFormat(This,pat)
    224 #define ISharedBitmap_InitializeBitmap(This,hbm,wtsAT) (This)->lpVtbl->InitializeBitmap(This,hbm,wtsAT)
    225 #define ISharedBitmap_Detach(This,phbm) (This)->lpVtbl->Detach(This,phbm)
    226 #else
    227 /*** IUnknown methods ***/
    228 static inline HRESULT ISharedBitmap_QueryInterface(ISharedBitmap* This,REFIID riid,void **ppvObject) {
    229     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    230 }
    231 static inline ULONG ISharedBitmap_AddRef(ISharedBitmap* This) {
    232     return This->lpVtbl->AddRef(This);
    233 }
    234 static inline ULONG ISharedBitmap_Release(ISharedBitmap* This) {
    235     return This->lpVtbl->Release(This);
    236 }
    237 /*** ISharedBitmap methods ***/
    238 static inline HRESULT ISharedBitmap_GetSharedBitmap(ISharedBitmap* This,HBITMAP *phbm) {
    239     return This->lpVtbl->GetSharedBitmap(This,phbm);
    240 }
    241 static inline HRESULT ISharedBitmap_GetSize(ISharedBitmap* This,SIZE *pSize) {
    242     return This->lpVtbl->GetSize(This,pSize);
    243 }
    244 static inline HRESULT ISharedBitmap_GetFormat(ISharedBitmap* This,WTS_ALPHATYPE *pat) {
    245     return This->lpVtbl->GetFormat(This,pat);
    246 }
    247 static inline HRESULT ISharedBitmap_InitializeBitmap(ISharedBitmap* This,HBITMAP hbm,WTS_ALPHATYPE wtsAT) {
    248     return This->lpVtbl->InitializeBitmap(This,hbm,wtsAT);
    249 }
    250 static inline HRESULT ISharedBitmap_Detach(ISharedBitmap* This,HBITMAP *phbm) {
    251     return This->lpVtbl->Detach(This,phbm);
    252 }
    253 #endif
    254 #endif
    255 
    256 #endif
    257 
    258 
    259 #endif  /* __ISharedBitmap_INTERFACE_DEFINED__ */
    260 
    261 /*****************************************************************************
    262  * IThumbnailCache interface
    263  */
    264 #ifndef __IThumbnailCache_INTERFACE_DEFINED__
    265 #define __IThumbnailCache_INTERFACE_DEFINED__
    266 
    267 DEFINE_GUID(IID_IThumbnailCache, 0xf676c15d, 0x596a, 0x4ce2, 0x82,0x34, 0x33,0x99,0x6f,0x44,0x5d,0xb1);
    268 #if defined(__cplusplus) && !defined(CINTERFACE)
    269 MIDL_INTERFACE("f676c15d-596a-4ce2-8234-33996f445db1")
    270 IThumbnailCache : public IUnknown
    271 {
    272     virtual HRESULT STDMETHODCALLTYPE GetThumbnail(
    273         IShellItem *pShellItem,
    274         UINT cxyRequestedThumbSize,
    275         WTS_FLAGS flags,
    276         ISharedBitmap **ppvThumb,
    277         WTS_CACHEFLAGS *pOutFlags,
    278         WTS_THUMBNAILID *pThumbnailID) = 0;
    279 
    280     virtual HRESULT STDMETHODCALLTYPE GetThumbnailByID(
    281         WTS_THUMBNAILID thumbnailID,
    282         UINT cxyRequestedThumbSize,
    283         ISharedBitmap **ppvThumb,
    284         WTS_CACHEFLAGS *pOutFlags) = 0;
    285 
    286 };
    287 #ifdef __CRT_UUID_DECL
    288 __CRT_UUID_DECL(IThumbnailCache, 0xf676c15d, 0x596a, 0x4ce2, 0x82,0x34, 0x33,0x99,0x6f,0x44,0x5d,0xb1)
    289 #endif
    290 #else
    291 typedef struct IThumbnailCacheVtbl {
    292     BEGIN_INTERFACE
    293 
    294     /*** IUnknown methods ***/
    295     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    296         IThumbnailCache *This,
    297         REFIID riid,
    298         void **ppvObject);
    299 
    300     ULONG (STDMETHODCALLTYPE *AddRef)(
    301         IThumbnailCache *This);
    302 
    303     ULONG (STDMETHODCALLTYPE *Release)(
    304         IThumbnailCache *This);
    305 
    306     /*** IThumbnailCache methods ***/
    307     HRESULT (STDMETHODCALLTYPE *GetThumbnail)(
    308         IThumbnailCache *This,
    309         IShellItem *pShellItem,
    310         UINT cxyRequestedThumbSize,
    311         WTS_FLAGS flags,
    312         ISharedBitmap **ppvThumb,
    313         WTS_CACHEFLAGS *pOutFlags,
    314         WTS_THUMBNAILID *pThumbnailID);
    315 
    316     HRESULT (STDMETHODCALLTYPE *GetThumbnailByID)(
    317         IThumbnailCache *This,
    318         WTS_THUMBNAILID thumbnailID,
    319         UINT cxyRequestedThumbSize,
    320         ISharedBitmap **ppvThumb,
    321         WTS_CACHEFLAGS *pOutFlags);
    322 
    323     END_INTERFACE
    324 } IThumbnailCacheVtbl;
    325 
    326 interface IThumbnailCache {
    327     CONST_VTBL IThumbnailCacheVtbl* lpVtbl;
    328 };
    329 
    330 #ifdef COBJMACROS
    331 #ifndef WIDL_C_INLINE_WRAPPERS
    332 /*** IUnknown methods ***/
    333 #define IThumbnailCache_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    334 #define IThumbnailCache_AddRef(This) (This)->lpVtbl->AddRef(This)
    335 #define IThumbnailCache_Release(This) (This)->lpVtbl->Release(This)
    336 /*** IThumbnailCache methods ***/
    337 #define IThumbnailCache_GetThumbnail(This,pShellItem,cxyRequestedThumbSize,flags,ppvThumb,pOutFlags,pThumbnailID) (This)->lpVtbl->GetThumbnail(This,pShellItem,cxyRequestedThumbSize,flags,ppvThumb,pOutFlags,pThumbnailID)
    338 #define IThumbnailCache_GetThumbnailByID(This,thumbnailID,cxyRequestedThumbSize,ppvThumb,pOutFlags) (This)->lpVtbl->GetThumbnailByID(This,thumbnailID,cxyRequestedThumbSize,ppvThumb,pOutFlags)
    339 #else
    340 /*** IUnknown methods ***/
    341 static inline HRESULT IThumbnailCache_QueryInterface(IThumbnailCache* This,REFIID riid,void **ppvObject) {
    342     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    343 }
    344 static inline ULONG IThumbnailCache_AddRef(IThumbnailCache* This) {
    345     return This->lpVtbl->AddRef(This);
    346 }
    347 static inline ULONG IThumbnailCache_Release(IThumbnailCache* This) {
    348     return This->lpVtbl->Release(This);
    349 }
    350 /*** IThumbnailCache methods ***/
    351 static inline HRESULT IThumbnailCache_GetThumbnail(IThumbnailCache* This,IShellItem *pShellItem,UINT cxyRequestedThumbSize,WTS_FLAGS flags,ISharedBitmap **ppvThumb,WTS_CACHEFLAGS *pOutFlags,WTS_THUMBNAILID *pThumbnailID) {
    352     return This->lpVtbl->GetThumbnail(This,pShellItem,cxyRequestedThumbSize,flags,ppvThumb,pOutFlags,pThumbnailID);
    353 }
    354 static inline HRESULT IThumbnailCache_GetThumbnailByID(IThumbnailCache* This,WTS_THUMBNAILID thumbnailID,UINT cxyRequestedThumbSize,ISharedBitmap **ppvThumb,WTS_CACHEFLAGS *pOutFlags) {
    355     return This->lpVtbl->GetThumbnailByID(This,thumbnailID,cxyRequestedThumbSize,ppvThumb,pOutFlags);
    356 }
    357 #endif
    358 #endif
    359 
    360 #endif
    361 
    362 HRESULT STDMETHODCALLTYPE IThumbnailCache_RemoteGetThumbnail_Proxy(
    363     IThumbnailCache* This,
    364     IShellItem *pShellItem,
    365     UINT cxyRequestedThumbSize,
    366     WTS_FLAGS flags,
    367     ISharedBitmap **ppvThumb,
    368     WTS_CACHEFLAGS *pOutFlags,
    369     WTS_THUMBNAILID *pThumbnailID);
    370 void __RPC_STUB IThumbnailCache_RemoteGetThumbnail_Stub(
    371     IRpcStubBuffer* This,
    372     IRpcChannelBuffer* pRpcChannelBuffer,
    373     PRPC_MESSAGE pRpcMessage,
    374     DWORD* pdwStubPhase);
    375 HRESULT STDMETHODCALLTYPE IThumbnailCache_RemoteGetThumbnailByID_Proxy(
    376     IThumbnailCache* This,
    377     WTS_THUMBNAILID thumbnailID,
    378     UINT cxyRequestedThumbSize,
    379     ISharedBitmap **ppvThumb,
    380     WTS_CACHEFLAGS *pOutFlags);
    381 void __RPC_STUB IThumbnailCache_RemoteGetThumbnailByID_Stub(
    382     IRpcStubBuffer* This,
    383     IRpcChannelBuffer* pRpcChannelBuffer,
    384     PRPC_MESSAGE pRpcMessage,
    385     DWORD* pdwStubPhase);
    386 HRESULT CALLBACK IThumbnailCache_GetThumbnail_Proxy(
    387     IThumbnailCache* This,
    388     IShellItem *pShellItem,
    389     UINT cxyRequestedThumbSize,
    390     WTS_FLAGS flags,
    391     ISharedBitmap **ppvThumb,
    392     WTS_CACHEFLAGS *pOutFlags,
    393     WTS_THUMBNAILID *pThumbnailID);
    394 HRESULT __RPC_STUB IThumbnailCache_GetThumbnail_Stub(
    395     IThumbnailCache* This,
    396     IShellItem *pShellItem,
    397     UINT cxyRequestedThumbSize,
    398     WTS_FLAGS flags,
    399     ISharedBitmap **ppvThumb,
    400     WTS_CACHEFLAGS *pOutFlags,
    401     WTS_THUMBNAILID *pThumbnailID);
    402 HRESULT CALLBACK IThumbnailCache_GetThumbnailByID_Proxy(
    403     IThumbnailCache* This,
    404     WTS_THUMBNAILID thumbnailID,
    405     UINT cxyRequestedThumbSize,
    406     ISharedBitmap **ppvThumb,
    407     WTS_CACHEFLAGS *pOutFlags);
    408 HRESULT __RPC_STUB IThumbnailCache_GetThumbnailByID_Stub(
    409     IThumbnailCache* This,
    410     WTS_THUMBNAILID thumbnailID,
    411     UINT cxyRequestedThumbSize,
    412     ISharedBitmap **ppvThumb,
    413     WTS_CACHEFLAGS *pOutFlags);
    414 
    415 #endif  /* __IThumbnailCache_INTERFACE_DEFINED__ */
    416 
    417 /*****************************************************************************
    418  * IThumbnailProvider interface
    419  */
    420 #ifndef __IThumbnailProvider_INTERFACE_DEFINED__
    421 #define __IThumbnailProvider_INTERFACE_DEFINED__
    422 
    423 DEFINE_GUID(IID_IThumbnailProvider, 0xe357fccd, 0xa995, 0x4576, 0xb0,0x1f, 0x23,0x46,0x30,0x15,0x4e,0x96);
    424 #if defined(__cplusplus) && !defined(CINTERFACE)
    425 MIDL_INTERFACE("e357fccd-a995-4576-b01f-234630154e96")
    426 IThumbnailProvider : public IUnknown
    427 {
    428     virtual HRESULT STDMETHODCALLTYPE GetThumbnail(
    429         UINT cx,
    430         HBITMAP *phbmp,
    431         WTS_ALPHATYPE *pdwAlpha) = 0;
    432 
    433 };
    434 #ifdef __CRT_UUID_DECL
    435 __CRT_UUID_DECL(IThumbnailProvider, 0xe357fccd, 0xa995, 0x4576, 0xb0,0x1f, 0x23,0x46,0x30,0x15,0x4e,0x96)
    436 #endif
    437 #else
    438 typedef struct IThumbnailProviderVtbl {
    439     BEGIN_INTERFACE
    440 
    441     /*** IUnknown methods ***/
    442     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    443         IThumbnailProvider *This,
    444         REFIID riid,
    445         void **ppvObject);
    446 
    447     ULONG (STDMETHODCALLTYPE *AddRef)(
    448         IThumbnailProvider *This);
    449 
    450     ULONG (STDMETHODCALLTYPE *Release)(
    451         IThumbnailProvider *This);
    452 
    453     /*** IThumbnailProvider methods ***/
    454     HRESULT (STDMETHODCALLTYPE *GetThumbnail)(
    455         IThumbnailProvider *This,
    456         UINT cx,
    457         HBITMAP *phbmp,
    458         WTS_ALPHATYPE *pdwAlpha);
    459 
    460     END_INTERFACE
    461 } IThumbnailProviderVtbl;
    462 
    463 interface IThumbnailProvider {
    464     CONST_VTBL IThumbnailProviderVtbl* lpVtbl;
    465 };
    466 
    467 #ifdef COBJMACROS
    468 #ifndef WIDL_C_INLINE_WRAPPERS
    469 /*** IUnknown methods ***/
    470 #define IThumbnailProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    471 #define IThumbnailProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
    472 #define IThumbnailProvider_Release(This) (This)->lpVtbl->Release(This)
    473 /*** IThumbnailProvider methods ***/
    474 #define IThumbnailProvider_GetThumbnail(This,cx,phbmp,pdwAlpha) (This)->lpVtbl->GetThumbnail(This,cx,phbmp,pdwAlpha)
    475 #else
    476 /*** IUnknown methods ***/
    477 static inline HRESULT IThumbnailProvider_QueryInterface(IThumbnailProvider* This,REFIID riid,void **ppvObject) {
    478     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    479 }
    480 static inline ULONG IThumbnailProvider_AddRef(IThumbnailProvider* This) {
    481     return This->lpVtbl->AddRef(This);
    482 }
    483 static inline ULONG IThumbnailProvider_Release(IThumbnailProvider* This) {
    484     return This->lpVtbl->Release(This);
    485 }
    486 /*** IThumbnailProvider methods ***/
    487 static inline HRESULT IThumbnailProvider_GetThumbnail(IThumbnailProvider* This,UINT cx,HBITMAP *phbmp,WTS_ALPHATYPE *pdwAlpha) {
    488     return This->lpVtbl->GetThumbnail(This,cx,phbmp,pdwAlpha);
    489 }
    490 #endif
    491 #endif
    492 
    493 #endif
    494 
    495 
    496 #endif  /* __IThumbnailProvider_INTERFACE_DEFINED__ */
    497 
    498 /*****************************************************************************
    499  * IThumbnailSettings interface
    500  */
    501 #ifndef __IThumbnailSettings_INTERFACE_DEFINED__
    502 #define __IThumbnailSettings_INTERFACE_DEFINED__
    503 
    504 DEFINE_GUID(IID_IThumbnailSettings, 0xf4376f00, 0xbef5, 0x4d45, 0x80,0xf3, 0x1e,0x02,0x3b,0xbf,0x12,0x09);
    505 #if defined(__cplusplus) && !defined(CINTERFACE)
    506 MIDL_INTERFACE("f4376f00-bef5-4d45-80f3-1e023bbf1209")
    507 IThumbnailSettings : public IUnknown
    508 {
    509     virtual HRESULT STDMETHODCALLTYPE SetContext(
    510         WTS_CONTEXTFLAGS dwContext) = 0;
    511 
    512 };
    513 #ifdef __CRT_UUID_DECL
    514 __CRT_UUID_DECL(IThumbnailSettings, 0xf4376f00, 0xbef5, 0x4d45, 0x80,0xf3, 0x1e,0x02,0x3b,0xbf,0x12,0x09)
    515 #endif
    516 #else
    517 typedef struct IThumbnailSettingsVtbl {
    518     BEGIN_INTERFACE
    519 
    520     /*** IUnknown methods ***/
    521     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    522         IThumbnailSettings *This,
    523         REFIID riid,
    524         void **ppvObject);
    525 
    526     ULONG (STDMETHODCALLTYPE *AddRef)(
    527         IThumbnailSettings *This);
    528 
    529     ULONG (STDMETHODCALLTYPE *Release)(
    530         IThumbnailSettings *This);
    531 
    532     /*** IThumbnailSettings methods ***/
    533     HRESULT (STDMETHODCALLTYPE *SetContext)(
    534         IThumbnailSettings *This,
    535         WTS_CONTEXTFLAGS dwContext);
    536 
    537     END_INTERFACE
    538 } IThumbnailSettingsVtbl;
    539 
    540 interface IThumbnailSettings {
    541     CONST_VTBL IThumbnailSettingsVtbl* lpVtbl;
    542 };
    543 
    544 #ifdef COBJMACROS
    545 #ifndef WIDL_C_INLINE_WRAPPERS
    546 /*** IUnknown methods ***/
    547 #define IThumbnailSettings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    548 #define IThumbnailSettings_AddRef(This) (This)->lpVtbl->AddRef(This)
    549 #define IThumbnailSettings_Release(This) (This)->lpVtbl->Release(This)
    550 /*** IThumbnailSettings methods ***/
    551 #define IThumbnailSettings_SetContext(This,dwContext) (This)->lpVtbl->SetContext(This,dwContext)
    552 #else
    553 /*** IUnknown methods ***/
    554 static inline HRESULT IThumbnailSettings_QueryInterface(IThumbnailSettings* This,REFIID riid,void **ppvObject) {
    555     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    556 }
    557 static inline ULONG IThumbnailSettings_AddRef(IThumbnailSettings* This) {
    558     return This->lpVtbl->AddRef(This);
    559 }
    560 static inline ULONG IThumbnailSettings_Release(IThumbnailSettings* This) {
    561     return This->lpVtbl->Release(This);
    562 }
    563 /*** IThumbnailSettings methods ***/
    564 static inline HRESULT IThumbnailSettings_SetContext(IThumbnailSettings* This,WTS_CONTEXTFLAGS dwContext) {
    565     return This->lpVtbl->SetContext(This,dwContext);
    566 }
    567 #endif
    568 #endif
    569 
    570 #endif
    571 
    572 
    573 #endif  /* __IThumbnailSettings_INTERFACE_DEFINED__ */
    574 
    575 /*****************************************************************************
    576  * IThumbnailCachePrimer interface
    577  */
    578 #ifndef __IThumbnailCachePrimer_INTERFACE_DEFINED__
    579 #define __IThumbnailCachePrimer_INTERFACE_DEFINED__
    580 
    581 DEFINE_GUID(IID_IThumbnailCachePrimer, 0x0f03f8fe, 0x2b26, 0x46f0, 0x96,0x5a, 0x21,0x2a,0xa8,0xd6,0x6b,0x76);
    582 #if defined(__cplusplus) && !defined(CINTERFACE)
    583 MIDL_INTERFACE("0f03f8fe-2b26-46f0-965a-212aa8d66b76")
    584 IThumbnailCachePrimer : public IUnknown
    585 {
    586     virtual HRESULT STDMETHODCALLTYPE PageInThumbnail(
    587         IShellItem *psi,
    588         WTS_FLAGS wtsFlags,
    589         UINT cxyRequestedThumbSize) = 0;
    590 
    591 };
    592 #ifdef __CRT_UUID_DECL
    593 __CRT_UUID_DECL(IThumbnailCachePrimer, 0x0f03f8fe, 0x2b26, 0x46f0, 0x96,0x5a, 0x21,0x2a,0xa8,0xd6,0x6b,0x76)
    594 #endif
    595 #else
    596 typedef struct IThumbnailCachePrimerVtbl {
    597     BEGIN_INTERFACE
    598 
    599     /*** IUnknown methods ***/
    600     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    601         IThumbnailCachePrimer *This,
    602         REFIID riid,
    603         void **ppvObject);
    604 
    605     ULONG (STDMETHODCALLTYPE *AddRef)(
    606         IThumbnailCachePrimer *This);
    607 
    608     ULONG (STDMETHODCALLTYPE *Release)(
    609         IThumbnailCachePrimer *This);
    610 
    611     /*** IThumbnailCachePrimer methods ***/
    612     HRESULT (STDMETHODCALLTYPE *PageInThumbnail)(
    613         IThumbnailCachePrimer *This,
    614         IShellItem *psi,
    615         WTS_FLAGS wtsFlags,
    616         UINT cxyRequestedThumbSize);
    617 
    618     END_INTERFACE
    619 } IThumbnailCachePrimerVtbl;
    620 
    621 interface IThumbnailCachePrimer {
    622     CONST_VTBL IThumbnailCachePrimerVtbl* lpVtbl;
    623 };
    624 
    625 #ifdef COBJMACROS
    626 #ifndef WIDL_C_INLINE_WRAPPERS
    627 /*** IUnknown methods ***/
    628 #define IThumbnailCachePrimer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    629 #define IThumbnailCachePrimer_AddRef(This) (This)->lpVtbl->AddRef(This)
    630 #define IThumbnailCachePrimer_Release(This) (This)->lpVtbl->Release(This)
    631 /*** IThumbnailCachePrimer methods ***/
    632 #define IThumbnailCachePrimer_PageInThumbnail(This,psi,wtsFlags,cxyRequestedThumbSize) (This)->lpVtbl->PageInThumbnail(This,psi,wtsFlags,cxyRequestedThumbSize)
    633 #else
    634 /*** IUnknown methods ***/
    635 static inline HRESULT IThumbnailCachePrimer_QueryInterface(IThumbnailCachePrimer* This,REFIID riid,void **ppvObject) {
    636     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    637 }
    638 static inline ULONG IThumbnailCachePrimer_AddRef(IThumbnailCachePrimer* This) {
    639     return This->lpVtbl->AddRef(This);
    640 }
    641 static inline ULONG IThumbnailCachePrimer_Release(IThumbnailCachePrimer* This) {
    642     return This->lpVtbl->Release(This);
    643 }
    644 /*** IThumbnailCachePrimer methods ***/
    645 static inline HRESULT IThumbnailCachePrimer_PageInThumbnail(IThumbnailCachePrimer* This,IShellItem *psi,WTS_FLAGS wtsFlags,UINT cxyRequestedThumbSize) {
    646     return This->lpVtbl->PageInThumbnail(This,psi,wtsFlags,cxyRequestedThumbSize);
    647 }
    648 #endif
    649 #endif
    650 
    651 #endif
    652 
    653 
    654 #endif  /* __IThumbnailCachePrimer_INTERFACE_DEFINED__ */
    655 
    656 #ifndef __ThumbCacheLib_LIBRARY_DEFINED__
    657 #define __ThumbCacheLib_LIBRARY_DEFINED__
    658 
    659 DEFINE_GUID(LIBID_ThumbCacheLib, 0x4c857096, 0x0514, 0x4d4d, 0xab,0xd5, 0xdf,0xaa,0xa3,0xc3,0x26,0xd2);
    660 
    661 /*****************************************************************************
    662  * LocalThumbnailCache coclass
    663  */
    664 
    665 DEFINE_GUID(CLSID_LocalThumbnailCache, 0x50ef4544, 0xac9f, 0x4a8e, 0xb2,0x1b, 0x8a,0x26,0x18,0x0d,0xb1,0x3f);
    666 
    667 #ifdef __cplusplus
    668 class DECLSPEC_UUID("50ef4544-ac9f-4a8e-b21b-8a26180db13f") LocalThumbnailCache;
    669 #ifdef __CRT_UUID_DECL
    670 __CRT_UUID_DECL(LocalThumbnailCache, 0x50ef4544, 0xac9f, 0x4a8e, 0xb2,0x1b, 0x8a,0x26,0x18,0x0d,0xb1,0x3f)
    671 #endif
    672 #endif
    673 
    674 /*****************************************************************************
    675  * SharedBitmap coclass
    676  */
    677 
    678 DEFINE_GUID(CLSID_SharedBitmap, 0x4db26476, 0x6787, 0x4046, 0xb8,0x36, 0xe8,0x41,0x2a,0x9e,0x8a,0x27);
    679 
    680 #ifdef __cplusplus
    681 class DECLSPEC_UUID("4db26476-6787-4046-b836-e8412a9e8a27") SharedBitmap;
    682 #ifdef __CRT_UUID_DECL
    683 __CRT_UUID_DECL(SharedBitmap, 0x4db26476, 0x6787, 0x4046, 0xb8,0x36, 0xe8,0x41,0x2a,0x9e,0x8a,0x27)
    684 #endif
    685 #endif
    686 
    687 #endif /* __ThumbCacheLib_LIBRARY_DEFINED__ */
    688 /* Begin additional prototypes for all interfaces */
    689 
    690 ULONG           __RPC_USER HBITMAP_UserSize     (ULONG *, ULONG, HBITMAP *);
    691 unsigned char * __RPC_USER HBITMAP_UserMarshal  (ULONG *, unsigned char *, HBITMAP *);
    692 unsigned char * __RPC_USER HBITMAP_UserUnmarshal(ULONG *, unsigned char *, HBITMAP *);
    693 void            __RPC_USER HBITMAP_UserFree     (ULONG *, HBITMAP *);
    694 
    695 /* End additional prototypes */
    696 
    697 #ifdef __cplusplus
    698 }
    699 #endif
    700 
    701 #endif /* __thumbcache_h__ */