1 /*** Autogenerated by WIDL 6.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 FORCEINLINE HRESULT ISharedBitmap_QueryInterface(ISharedBitmap* This,REFIID riid,void **ppvObject) {
229     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
230 }
231 static FORCEINLINE ULONG ISharedBitmap_AddRef(ISharedBitmap* This) {
232     return This->lpVtbl->AddRef(This);
233 }
234 static FORCEINLINE ULONG ISharedBitmap_Release(ISharedBitmap* This) {
235     return This->lpVtbl->Release(This);
236 }
237 /*** ISharedBitmap methods ***/
238 static FORCEINLINE HRESULT ISharedBitmap_GetSharedBitmap(ISharedBitmap* This,HBITMAP *phbm) {
239     return This->lpVtbl->GetSharedBitmap(This,phbm);
240 }
241 static FORCEINLINE HRESULT ISharedBitmap_GetSize(ISharedBitmap* This,SIZE *pSize) {
242     return This->lpVtbl->GetSize(This,pSize);
243 }
244 static FORCEINLINE HRESULT ISharedBitmap_GetFormat(ISharedBitmap* This,WTS_ALPHATYPE *pat) {
245     return This->lpVtbl->GetFormat(This,pat);
246 }
247 static FORCEINLINE HRESULT ISharedBitmap_InitializeBitmap(ISharedBitmap* This,HBITMAP hbm,WTS_ALPHATYPE wtsAT) {
248     return This->lpVtbl->InitializeBitmap(This,hbm,wtsAT);
249 }
250 static FORCEINLINE 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 FORCEINLINE HRESULT IThumbnailCache_QueryInterface(IThumbnailCache* This,REFIID riid,void **ppvObject) {
342     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
343 }
344 static FORCEINLINE ULONG IThumbnailCache_AddRef(IThumbnailCache* This) {
345     return This->lpVtbl->AddRef(This);
346 }
347 static FORCEINLINE ULONG IThumbnailCache_Release(IThumbnailCache* This) {
348     return This->lpVtbl->Release(This);
349 }
350 /*** IThumbnailCache methods ***/
351 static FORCEINLINE 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 FORCEINLINE 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 FORCEINLINE HRESULT IThumbnailProvider_QueryInterface(IThumbnailProvider* This,REFIID riid,void **ppvObject) {
478     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
479 }
480 static FORCEINLINE ULONG IThumbnailProvider_AddRef(IThumbnailProvider* This) {
481     return This->lpVtbl->AddRef(This);
482 }
483 static FORCEINLINE ULONG IThumbnailProvider_Release(IThumbnailProvider* This) {
484     return This->lpVtbl->Release(This);
485 }
486 /*** IThumbnailProvider methods ***/
487 static FORCEINLINE 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 FORCEINLINE HRESULT IThumbnailSettings_QueryInterface(IThumbnailSettings* This,REFIID riid,void **ppvObject) {
555     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
556 }
557 static FORCEINLINE ULONG IThumbnailSettings_AddRef(IThumbnailSettings* This) {
558     return This->lpVtbl->AddRef(This);
559 }
560 static FORCEINLINE ULONG IThumbnailSettings_Release(IThumbnailSettings* This) {
561     return This->lpVtbl->Release(This);
562 }
563 /*** IThumbnailSettings methods ***/
564 static FORCEINLINE 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 FORCEINLINE HRESULT IThumbnailCachePrimer_QueryInterface(IThumbnailCachePrimer* This,REFIID riid,void **ppvObject) {
636     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
637 }
638 static FORCEINLINE ULONG IThumbnailCachePrimer_AddRef(IThumbnailCachePrimer* This) {
639     return This->lpVtbl->AddRef(This);
640 }
641 static FORCEINLINE ULONG IThumbnailCachePrimer_Release(IThumbnailCachePrimer* This) {
642     return This->lpVtbl->Release(This);
643 }
644 /*** IThumbnailCachePrimer methods ***/
645 static FORCEINLINE 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__ */
702