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