|  | /*** Autogenerated by WIDL 8.0-rc1 from include/thumbcache.idl - Do not edit ***/ | 
|  |  | 
|  | #ifdef _WIN32 | 
|  | #ifndef __REQUIRED_RPCNDR_H_VERSION__ | 
|  | #define __REQUIRED_RPCNDR_H_VERSION__ 475 | 
|  | #endif | 
|  | #include <rpc.h> | 
|  | #include <rpcndr.h> | 
|  | #endif | 
|  |  | 
|  | #ifndef COM_NO_WINDOWS_H | 
|  | #include <windows.h> | 
|  | #include <ole2.h> | 
|  | #endif | 
|  |  | 
|  | #ifndef __thumbcache_h__ | 
|  | #define __thumbcache_h__ | 
|  |  | 
|  | #ifndef __WIDL_INLINE | 
|  | #if defined(__cplusplus) || defined(_MSC_VER) | 
|  | #define __WIDL_INLINE inline | 
|  | #elif defined(__GNUC__) | 
|  | #define __WIDL_INLINE __inline__ | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | /* Forward declarations */ | 
|  |  | 
|  | #ifndef __ISharedBitmap_FWD_DEFINED__ | 
|  | #define __ISharedBitmap_FWD_DEFINED__ | 
|  | typedef interface ISharedBitmap ISharedBitmap; | 
|  | #ifdef __cplusplus | 
|  | interface ISharedBitmap; | 
|  | #endif /* __cplusplus */ | 
|  | #endif | 
|  |  | 
|  | #ifndef __IThumbnailCache_FWD_DEFINED__ | 
|  | #define __IThumbnailCache_FWD_DEFINED__ | 
|  | typedef interface IThumbnailCache IThumbnailCache; | 
|  | #ifdef __cplusplus | 
|  | interface IThumbnailCache; | 
|  | #endif /* __cplusplus */ | 
|  | #endif | 
|  |  | 
|  | #ifndef __IThumbnailProvider_FWD_DEFINED__ | 
|  | #define __IThumbnailProvider_FWD_DEFINED__ | 
|  | typedef interface IThumbnailProvider IThumbnailProvider; | 
|  | #ifdef __cplusplus | 
|  | interface IThumbnailProvider; | 
|  | #endif /* __cplusplus */ | 
|  | #endif | 
|  |  | 
|  | #ifndef __IThumbnailSettings_FWD_DEFINED__ | 
|  | #define __IThumbnailSettings_FWD_DEFINED__ | 
|  | typedef interface IThumbnailSettings IThumbnailSettings; | 
|  | #ifdef __cplusplus | 
|  | interface IThumbnailSettings; | 
|  | #endif /* __cplusplus */ | 
|  | #endif | 
|  |  | 
|  | #ifndef __IThumbnailCachePrimer_FWD_DEFINED__ | 
|  | #define __IThumbnailCachePrimer_FWD_DEFINED__ | 
|  | typedef interface IThumbnailCachePrimer IThumbnailCachePrimer; | 
|  | #ifdef __cplusplus | 
|  | interface IThumbnailCachePrimer; | 
|  | #endif /* __cplusplus */ | 
|  | #endif | 
|  |  | 
|  | #ifndef __LocalThumbnailCache_FWD_DEFINED__ | 
|  | #define __LocalThumbnailCache_FWD_DEFINED__ | 
|  | #ifdef __cplusplus | 
|  | typedef class LocalThumbnailCache LocalThumbnailCache; | 
|  | #else | 
|  | typedef struct LocalThumbnailCache LocalThumbnailCache; | 
|  | #endif /* defined __cplusplus */ | 
|  | #endif /* defined __LocalThumbnailCache_FWD_DEFINED__ */ | 
|  |  | 
|  | #ifndef __SharedBitmap_FWD_DEFINED__ | 
|  | #define __SharedBitmap_FWD_DEFINED__ | 
|  | #ifdef __cplusplus | 
|  | typedef class SharedBitmap SharedBitmap; | 
|  | #else | 
|  | typedef struct SharedBitmap SharedBitmap; | 
|  | #endif /* defined __cplusplus */ | 
|  | #endif /* defined __SharedBitmap_FWD_DEFINED__ */ | 
|  |  | 
|  | /* Headers for imported files */ | 
|  |  | 
|  | #include <oaidl.h> | 
|  | #include <shtypes.h> | 
|  | #include <shobjidl.h> | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  | typedef enum WTS_FLAGS { | 
|  | WTS_NONE = 0x0, | 
|  | WTS_EXTRACT = 0x0, | 
|  | WTS_INCACHEONLY = 0x1, | 
|  | WTS_FASTEXTRACT = 0x2, | 
|  | WTS_FORCEEXTRACTION = 0x4, | 
|  | WTS_SLOWRECLAIM = 0x8, | 
|  | WTS_EXTRACTDONOTCACHE = 0x20, | 
|  | WTS_SCALETOREQUESTEDSIZE = 0x40, | 
|  | WTS_SKIPFASTEXTRACT = 0x80, | 
|  | WTS_EXTRACTINPROC = 0x100, | 
|  | WTS_CROPTOSQUARE = 0x200, | 
|  | WTS_INSTANCESURROGATE = 0x400, | 
|  | WTS_REQUIRESURROGATE = 0x800, | 
|  | WTS_APPSTYLE = 0x2000, | 
|  | WTS_WIDETHUMBNAILS = 0x4000, | 
|  | WTS_IDEALCACHESIZEONLY = 0x8000, | 
|  | WTS_SCALEUP = 0x10000 | 
|  | } WTS_FLAGS; | 
|  | DEFINE_ENUM_FLAG_OPERATORS(WTS_FLAGS) | 
|  | typedef enum WTS_CACHEFLAGS { | 
|  | WTS_DEFAULT = 0x0, | 
|  | WTS_LOWQUALITY = 0x1, | 
|  | WTS_CACHED = 0x2 | 
|  | } WTS_CACHEFLAGS; | 
|  | DEFINE_ENUM_FLAG_OPERATORS(WTS_CACHEFLAGS) | 
|  | typedef enum WTS_CONTEXTFLAGS { | 
|  | WTSCF_DEFAULT = 0x0, | 
|  | WTSCF_APPSTYLE = 0x1, | 
|  | WTSCF_SQUARE = 0x2, | 
|  | WTSCF_WIDE = 0x4, | 
|  | WTSCF_FAST = 0x8 | 
|  | } WTS_CONTEXTFLAGS; | 
|  | DEFINE_ENUM_FLAG_OPERATORS(WTS_CONTEXTFLAGS) | 
|  | typedef enum WTS_ALPHATYPE { | 
|  | WTSAT_UNKNOWN = 0, | 
|  | WTSAT_RGB = 1, | 
|  | WTSAT_ARGB = 2 | 
|  | } WTS_ALPHATYPE; | 
|  | typedef struct WTS_THUMBNAILID { | 
|  | BYTE rgbKey[16]; | 
|  | } WTS_THUMBNAILID; | 
|  | #define WTS_E_FAILEDEXTRACTION MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xb200) | 
|  | #define WTS_E_EXTRACTIONTIMEDOUT MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xb201) | 
|  | #define WTS_E_SURROGATEUNAVAILABLE MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xb202) | 
|  | #define WTS_E_FASTEXTRACTIONNOTSUPPORTED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xb203) | 
|  | #define WTS_E_DATAFILEUNAVAILABLE MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xb204) | 
|  | #define WTS_E_EXTRACTIONPENDING MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xb205) | 
|  | #define WTS_E_EXTRACTIONBLOCKED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xb206) | 
|  | /***************************************************************************** | 
|  | * ISharedBitmap interface | 
|  | */ | 
|  | #ifndef __ISharedBitmap_INTERFACE_DEFINED__ | 
|  | #define __ISharedBitmap_INTERFACE_DEFINED__ | 
|  |  | 
|  | DEFINE_GUID(IID_ISharedBitmap, 0x091162a4, 0xbc96, 0x411f, 0xaa,0xe8, 0xc5,0x12,0x2c,0xd0,0x33,0x63); | 
|  | #if defined(__cplusplus) && !defined(CINTERFACE) | 
|  | MIDL_INTERFACE("091162a4-bc96-411f-aae8-c5122cd03363") | 
|  | ISharedBitmap : public IUnknown | 
|  | { | 
|  | virtual HRESULT STDMETHODCALLTYPE GetSharedBitmap( | 
|  | HBITMAP *phbm) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetSize( | 
|  | SIZE *pSize) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetFormat( | 
|  | WTS_ALPHATYPE *pat) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE InitializeBitmap( | 
|  | HBITMAP hbm, | 
|  | WTS_ALPHATYPE wtsAT) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE Detach( | 
|  | HBITMAP *phbm) = 0; | 
|  |  | 
|  | }; | 
|  | #ifdef __CRT_UUID_DECL | 
|  | __CRT_UUID_DECL(ISharedBitmap, 0x091162a4, 0xbc96, 0x411f, 0xaa,0xe8, 0xc5,0x12,0x2c,0xd0,0x33,0x63) | 
|  | #endif | 
|  | #else | 
|  | typedef struct ISharedBitmapVtbl { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /*** IUnknown methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
|  | ISharedBitmap *This, | 
|  | REFIID riid, | 
|  | void **ppvObject); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *AddRef)( | 
|  | ISharedBitmap *This); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *Release)( | 
|  | ISharedBitmap *This); | 
|  |  | 
|  | /*** ISharedBitmap methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *GetSharedBitmap)( | 
|  | ISharedBitmap *This, | 
|  | HBITMAP *phbm); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetSize)( | 
|  | ISharedBitmap *This, | 
|  | SIZE *pSize); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetFormat)( | 
|  | ISharedBitmap *This, | 
|  | WTS_ALPHATYPE *pat); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *InitializeBitmap)( | 
|  | ISharedBitmap *This, | 
|  | HBITMAP hbm, | 
|  | WTS_ALPHATYPE wtsAT); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *Detach)( | 
|  | ISharedBitmap *This, | 
|  | HBITMAP *phbm); | 
|  |  | 
|  | END_INTERFACE | 
|  | } ISharedBitmapVtbl; | 
|  |  | 
|  | interface ISharedBitmap { | 
|  | CONST_VTBL ISharedBitmapVtbl* lpVtbl; | 
|  | }; | 
|  |  | 
|  | #ifdef COBJMACROS | 
|  | #ifndef WIDL_C_INLINE_WRAPPERS | 
|  | /*** IUnknown methods ***/ | 
|  | #define ISharedBitmap_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define ISharedBitmap_AddRef(This) (This)->lpVtbl->AddRef(This) | 
|  | #define ISharedBitmap_Release(This) (This)->lpVtbl->Release(This) | 
|  | /*** ISharedBitmap methods ***/ | 
|  | #define ISharedBitmap_GetSharedBitmap(This,phbm) (This)->lpVtbl->GetSharedBitmap(This,phbm) | 
|  | #define ISharedBitmap_GetSize(This,pSize) (This)->lpVtbl->GetSize(This,pSize) | 
|  | #define ISharedBitmap_GetFormat(This,pat) (This)->lpVtbl->GetFormat(This,pat) | 
|  | #define ISharedBitmap_InitializeBitmap(This,hbm,wtsAT) (This)->lpVtbl->InitializeBitmap(This,hbm,wtsAT) | 
|  | #define ISharedBitmap_Detach(This,phbm) (This)->lpVtbl->Detach(This,phbm) | 
|  | #else | 
|  | /*** IUnknown methods ***/ | 
|  | static __WIDL_INLINE HRESULT ISharedBitmap_QueryInterface(ISharedBitmap* This,REFIID riid,void **ppvObject) { | 
|  | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
|  | } | 
|  | static __WIDL_INLINE ULONG ISharedBitmap_AddRef(ISharedBitmap* This) { | 
|  | return This->lpVtbl->AddRef(This); | 
|  | } | 
|  | static __WIDL_INLINE ULONG ISharedBitmap_Release(ISharedBitmap* This) { | 
|  | return This->lpVtbl->Release(This); | 
|  | } | 
|  | /*** ISharedBitmap methods ***/ | 
|  | static __WIDL_INLINE HRESULT ISharedBitmap_GetSharedBitmap(ISharedBitmap* This,HBITMAP *phbm) { | 
|  | return This->lpVtbl->GetSharedBitmap(This,phbm); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT ISharedBitmap_GetSize(ISharedBitmap* This,SIZE *pSize) { | 
|  | return This->lpVtbl->GetSize(This,pSize); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT ISharedBitmap_GetFormat(ISharedBitmap* This,WTS_ALPHATYPE *pat) { | 
|  | return This->lpVtbl->GetFormat(This,pat); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT ISharedBitmap_InitializeBitmap(ISharedBitmap* This,HBITMAP hbm,WTS_ALPHATYPE wtsAT) { | 
|  | return This->lpVtbl->InitializeBitmap(This,hbm,wtsAT); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT ISharedBitmap_Detach(ISharedBitmap* This,HBITMAP *phbm) { | 
|  | return This->lpVtbl->Detach(This,phbm); | 
|  | } | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #endif | 
|  |  | 
|  |  | 
|  | #endif  /* __ISharedBitmap_INTERFACE_DEFINED__ */ | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IThumbnailCache interface | 
|  | */ | 
|  | #ifndef __IThumbnailCache_INTERFACE_DEFINED__ | 
|  | #define __IThumbnailCache_INTERFACE_DEFINED__ | 
|  |  | 
|  | DEFINE_GUID(IID_IThumbnailCache, 0xf676c15d, 0x596a, 0x4ce2, 0x82,0x34, 0x33,0x99,0x6f,0x44,0x5d,0xb1); | 
|  | #if defined(__cplusplus) && !defined(CINTERFACE) | 
|  | MIDL_INTERFACE("f676c15d-596a-4ce2-8234-33996f445db1") | 
|  | IThumbnailCache : public IUnknown | 
|  | { | 
|  | virtual HRESULT STDMETHODCALLTYPE GetThumbnail( | 
|  | IShellItem *pShellItem, | 
|  | UINT cxyRequestedThumbSize, | 
|  | WTS_FLAGS flags, | 
|  | ISharedBitmap **ppvThumb, | 
|  | WTS_CACHEFLAGS *pOutFlags, | 
|  | WTS_THUMBNAILID *pThumbnailID) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetThumbnailByID( | 
|  | WTS_THUMBNAILID thumbnailID, | 
|  | UINT cxyRequestedThumbSize, | 
|  | ISharedBitmap **ppvThumb, | 
|  | WTS_CACHEFLAGS *pOutFlags) = 0; | 
|  |  | 
|  | }; | 
|  | #ifdef __CRT_UUID_DECL | 
|  | __CRT_UUID_DECL(IThumbnailCache, 0xf676c15d, 0x596a, 0x4ce2, 0x82,0x34, 0x33,0x99,0x6f,0x44,0x5d,0xb1) | 
|  | #endif | 
|  | #else | 
|  | typedef struct IThumbnailCacheVtbl { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /*** IUnknown methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
|  | IThumbnailCache *This, | 
|  | REFIID riid, | 
|  | void **ppvObject); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *AddRef)( | 
|  | IThumbnailCache *This); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *Release)( | 
|  | IThumbnailCache *This); | 
|  |  | 
|  | /*** IThumbnailCache methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *GetThumbnail)( | 
|  | IThumbnailCache *This, | 
|  | IShellItem *pShellItem, | 
|  | UINT cxyRequestedThumbSize, | 
|  | WTS_FLAGS flags, | 
|  | ISharedBitmap **ppvThumb, | 
|  | WTS_CACHEFLAGS *pOutFlags, | 
|  | WTS_THUMBNAILID *pThumbnailID); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetThumbnailByID)( | 
|  | IThumbnailCache *This, | 
|  | WTS_THUMBNAILID thumbnailID, | 
|  | UINT cxyRequestedThumbSize, | 
|  | ISharedBitmap **ppvThumb, | 
|  | WTS_CACHEFLAGS *pOutFlags); | 
|  |  | 
|  | END_INTERFACE | 
|  | } IThumbnailCacheVtbl; | 
|  |  | 
|  | interface IThumbnailCache { | 
|  | CONST_VTBL IThumbnailCacheVtbl* lpVtbl; | 
|  | }; | 
|  |  | 
|  | #ifdef COBJMACROS | 
|  | #ifndef WIDL_C_INLINE_WRAPPERS | 
|  | /*** IUnknown methods ***/ | 
|  | #define IThumbnailCache_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IThumbnailCache_AddRef(This) (This)->lpVtbl->AddRef(This) | 
|  | #define IThumbnailCache_Release(This) (This)->lpVtbl->Release(This) | 
|  | /*** IThumbnailCache methods ***/ | 
|  | #define IThumbnailCache_GetThumbnail(This,pShellItem,cxyRequestedThumbSize,flags,ppvThumb,pOutFlags,pThumbnailID) (This)->lpVtbl->GetThumbnail(This,pShellItem,cxyRequestedThumbSize,flags,ppvThumb,pOutFlags,pThumbnailID) | 
|  | #define IThumbnailCache_GetThumbnailByID(This,thumbnailID,cxyRequestedThumbSize,ppvThumb,pOutFlags) (This)->lpVtbl->GetThumbnailByID(This,thumbnailID,cxyRequestedThumbSize,ppvThumb,pOutFlags) | 
|  | #else | 
|  | /*** IUnknown methods ***/ | 
|  | static __WIDL_INLINE HRESULT IThumbnailCache_QueryInterface(IThumbnailCache* This,REFIID riid,void **ppvObject) { | 
|  | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
|  | } | 
|  | static __WIDL_INLINE ULONG IThumbnailCache_AddRef(IThumbnailCache* This) { | 
|  | return This->lpVtbl->AddRef(This); | 
|  | } | 
|  | static __WIDL_INLINE ULONG IThumbnailCache_Release(IThumbnailCache* This) { | 
|  | return This->lpVtbl->Release(This); | 
|  | } | 
|  | /*** IThumbnailCache methods ***/ | 
|  | static __WIDL_INLINE HRESULT IThumbnailCache_GetThumbnail(IThumbnailCache* This,IShellItem *pShellItem,UINT cxyRequestedThumbSize,WTS_FLAGS flags,ISharedBitmap **ppvThumb,WTS_CACHEFLAGS *pOutFlags,WTS_THUMBNAILID *pThumbnailID) { | 
|  | return This->lpVtbl->GetThumbnail(This,pShellItem,cxyRequestedThumbSize,flags,ppvThumb,pOutFlags,pThumbnailID); | 
|  | } | 
|  | static __WIDL_INLINE HRESULT IThumbnailCache_GetThumbnailByID(IThumbnailCache* This,WTS_THUMBNAILID thumbnailID,UINT cxyRequestedThumbSize,ISharedBitmap **ppvThumb,WTS_CACHEFLAGS *pOutFlags) { | 
|  | return This->lpVtbl->GetThumbnailByID(This,thumbnailID,cxyRequestedThumbSize,ppvThumb,pOutFlags); | 
|  | } | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #endif | 
|  |  | 
|  | HRESULT STDMETHODCALLTYPE IThumbnailCache_RemoteGetThumbnail_Proxy( | 
|  | IThumbnailCache* This, | 
|  | IShellItem *pShellItem, | 
|  | UINT cxyRequestedThumbSize, | 
|  | WTS_FLAGS flags, | 
|  | ISharedBitmap **ppvThumb, | 
|  | WTS_CACHEFLAGS *pOutFlags, | 
|  | WTS_THUMBNAILID *pThumbnailID); | 
|  | void __RPC_STUB IThumbnailCache_RemoteGetThumbnail_Stub( | 
|  | IRpcStubBuffer* This, | 
|  | IRpcChannelBuffer* pRpcChannelBuffer, | 
|  | PRPC_MESSAGE pRpcMessage, | 
|  | DWORD* pdwStubPhase); | 
|  | HRESULT STDMETHODCALLTYPE IThumbnailCache_RemoteGetThumbnailByID_Proxy( | 
|  | IThumbnailCache* This, | 
|  | WTS_THUMBNAILID thumbnailID, | 
|  | UINT cxyRequestedThumbSize, | 
|  | ISharedBitmap **ppvThumb, | 
|  | WTS_CACHEFLAGS *pOutFlags); | 
|  | void __RPC_STUB IThumbnailCache_RemoteGetThumbnailByID_Stub( | 
|  | IRpcStubBuffer* This, | 
|  | IRpcChannelBuffer* pRpcChannelBuffer, | 
|  | PRPC_MESSAGE pRpcMessage, | 
|  | DWORD* pdwStubPhase); | 
|  | HRESULT CALLBACK IThumbnailCache_GetThumbnail_Proxy( | 
|  | IThumbnailCache* This, | 
|  | IShellItem *pShellItem, | 
|  | UINT cxyRequestedThumbSize, | 
|  | WTS_FLAGS flags, | 
|  | ISharedBitmap **ppvThumb, | 
|  | WTS_CACHEFLAGS *pOutFlags, | 
|  | WTS_THUMBNAILID *pThumbnailID); | 
|  | HRESULT __RPC_STUB IThumbnailCache_GetThumbnail_Stub( | 
|  | IThumbnailCache* This, | 
|  | IShellItem *pShellItem, | 
|  | UINT cxyRequestedThumbSize, | 
|  | WTS_FLAGS flags, | 
|  | ISharedBitmap **ppvThumb, | 
|  | WTS_CACHEFLAGS *pOutFlags, | 
|  | WTS_THUMBNAILID *pThumbnailID); | 
|  | HRESULT CALLBACK IThumbnailCache_GetThumbnailByID_Proxy( | 
|  | IThumbnailCache* This, | 
|  | WTS_THUMBNAILID thumbnailID, | 
|  | UINT cxyRequestedThumbSize, | 
|  | ISharedBitmap **ppvThumb, | 
|  | WTS_CACHEFLAGS *pOutFlags); | 
|  | HRESULT __RPC_STUB IThumbnailCache_GetThumbnailByID_Stub( | 
|  | IThumbnailCache* This, | 
|  | WTS_THUMBNAILID thumbnailID, | 
|  | UINT cxyRequestedThumbSize, | 
|  | ISharedBitmap **ppvThumb, | 
|  | WTS_CACHEFLAGS *pOutFlags); | 
|  |  | 
|  | #endif  /* __IThumbnailCache_INTERFACE_DEFINED__ */ | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IThumbnailProvider interface | 
|  | */ | 
|  | #ifndef __IThumbnailProvider_INTERFACE_DEFINED__ | 
|  | #define __IThumbnailProvider_INTERFACE_DEFINED__ | 
|  |  | 
|  | DEFINE_GUID(IID_IThumbnailProvider, 0xe357fccd, 0xa995, 0x4576, 0xb0,0x1f, 0x23,0x46,0x30,0x15,0x4e,0x96); | 
|  | #if defined(__cplusplus) && !defined(CINTERFACE) | 
|  | MIDL_INTERFACE("e357fccd-a995-4576-b01f-234630154e96") | 
|  | IThumbnailProvider : public IUnknown | 
|  | { | 
|  | virtual HRESULT STDMETHODCALLTYPE GetThumbnail( | 
|  | UINT cx, | 
|  | HBITMAP *phbmp, | 
|  | WTS_ALPHATYPE *pdwAlpha) = 0; | 
|  |  | 
|  | }; | 
|  | #ifdef __CRT_UUID_DECL | 
|  | __CRT_UUID_DECL(IThumbnailProvider, 0xe357fccd, 0xa995, 0x4576, 0xb0,0x1f, 0x23,0x46,0x30,0x15,0x4e,0x96) | 
|  | #endif | 
|  | #else | 
|  | typedef struct IThumbnailProviderVtbl { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /*** IUnknown methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
|  | IThumbnailProvider *This, | 
|  | REFIID riid, | 
|  | void **ppvObject); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *AddRef)( | 
|  | IThumbnailProvider *This); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *Release)( | 
|  | IThumbnailProvider *This); | 
|  |  | 
|  | /*** IThumbnailProvider methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *GetThumbnail)( | 
|  | IThumbnailProvider *This, | 
|  | UINT cx, | 
|  | HBITMAP *phbmp, | 
|  | WTS_ALPHATYPE *pdwAlpha); | 
|  |  | 
|  | END_INTERFACE | 
|  | } IThumbnailProviderVtbl; | 
|  |  | 
|  | interface IThumbnailProvider { | 
|  | CONST_VTBL IThumbnailProviderVtbl* lpVtbl; | 
|  | }; | 
|  |  | 
|  | #ifdef COBJMACROS | 
|  | #ifndef WIDL_C_INLINE_WRAPPERS | 
|  | /*** IUnknown methods ***/ | 
|  | #define IThumbnailProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IThumbnailProvider_AddRef(This) (This)->lpVtbl->AddRef(This) | 
|  | #define IThumbnailProvider_Release(This) (This)->lpVtbl->Release(This) | 
|  | /*** IThumbnailProvider methods ***/ | 
|  | #define IThumbnailProvider_GetThumbnail(This,cx,phbmp,pdwAlpha) (This)->lpVtbl->GetThumbnail(This,cx,phbmp,pdwAlpha) | 
|  | #else | 
|  | /*** IUnknown methods ***/ | 
|  | static __WIDL_INLINE HRESULT IThumbnailProvider_QueryInterface(IThumbnailProvider* This,REFIID riid,void **ppvObject) { | 
|  | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
|  | } | 
|  | static __WIDL_INLINE ULONG IThumbnailProvider_AddRef(IThumbnailProvider* This) { | 
|  | return This->lpVtbl->AddRef(This); | 
|  | } | 
|  | static __WIDL_INLINE ULONG IThumbnailProvider_Release(IThumbnailProvider* This) { | 
|  | return This->lpVtbl->Release(This); | 
|  | } | 
|  | /*** IThumbnailProvider methods ***/ | 
|  | static __WIDL_INLINE HRESULT IThumbnailProvider_GetThumbnail(IThumbnailProvider* This,UINT cx,HBITMAP *phbmp,WTS_ALPHATYPE *pdwAlpha) { | 
|  | return This->lpVtbl->GetThumbnail(This,cx,phbmp,pdwAlpha); | 
|  | } | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #endif | 
|  |  | 
|  |  | 
|  | #endif  /* __IThumbnailProvider_INTERFACE_DEFINED__ */ | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IThumbnailSettings interface | 
|  | */ | 
|  | #ifndef __IThumbnailSettings_INTERFACE_DEFINED__ | 
|  | #define __IThumbnailSettings_INTERFACE_DEFINED__ | 
|  |  | 
|  | DEFINE_GUID(IID_IThumbnailSettings, 0xf4376f00, 0xbef5, 0x4d45, 0x80,0xf3, 0x1e,0x02,0x3b,0xbf,0x12,0x09); | 
|  | #if defined(__cplusplus) && !defined(CINTERFACE) | 
|  | MIDL_INTERFACE("f4376f00-bef5-4d45-80f3-1e023bbf1209") | 
|  | IThumbnailSettings : public IUnknown | 
|  | { | 
|  | virtual HRESULT STDMETHODCALLTYPE SetContext( | 
|  | WTS_CONTEXTFLAGS dwContext) = 0; | 
|  |  | 
|  | }; | 
|  | #ifdef __CRT_UUID_DECL | 
|  | __CRT_UUID_DECL(IThumbnailSettings, 0xf4376f00, 0xbef5, 0x4d45, 0x80,0xf3, 0x1e,0x02,0x3b,0xbf,0x12,0x09) | 
|  | #endif | 
|  | #else | 
|  | typedef struct IThumbnailSettingsVtbl { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /*** IUnknown methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
|  | IThumbnailSettings *This, | 
|  | REFIID riid, | 
|  | void **ppvObject); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *AddRef)( | 
|  | IThumbnailSettings *This); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *Release)( | 
|  | IThumbnailSettings *This); | 
|  |  | 
|  | /*** IThumbnailSettings methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *SetContext)( | 
|  | IThumbnailSettings *This, | 
|  | WTS_CONTEXTFLAGS dwContext); | 
|  |  | 
|  | END_INTERFACE | 
|  | } IThumbnailSettingsVtbl; | 
|  |  | 
|  | interface IThumbnailSettings { | 
|  | CONST_VTBL IThumbnailSettingsVtbl* lpVtbl; | 
|  | }; | 
|  |  | 
|  | #ifdef COBJMACROS | 
|  | #ifndef WIDL_C_INLINE_WRAPPERS | 
|  | /*** IUnknown methods ***/ | 
|  | #define IThumbnailSettings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IThumbnailSettings_AddRef(This) (This)->lpVtbl->AddRef(This) | 
|  | #define IThumbnailSettings_Release(This) (This)->lpVtbl->Release(This) | 
|  | /*** IThumbnailSettings methods ***/ | 
|  | #define IThumbnailSettings_SetContext(This,dwContext) (This)->lpVtbl->SetContext(This,dwContext) | 
|  | #else | 
|  | /*** IUnknown methods ***/ | 
|  | static __WIDL_INLINE HRESULT IThumbnailSettings_QueryInterface(IThumbnailSettings* This,REFIID riid,void **ppvObject) { | 
|  | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
|  | } | 
|  | static __WIDL_INLINE ULONG IThumbnailSettings_AddRef(IThumbnailSettings* This) { | 
|  | return This->lpVtbl->AddRef(This); | 
|  | } | 
|  | static __WIDL_INLINE ULONG IThumbnailSettings_Release(IThumbnailSettings* This) { | 
|  | return This->lpVtbl->Release(This); | 
|  | } | 
|  | /*** IThumbnailSettings methods ***/ | 
|  | static __WIDL_INLINE HRESULT IThumbnailSettings_SetContext(IThumbnailSettings* This,WTS_CONTEXTFLAGS dwContext) { | 
|  | return This->lpVtbl->SetContext(This,dwContext); | 
|  | } | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #endif | 
|  |  | 
|  |  | 
|  | #endif  /* __IThumbnailSettings_INTERFACE_DEFINED__ */ | 
|  |  | 
|  | /***************************************************************************** | 
|  | * IThumbnailCachePrimer interface | 
|  | */ | 
|  | #ifndef __IThumbnailCachePrimer_INTERFACE_DEFINED__ | 
|  | #define __IThumbnailCachePrimer_INTERFACE_DEFINED__ | 
|  |  | 
|  | DEFINE_GUID(IID_IThumbnailCachePrimer, 0x0f03f8fe, 0x2b26, 0x46f0, 0x96,0x5a, 0x21,0x2a,0xa8,0xd6,0x6b,0x76); | 
|  | #if defined(__cplusplus) && !defined(CINTERFACE) | 
|  | MIDL_INTERFACE("0f03f8fe-2b26-46f0-965a-212aa8d66b76") | 
|  | IThumbnailCachePrimer : public IUnknown | 
|  | { | 
|  | virtual HRESULT STDMETHODCALLTYPE PageInThumbnail( | 
|  | IShellItem *psi, | 
|  | WTS_FLAGS wtsFlags, | 
|  | UINT cxyRequestedThumbSize) = 0; | 
|  |  | 
|  | }; | 
|  | #ifdef __CRT_UUID_DECL | 
|  | __CRT_UUID_DECL(IThumbnailCachePrimer, 0x0f03f8fe, 0x2b26, 0x46f0, 0x96,0x5a, 0x21,0x2a,0xa8,0xd6,0x6b,0x76) | 
|  | #endif | 
|  | #else | 
|  | typedef struct IThumbnailCachePrimerVtbl { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /*** IUnknown methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
|  | IThumbnailCachePrimer *This, | 
|  | REFIID riid, | 
|  | void **ppvObject); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *AddRef)( | 
|  | IThumbnailCachePrimer *This); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *Release)( | 
|  | IThumbnailCachePrimer *This); | 
|  |  | 
|  | /*** IThumbnailCachePrimer methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *PageInThumbnail)( | 
|  | IThumbnailCachePrimer *This, | 
|  | IShellItem *psi, | 
|  | WTS_FLAGS wtsFlags, | 
|  | UINT cxyRequestedThumbSize); | 
|  |  | 
|  | END_INTERFACE | 
|  | } IThumbnailCachePrimerVtbl; | 
|  |  | 
|  | interface IThumbnailCachePrimer { | 
|  | CONST_VTBL IThumbnailCachePrimerVtbl* lpVtbl; | 
|  | }; | 
|  |  | 
|  | #ifdef COBJMACROS | 
|  | #ifndef WIDL_C_INLINE_WRAPPERS | 
|  | /*** IUnknown methods ***/ | 
|  | #define IThumbnailCachePrimer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IThumbnailCachePrimer_AddRef(This) (This)->lpVtbl->AddRef(This) | 
|  | #define IThumbnailCachePrimer_Release(This) (This)->lpVtbl->Release(This) | 
|  | /*** IThumbnailCachePrimer methods ***/ | 
|  | #define IThumbnailCachePrimer_PageInThumbnail(This,psi,wtsFlags,cxyRequestedThumbSize) (This)->lpVtbl->PageInThumbnail(This,psi,wtsFlags,cxyRequestedThumbSize) | 
|  | #else | 
|  | /*** IUnknown methods ***/ | 
|  | static __WIDL_INLINE HRESULT IThumbnailCachePrimer_QueryInterface(IThumbnailCachePrimer* This,REFIID riid,void **ppvObject) { | 
|  | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
|  | } | 
|  | static __WIDL_INLINE ULONG IThumbnailCachePrimer_AddRef(IThumbnailCachePrimer* This) { | 
|  | return This->lpVtbl->AddRef(This); | 
|  | } | 
|  | static __WIDL_INLINE ULONG IThumbnailCachePrimer_Release(IThumbnailCachePrimer* This) { | 
|  | return This->lpVtbl->Release(This); | 
|  | } | 
|  | /*** IThumbnailCachePrimer methods ***/ | 
|  | static __WIDL_INLINE HRESULT IThumbnailCachePrimer_PageInThumbnail(IThumbnailCachePrimer* This,IShellItem *psi,WTS_FLAGS wtsFlags,UINT cxyRequestedThumbSize) { | 
|  | return This->lpVtbl->PageInThumbnail(This,psi,wtsFlags,cxyRequestedThumbSize); | 
|  | } | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #endif | 
|  |  | 
|  |  | 
|  | #endif  /* __IThumbnailCachePrimer_INTERFACE_DEFINED__ */ | 
|  |  | 
|  | #ifndef __ThumbCacheLib_LIBRARY_DEFINED__ | 
|  | #define __ThumbCacheLib_LIBRARY_DEFINED__ | 
|  |  | 
|  | DEFINE_GUID(LIBID_ThumbCacheLib, 0x4c857096, 0x0514, 0x4d4d, 0xab,0xd5, 0xdf,0xaa,0xa3,0xc3,0x26,0xd2); | 
|  |  | 
|  | /***************************************************************************** | 
|  | * LocalThumbnailCache coclass | 
|  | */ | 
|  |  | 
|  | DEFINE_GUID(CLSID_LocalThumbnailCache, 0x50ef4544, 0xac9f, 0x4a8e, 0xb2,0x1b, 0x8a,0x26,0x18,0x0d,0xb1,0x3f); | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | class DECLSPEC_UUID("50ef4544-ac9f-4a8e-b21b-8a26180db13f") LocalThumbnailCache; | 
|  | #ifdef __CRT_UUID_DECL | 
|  | __CRT_UUID_DECL(LocalThumbnailCache, 0x50ef4544, 0xac9f, 0x4a8e, 0xb2,0x1b, 0x8a,0x26,0x18,0x0d,0xb1,0x3f) | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | /***************************************************************************** | 
|  | * SharedBitmap coclass | 
|  | */ | 
|  |  | 
|  | DEFINE_GUID(CLSID_SharedBitmap, 0x4db26476, 0x6787, 0x4046, 0xb8,0x36, 0xe8,0x41,0x2a,0x9e,0x8a,0x27); | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | class DECLSPEC_UUID("4db26476-6787-4046-b836-e8412a9e8a27") SharedBitmap; | 
|  | #ifdef __CRT_UUID_DECL | 
|  | __CRT_UUID_DECL(SharedBitmap, 0x4db26476, 0x6787, 0x4046, 0xb8,0x36, 0xe8,0x41,0x2a,0x9e,0x8a,0x27) | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #endif /* __ThumbCacheLib_LIBRARY_DEFINED__ */ | 
|  | /* Begin additional prototypes for all interfaces */ | 
|  |  | 
|  | ULONG           __RPC_USER HBITMAP_UserSize     (ULONG *, ULONG, HBITMAP *); | 
|  | unsigned char * __RPC_USER HBITMAP_UserMarshal  (ULONG *, unsigned char *, HBITMAP *); | 
|  | unsigned char * __RPC_USER HBITMAP_UserUnmarshal(ULONG *, unsigned char *, HBITMAP *); | 
|  | void            __RPC_USER HBITMAP_UserFree     (ULONG *, HBITMAP *); | 
|  |  | 
|  | /* End additional prototypes */ | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  |  | 
|  | #endif /* __thumbcache_h__ */ |