// Borland C++ Builder
// Copyright (c) 1995, 2002 by Borland Software Corporation
// All rights reserved

// (DO NOT EDIT: machine generated header) 'ahmshellimages.pas' rev: 6.00

#ifndef ahmshellimagesHPP
#define ahmshellimagesHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <ahmshellclass.hpp>	// Pascal unit
#include <ImgList.hpp>	// Pascal unit
#include <CommCtrl.hpp>	// Pascal unit
#include <ahmshellobject.hpp>	// Pascal unit
#include <Dialogs.hpp>	// Pascal unit
#include <Forms.hpp>	// Pascal unit
#include <Controls.hpp>	// Pascal unit
#include <Graphics.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <SysUtils.hpp>	// Pascal unit
#include <Messages.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.hpp>	// Pascal unit

//-- user supplied -----------------------------------------------------------

namespace Ahmshellimages
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS ShellImagesClass;
class PASCALIMPLEMENTATION ShellImagesClass : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	Graphics::TIcon* fSmallIcon;
	Graphics::TIcon* fLargeIcon;
	Graphics::TIcon* __fastcall GetLargeIcon(Ahmshellobject::PItemIDList SysObject);
	Graphics::TIcon* __fastcall GetSmallIcon(Ahmshellobject::PItemIDList SysObject);
	int __fastcall GetLargeImageIndex(Ahmshellobject::PItemIDList SysObject, bool Selected);
	int __fastcall GetSmallImageIndex(Ahmshellobject::PItemIDList SysObject, bool Selected);
	AnsiString __fastcall GetDisplayName(Ahmshellobject::PItemIDList SysObject);
	bool __fastcall GetIsExecuteable(Ahmshellobject::PItemIDList SysObject);
	unsigned __fastcall GetSmallHandle(void);
	unsigned __fastcall GetLargeHandle(void);
	Types::TPoint __fastcall GetSmallSize();
	Types::TPoint __fastcall GetLargeSize();
	int __fastcall GetLargeFromPath(AnsiString SysObject);
	int __fastcall GetSmallFromPath(AnsiString SysObject);
	
protected:
	__fastcall ShellImagesClass(void);
	__fastcall ShellImagesClass(int NullVal);
	/*         class method */ static ShellImagesClass* __fastcall AccessInstance(TMetaClass* vmt, int Request);
	/*         class method */ static void __fastcall ReleaseInstance(TMetaClass* vmt);
	void __fastcall GetSmallImageIndexFromList(Ahmshellobject::PItemIDList SysObject, int &Index, bool Selected);
	void __fastcall GetLargeImageIndexFromList(Ahmshellobject::PItemIDList SysObject, int &Index, bool Selected);
	
public:
	__fastcall virtual ~ShellImagesClass(void);
	/*         class method */ static ShellImagesClass* __fastcall Instance(TMetaClass* vmt);
	__property int SmallImageIndex[Ahmshellobject::PItemIDList SysObject][bool Selected] = {read=GetSmallImageIndex};
	__property int LargeImageIndex[Ahmshellobject::PItemIDList SysObject][bool Selected] = {read=GetLargeImageIndex};
	__property bool IsExecuteable[Ahmshellobject::PItemIDList SysObject] = {read=GetIsExecuteable};
	__property unsigned LargeHandle = {read=GetLargeHandle, nodefault};
	__property unsigned SmallHandle = {read=GetSmallHandle, nodefault};
	__property AnsiString DisplayName[Ahmshellobject::PItemIDList SysObject] = {read=GetDisplayName};
	__property Graphics::TIcon* LargeIcon[Ahmshellobject::PItemIDList SysObject] = {read=GetLargeIcon};
	__property Graphics::TIcon* SmallIcon[Ahmshellobject::PItemIDList SysObject] = {read=GetSmallIcon};
	__property int LargeIndexFromPath[AnsiString SysObject] = {read=GetLargeFromPath};
	__property int SmallIndexFromPath[AnsiString SysObject] = {read=GetSmallFromPath};
	__property Types::TPoint SmallSize = {read=GetSmallSize};
	__property Types::TPoint LargeSize = {read=GetLargeSize};
};


class DELPHICLASS TAHMShellIcons;
class PASCALIMPLEMENTATION TAHMShellIcons : public Imglist::TCustomImageList 
{
	typedef Imglist::TCustomImageList inherited;
	
private:
	bool fSmallImages;
	AnsiString fAbout;
	void __fastcall SetSmallImages(const bool Value);
	int __fastcall GetItemIDIndex(Ahmshellobject::PItemIDList ItemID);
	int __fastcall GetItemImageIndex(AnsiString PathName);
	
public:
	__fastcall virtual TAHMShellIcons(Classes::TComponent* AOwner);
	virtual void __fastcall DoDraw(int Index, Graphics::TCanvas* Canvas, int X, int Y, unsigned Style, bool Enabled);
	__fastcall virtual ~TAHMShellIcons(void);
	__property int ItemImageIndex[AnsiString PathName] = {read=GetItemImageIndex};
	__property int ItemIDIndex[Ahmshellobject::PItemIDList ItemID] = {read=GetItemIDIndex};
	
__published:
	__property AnsiString About = {read=fAbout, write=fAbout};
	__property bool SmallImages = {read=fSmallImages, write=SetSmallImages, default=1};
public:
	#pragma option push -w-inl
	/* TCustomImageList.CreateSize */ inline __fastcall TAHMShellIcons(int AWidth, int AHeight) : Imglist::TCustomImageList(AWidth, AHeight) { }
	#pragma option pop
	
};


//-- var, const, procedure ---------------------------------------------------
extern PACKAGE System::ResourceString _EShellImagesClassIllegalRequest;
#define Ahmshellimages_EShellImagesClassIllegalRequest System::LoadResourceString(&Ahmshellimages::_EShellImagesClassIllegalRequest)
extern PACKAGE System::ResourceString _EShellImagesClassAccessDenied;
#define Ahmshellimages_EShellImagesClassAccessDenied System::LoadResourceString(&Ahmshellimages::_EShellImagesClassAccessDenied)
extern PACKAGE ShellImagesClass* __fastcall ShellImages(void);

}	/* namespace Ahmshellimages */
using namespace Ahmshellimages;
#pragma option pop	// -w-
#pragma option pop	// -Vx

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