123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- /*
- * Copyright 2019 Alistair Leslie-Hughes
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
- */
- import "oaidl.idl";
- import "shtypes.idl";
- import "shobjidl.idl";
- typedef [v1_enum] enum WTS_FLAGS
- {
- WTS_NONE = 0x00000000,
- WTS_EXTRACT = 0x00000000,
- WTS_INCACHEONLY = 0x00000001,
- WTS_FASTEXTRACT = 0x00000002,
- WTS_FORCEEXTRACTION = 0x00000004,
- WTS_SLOWRECLAIM = 0x00000008,
- WTS_EXTRACTDONOTCACHE = 0x00000020,
- WTS_SCALETOREQUESTEDSIZE = 0x00000040,
- WTS_SKIPFASTEXTRACT = 0x00000080,
- WTS_EXTRACTINPROC = 0x00000100,
- WTS_CROPTOSQUARE = 0x00000200,
- WTS_INSTANCESURROGATE = 0x00000400,
- WTS_REQUIRESURROGATE = 0x00000800,
- WTS_APPSTYLE = 0x00002000,
- WTS_WIDETHUMBNAILS = 0x00004000,
- WTS_IDEALCACHESIZEONLY = 0x00008000,
- WTS_SCALEUP = 0x00010000,
- } WTS_FLAGS;
- cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(WTS_FLAGS)")
- typedef [v1_enum] enum WTS_CACHEFLAGS
- {
- WTS_DEFAULT = 0x00000000,
- WTS_LOWQUALITY = 0x00000001,
- WTS_CACHED = 0x00000002,
- } WTS_CACHEFLAGS;
- cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(WTS_CACHEFLAGS)")
- typedef [v1_enum] enum WTS_CONTEXTFLAGS
- {
- WTSCF_DEFAULT = 0x00000000,
- WTSCF_APPSTYLE = 0x00000001,
- WTSCF_SQUARE = 0x00000002,
- WTSCF_WIDE = 0x00000004,
- WTSCF_FAST = 0x00000008,
- } WTS_CONTEXTFLAGS;
- cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(WTS_CONTEXTFLAGS)")
- typedef [v1_enum] enum WTS_ALPHATYPE
- {
- WTSAT_UNKNOWN = 0,
- WTSAT_RGB = 1,
- WTSAT_ARGB = 2
- } WTS_ALPHATYPE;
- typedef struct WTS_THUMBNAILID
- {
- BYTE rgbKey[16];
- } WTS_THUMBNAILID;
- cpp_quote("#define WTS_E_FAILEDEXTRACTION MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xb200)")
- cpp_quote("#define WTS_E_EXTRACTIONTIMEDOUT MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xb201)")
- cpp_quote("#define WTS_E_SURROGATEUNAVAILABLE MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xb202)")
- cpp_quote("#define WTS_E_FASTEXTRACTIONNOTSUPPORTED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xb203)")
- cpp_quote("#define WTS_E_DATAFILEUNAVAILABLE MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xb204)")
- cpp_quote("#define WTS_E_EXTRACTIONPENDING MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xb205)")
- cpp_quote("#define WTS_E_EXTRACTIONBLOCKED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0xb206)")
- [
- uuid(091162a4-bc96-411f-aae8-c5122cd03363),
- pointer_default(unique),
- ]
- interface ISharedBitmap : IUnknown
- {
- HRESULT GetSharedBitmap([out] HBITMAP *phbm);
- HRESULT GetSize([out] SIZE *pSize);
- HRESULT GetFormat([out] WTS_ALPHATYPE *pat);
- HRESULT InitializeBitmap([in] HBITMAP hbm, [in] WTS_ALPHATYPE wtsAT);
- HRESULT Detach([out] HBITMAP *phbm);
- }
- [
- object,
- uuid(f676c15d-596a-4ce2-8234-33996f445db1),
- ]
- interface IThumbnailCache : IUnknown
- {
- [local]
- HRESULT GetThumbnail([in] IShellItem *pShellItem,
- [in] UINT cxyRequestedThumbSize,
- [in] WTS_FLAGS flags,
- [out, unique] ISharedBitmap **ppvThumb,
- [out, unique] WTS_CACHEFLAGS *pOutFlags,
- [out, unique] WTS_THUMBNAILID *pThumbnailID);
- [call_as(GetThumbnail)]
- HRESULT RemoteGetThumbnail([in] IShellItem *pShellItem,
- [in] UINT cxyRequestedThumbSize,
- [in] WTS_FLAGS flags,
- [out] ISharedBitmap **ppvThumb,
- [out] WTS_CACHEFLAGS *pOutFlags,
- [out] WTS_THUMBNAILID *pThumbnailID);
- [local]
- HRESULT GetThumbnailByID([in] WTS_THUMBNAILID thumbnailID,
- [in] UINT cxyRequestedThumbSize,
- [out, unique] ISharedBitmap **ppvThumb,
- [out, unique] WTS_CACHEFLAGS *pOutFlags);
- [call_as(GetThumbnailByID)]
- HRESULT RemoteGetThumbnailByID([in] WTS_THUMBNAILID thumbnailID,
- [in] UINT cxyRequestedThumbSize,
- [out] ISharedBitmap **ppvThumb,
- [out] WTS_CACHEFLAGS *pOutFlags);
- }
- [
- uuid(e357fccd-a995-4576-b01f-234630154e96),
- ]
- interface IThumbnailProvider : IUnknown
- {
- HRESULT GetThumbnail([in] UINT cx,
- [out] HBITMAP *phbmp,
- [out] WTS_ALPHATYPE *pdwAlpha);
- }
- [
- uuid(f4376f00-bef5-4d45-80f3-1e023bbf1209),
- ]
- interface IThumbnailSettings : IUnknown
- {
- HRESULT SetContext([in] WTS_CONTEXTFLAGS dwContext);
- }
- [
- uuid(0f03f8fe-2b26-46f0-965a-212aa8d66b76),
- object,
- pointer_default(unique)
- ]
- interface IThumbnailCachePrimer : IUnknown
- {
- HRESULT PageInThumbnail([in] IShellItem *psi,
- [in] WTS_FLAGS wtsFlags,
- [in] UINT cxyRequestedThumbSize);
- }
- [
- uuid(4c857096-0514-4d4d-abd5-dfaaa3c326d2)
- ]
- library ThumbCacheLib
- {
- [
- uuid(50ef4544-ac9f-4a8e-b21b-8a26180db13f)
- ]
- coclass LocalThumbnailCache
- {
- interface IThumbnailCache;
- }
- [
- uuid(4db26476-6787-4046-b836-e8412a9e8a27)
- ]
- coclass SharedBitmap
- {
- interface ISharedBitmap;
- }
- }
|