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

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

#ifndef AHMTFileOperatorHPP
#define AHMTFileOperatorHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <AHMSystemConst.hpp>	// Pascal unit
#include <ShellAPI.hpp>	// Pascal unit
#include <AHMSystemClass.hpp>	// Pascal unit
#include <SysUtils.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 Ahmtfileoperator
{
//-- type declarations -------------------------------------------------------
#pragma option push -b-
enum TAHMFileFlag { opAllowUndo, opConfirmMouse, opFilesOnly, opMultiDestFiles, opNoConfirmation, opNoConfirmMkDir, 
	opRenameOnCollision, opSilent, opSimpleProgress, opWantMappingHandle };
#pragma option pop

typedef Set<TAHMFileFlag, opAllowUndo, opWantMappingHandle>  TAHMFileFlags;

#pragma option push -b-
enum TAHMFileFunction { opCopyFile, opDeleteFile, opMoveFile, opRenameFile };
#pragma option pop

class DELPHICLASS TAHMFileOperator;
class PASCALIMPLEMENTATION TAHMFileOperator : public Ahmsystemclass::TAHMExecuteComponent 
{
	typedef Ahmsystemclass::TAHMExecuteComponent inherited;
	
private:
	#pragma pack(push, 1)
	_SHFILEOPSTRUCTA FData;
	#pragma pack(pop)
	
	Classes::TStrings* FFilesFrom;
	AnsiString FDirTo;
	AnsiString FDirFrom;
	Classes::TNotifyEvent FOnDone;
	Classes::TNotifyEvent FOnSuccessRename;
	Classes::TNotifyEvent FOnSuccessDelete;
	Classes::TNotifyEvent FOnSuccessCopy;
	Classes::TNotifyEvent FOnSuccessMove;
	Classes::TNotifyEvent FOnFailRename;
	Classes::TNotifyEvent FOnFailDelete;
	Classes::TNotifyEvent FOnFailCopy;
	Classes::TNotifyEvent FOnFailMove;
	TAHMFileFunction FOperation;
	void __fastcall SetFilesFrom(Classes::TStrings* Value);
	void __fastcall SetFlags(TAHMFileFlags Value);
	void __fastcall SetOperFlag(unsigned F, bool V);
	TAHMFileFlags __fastcall GetFlags(void);
	bool __fastcall GetOperFlag(unsigned F);
	
public:
	__fastcall virtual TAHMFileOperator(Classes::TComponent* AOwner);
	__fastcall virtual ~TAHMFileOperator(void);
	virtual bool __fastcall Execute(void);
	bool __fastcall DiskCopy(void);
	
__published:
	__property Classes::TStrings* FilesFrom = {read=FFilesFrom, write=SetFilesFrom};
	__property AnsiString DirFrom = {read=FDirFrom, write=FDirFrom};
	__property AnsiString DirTo = {read=FDirTo, write=FDirTo};
	__property TAHMFileFunction Operation = {read=FOperation, write=FOperation, default=0};
	__property TAHMFileFlags Flags = {read=GetFlags, write=SetFlags, default=33};
	__property Classes::TNotifyEvent OnSuccessRename = {read=FOnSuccessRename, write=FOnSuccessRename};
		
	__property Classes::TNotifyEvent OnSuccessCopy = {read=FOnSuccessCopy, write=FOnSuccessCopy};
	__property Classes::TNotifyEvent OnSuccessDelete = {read=FOnSuccessDelete, write=FOnSuccessDelete};
		
	__property Classes::TNotifyEvent OnSuccessMove = {read=FOnSuccessMove, write=FOnSuccessMove};
	__property Classes::TNotifyEvent OnFailRename = {read=FOnFailRename, write=FOnFailRename};
	__property Classes::TNotifyEvent OnFailCopy = {read=FOnFailCopy, write=FOnFailCopy};
	__property Classes::TNotifyEvent OnFailDelete = {read=FOnFailDelete, write=FOnFailDelete};
	__property Classes::TNotifyEvent OnFailMove = {read=FOnFailMove, write=FOnFailMove};
	__property Classes::TNotifyEvent OnDone = {read=FOnDone, write=FOnDone};
};


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

}	/* namespace Ahmtfileoperator */
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
using namespace Ahmtfileoperator;
#endif
#pragma option pop	// -w-
#pragma option pop	// -Vx

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