thumbcache.h 23 KB

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