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

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

#ifndef FoldMonHPP
#define FoldMonHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <ComObj.hpp>	// Pascal unit
#include <ShlObj.hpp>	// Pascal unit
#include <ShellAPI.hpp>	// Pascal unit
#include <Forms.hpp>	// Pascal unit
#include <Controls.hpp>	// Pascal unit
#include <Classes.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 Foldmon
{
//-- type declarations -------------------------------------------------------
class DELPHICLASS TMonitorHost;
class PASCALIMPLEMENTATION TMonitorHost : public Controls::TWinControl 
{
	typedef Controls::TWinControl inherited;
	
protected:
	MESSAGE void __fastcall WMUser(Messages::TMessage &Msg);
public:
	#pragma option push -w-inl
	/* TWinControl.Create */ inline __fastcall virtual TMonitorHost(Classes::TComponent* AOwner) : Controls::TWinControl(AOwner) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TWinControl.CreateParented */ inline __fastcall TMonitorHost(HWND ParentWindow) : Controls::TWinControl(ParentWindow) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TWinControl.Destroy */ inline __fastcall virtual ~TMonitorHost(void) { }
	#pragma option pop
	
};


class DELPHICLASS TCustomFolderMonitor;
class PASCALIMPLEMENTATION TCustomFolderMonitor : public Classes::TComponent 
{
	typedef Classes::TComponent inherited;
	
private:
	TMonitorHost* FHost;
	unsigned FMonitorHandle;
	bool FActive;
	AnsiString FFolder;
	bool FRecurseSubfolders;
	Classes::TNotifyEvent FOnChange;
	void __fastcall SetFolder(const AnsiString Value);
	void __fastcall SetRecurseSubfolders(const bool Value);
	void __fastcall SetActive(const bool Value);
	
protected:
	virtual void __fastcall Change(void);
	__property AnsiString Folder = {read=FFolder, write=SetFolder};
	__property bool RecurseSubfolders = {read=FRecurseSubfolders, write=SetRecurseSubfolders, nodefault};
	__property Classes::TNotifyEvent OnChange = {read=FOnChange, write=FOnChange};
	
public:
	__fastcall virtual TCustomFolderMonitor(Classes::TComponent* AOwner);
	__fastcall virtual ~TCustomFolderMonitor(void);
	void __fastcall Pause(void);
	void __fastcall Resume(void);
	__property bool Active = {read=FActive, write=SetActive, default=0};
};


class DELPHICLASS TFolderMonitor;
class PASCALIMPLEMENTATION TFolderMonitor : public TCustomFolderMonitor 
{
	typedef TCustomFolderMonitor inherited;
	
__published:
	__property Folder ;
	__property RecurseSubfolders ;
	__property OnChange ;
public:
	#pragma option push -w-inl
	/* TCustomFolderMonitor.Create */ inline __fastcall virtual TFolderMonitor(Classes::TComponent* AOwner) : TCustomFolderMonitor(AOwner) { }
	#pragma option pop
	#pragma option push -w-inl
	/* TCustomFolderMonitor.Destroy */ inline __fastcall virtual ~TFolderMonitor(void) { }
	#pragma option pop
	
};


//-- var, const, procedure ---------------------------------------------------
extern PACKAGE void __fastcall Register(void);

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

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