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

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

#ifndef AHMTDriveDetailsHPP
#define AHMTDriveDetailsHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <AHMSystemConst.hpp>	// Pascal unit
#include <AHMSystemClass.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.hpp>	// Pascal unit

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

namespace Ahmtdrivedetails
{
//-- type declarations -------------------------------------------------------
#pragma option push -b-
enum TAHMDriveType { dUnknown, dNonExisting, dRemoveable, dFixed, dRemote, dCDRom, dRamDisk };
#pragma option pop

#pragma option push -b-
enum TAHMDriveDetailFlags { isPreservedCase, isCaseSensitive, hasUniCodeStoredOnDisk, hasPersistentACLS, 
	hasFileCompression, isCompressed };
#pragma option pop

typedef Set<TAHMDriveDetailFlags, isPreservedCase, isCompressed>  TAHMDriveDetailSet;

class DELPHICLASS TAHMDriveDetails;
class PASCALIMPLEMENTATION TAHMDriveDetails : public Ahmsystemclass::TAHMSystemsComponent 
{
	typedef Ahmsystemclass::TAHMSystemsComponent inherited;
	
private:
	AnsiString FVolumeLabel;
	AnsiString FSerialNumber;
	unsigned FMaxFileLength;
	TAHMDriveType FDriveType;
	AnsiString FDrive;
	Classes::TStrings* FDrives;
	AnsiString FSystemName;
	unsigned FSystemFlags;
	Classes::TNotifyEvent FOnUpdate;
	unsigned __fastcall GetMaxFileLength(void);
	AnsiString __fastcall GetSerialNumber();
	AnsiString __fastcall GetVolumeLabel();
	void __fastcall SetDrive(const AnsiString Value);
	void __fastcall SetMaxFileLength(const unsigned Value);
	TAHMDriveDetailSet __fastcall GetSystemFlags(void);
	AnsiString __fastcall GetSystemName();
	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 AnsiString Value);
	void __fastcall SetAHMVolumeLabel(const AnsiString Value);
	
public:
	__fastcall virtual TAHMDriveDetails(Classes::TComponent* AOwner);
	void __fastcall SetDriveDetails(AnsiString NewDrive);
	virtual void __fastcall Loaded(void);
	__fastcall virtual ~TAHMDriveDetails(void);
	__property Classes::TStrings* Drives = {read=GetDrives};
	
__published:
	__property AnsiString Drive = {read=FDrive, write=SetDrive, stored=false};
	__property AnsiString VolumeLabel = {read=GetVolumeLabel, write=SetAHMVolumeLabel, stored=false};
	__property AnsiString SerialNumber = {read=GetSerialNumber, write=SetStringValue, stored=false};
	__property unsigned MaxFilesLength = {read=GetMaxFileLength, write=SetMaxFileLength, stored=false, 
		nodefault};
	__property 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
#pragma option pop	// -w-
#pragma option pop	// -Vx

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