// Borland C++ Builder
// Copyright (c) 1995, 1998 by Borland International
// All rights reserved

// (DO NOT EDIT: machine generated header) 'AHMTDriveDetails.pas' rev: 3.00

#ifndef AHMTDriveDetailsHPP
#define AHMTDriveDetailsHPP
#include <AHMSystemConst.hpp>
#include <AHMSystemClass.hpp>
#include <Classes.hpp>
#include <Windows.hpp>
#include <SysInit.hpp>
#include <System.hpp>

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

namespace Ahmtdrivedetails
{
//-- type declarations -------------------------------------------------------
enum TAHMDriveType { dUnknown, dNonExisting, dRemoveable, dFixed, dRemote, dCDRom, dRamDisk };

enum TAHMDriveDetailFlags { isPreservedCase, isCaseSensitive, hasUniCodeStoredOnDisk, hasPersistentACLS, 
	hasFileCompression, isCompressed };

typedef Set<TAHMDriveDetailFlags, isPreservedCase, isCompressed>  TAHMDriveDetailSet;

class DELPHICLASS TAHMDriveDetails;
class PASCALIMPLEMENTATION TAHMDriveDetails : public Ahmsystemclass::TAHMSystemsComponent 
{
	typedef Ahmsystemclass::TAHMSystemsComponent inherited;
	
private:
	System::AnsiString FVolumeLabel;
	System::AnsiString FSerialNumber;
	int FMaxFileLength;
	TAHMDriveType FDriveType;
	System::AnsiString FDrive;
	Classes::TStrings* FDrives;
	System::AnsiString FSystemName;
	int FSystemFlags;
	Classes::TNotifyEvent FOnUpdate;
	int __fastcall GetMaxFileLength(void);
	System::AnsiString __fastcall GetSerialNumber(void);
	System::AnsiString __fastcall GetVolumeLabel(void);
	void __fastcall SetDrive(const System::AnsiString Value);
	void __fastcall SetMaxFileLength(const int Value);
	TAHMDriveDetailSet __fastcall GetSystemFlags(void);
	System::AnsiString __fastcall GetSystemName(void);
	void __fastcall SetSystemFlags(const TAHMDriveDetailSet Value);
	void __fastcall SetDriveType(const TAHMDriveType Value);
	TAHMDriveType __fastcall GetAHMDriveType(void);
	Classes::TStrings* __fastcall GetDrives(void);
	void __fastcall SetStringValue(const System::AnsiString Value);
	void __fastcall SetAHMVolumeLabel(const System::AnsiString Value);
	
public:
	__fastcall virtual TAHMDriveDetails(Classes::TComponent* AOwner);
	void __fastcall SetDriveDetails(System::AnsiString NewDrive);
	virtual void __fastcall Loaded(void);
	__fastcall virtual ~TAHMDriveDetails(void);
	__property Classes::TStrings* Drives = {read=GetDrives};
	
__published:
	__property System::AnsiString Drive = {read=FDrive, write=SetDrive, stored=false};
	__property System::AnsiString VolumeLabel = {read=GetVolumeLabel, write=SetAHMVolumeLabel, stored=false
		};
	__property System::AnsiString SerialNumber = {read=GetSerialNumber, write=SetStringValue, stored=false
		};
	__property int MaxFilesLength = {read=GetMaxFileLength, write=SetMaxFileLength, stored=false, nodefault
		};
	__property System::AnsiString SystemName = {read=GetSystemName, write=SetStringValue, stored=false}
		;
	__property TAHMDriveDetailSet SystemFlags = {read=GetSystemFlags, write=SetSystemFlags, stored=false
		, nodefault};
	__property TAHMDriveType DriveType = {read=GetAHMDriveType, write=SetDriveType, stored=false, nodefault
		};
	__property Classes::TNotifyEvent OnUpdate = {read=FOnUpdate, write=FOnUpdate};
};

//-- var, const, procedure ---------------------------------------------------

}	/* namespace Ahmtdrivedetails */
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
using namespace Ahmtdrivedetails;
#endif
//-- end unit ----------------------------------------------------------------
#endif	// AHMTDriveDetails
