// CodeGear C++Builder
// Copyright (c) 1995, 2015 by Embarcadero Technologies, Inc.
// All rights reserved

// (DO NOT EDIT: machine generated header) 'iexShellThumbnails.pas' rev: 30.00 (Windows)

#ifndef IexshellthumbnailsHPP
#define IexshellthumbnailsHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member 
#pragma pack(push,8)
#include <System.hpp>
#include <SysInit.hpp>
#include <Winapi.Windows.hpp>
#include <System.SysUtils.hpp>
#include <Vcl.Graphics.hpp>
#include <hyieutils.hpp>

//-- user supplied -----------------------------------------------------------
DECLARE_DINTERFACE_TYPE_UUID("953BB1EE-93B4-11D1-98A3-00C04FB687DA", IExtractImage2)

namespace Iexshellthumbnails
{
//-- forward type declarations -----------------------------------------------
__interface IRunnableTask;
typedef System::DelphiInterface<IRunnableTask> _di_IRunnableTask;
__interface IExtractImage;
typedef System::DelphiInterface<IExtractImage> _di_IExtractImage;
__interface IExtractImage2;
typedef System::DelphiInterface<IExtractImage2> _di_IExtractImage2;
//-- type declarations -------------------------------------------------------
__interface  INTERFACE_UUID("{85788D00-6807-11D0-B810-00C04FD706EC}") IRunnableTask  : public System::IInterface 
{
	virtual HRESULT __stdcall Run(void) = 0 ;
	virtual HRESULT __stdcall Kill(System::LongBool fWait) = 0 ;
	virtual HRESULT __stdcall Suspend(void) = 0 ;
	virtual HRESULT __stdcall Resume(void) = 0 ;
	virtual int __stdcall IsRunning(void) = 0 ;
};

__interface  INTERFACE_UUID("{BB2E617C-0920-11D1-9A0B-00C04FC2D6C1}") IExtractImage  : public System::IInterface 
{
	virtual HRESULT __stdcall GetLocation(System::WideChar * pszwPathBuffer, unsigned cch, unsigned &dwPriority, System::Types::TSize &rgSize, unsigned dwRecClrDepth, unsigned &dwFlags) = 0 ;
	virtual HRESULT __stdcall Extract(HBITMAP &hBmpThumb) = 0 ;
};

__interface  INTERFACE_UUID("{953BB1EE-93B4-11D1-98A3-00C04FB687DA}") IExtractImage2  : public IExtractImage 
{
	virtual HRESULT __stdcall GetDateStamp(_FILETIME &pDateStamp) = 0 ;
};

//-- var, const, procedure ---------------------------------------------------
static const System::Int8 SIIGBF_RESIZETOFIT = System::Int8(0x0);
static const System::Int8 SIIGBF_BIGGERSIZEOK = System::Int8(0x1);
static const System::Int8 SIIGBF_MEMORYONLY = System::Int8(0x2);
static const System::Int8 SIIGBF_ICONONLY = System::Int8(0x4);
static const System::Int8 SIIGBF_THUMBNAILONLY = System::Int8(0x8);
static const System::Int8 SIIGBF_INCACHEONLY = System::Int8(0x10);
extern DELPHI_PACKAGE GUID IID_IExtractImage2;
static const System::Int8 Min_Thumbnail_Size = System::Int8(0x34);
static const System::Word Max_Thumbnail_Size = System::Word(0x100);
static const System::Int8 IEIFLAG_ASYNC = System::Int8(0x1);
static const System::Int8 IEIFLAG_CACHE = System::Int8(0x2);
static const System::Int8 IEIFLAG_ASPECT = System::Int8(0x4);
static const System::Int8 IEIFLAG_OFFLINE = System::Int8(0x8);
static const System::Int8 IEIFLAG_GLEAM = System::Int8(0x10);
static const System::Int8 IEIFLAG_SCREEN = System::Int8(0x20);
static const System::Int8 IEIFLAG_ORIGSIZE = System::Int8(0x40);
static const System::Byte IEIFLAG_NOSTAMP = System::Byte(0x80);
static const System::Word IEIFLAG_NOBORDER = System::Word(0x100);
static const System::Word IEIFLAG_QUALITY = System::Word(0x200);
static const System::Int8 SHIL_LARGE = System::Int8(0x0);
static const System::Int8 SHIL_SMALL = System::Int8(0x1);
static const System::Int8 SHIL_EXTRALARGE = System::Int8(0x2);
static const System::Int8 SHIL_SYSSMALL = System::Int8(0x3);
static const System::Int8 SHIL_JUMBO = System::Int8(0x4);
extern DELPHI_PACKAGE GUID IID_IImageList;
extern DELPHI_PACKAGE bool __fastcall UseThumbnailFromExplorer(const System::UnicodeString sFileName);
extern DELPHI_PACKAGE bool __fastcall ExtractExplorerThumbnail(const System::UnicodeString sFileName, Vcl::Graphics::TBitmap* Bitmap, int iDesiredWidth = 0x78, int iDesiredHeight = 0x78);
extern DELPHI_PACKAGE void __fastcall IEGetLargeFileIcon(const System::UnicodeString sFilename, Vcl::Graphics::TIcon* &aIcon, unsigned SHIL_FLAG);
extern DELPHI_PACKAGE void __fastcall IEGetJumboFileIcon(const System::UnicodeString sFilename, Hyieutils::TIEBitmap* DestBitmap);
}	/* namespace Iexshellthumbnails */
#if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_IEXSHELLTHUMBNAILS)
using namespace Iexshellthumbnails;
#endif
#pragma pack(pop)
#pragma option pop

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// IexshellthumbnailsHPP
