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

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

#ifndef AHMTFolderLookupHPP
#define AHMTFolderLookupHPP
#include <StdCtrls.hpp>
#include <Mask.hpp>
#include <AHMStdClass.hpp>
#include <AHMTLookupEdit.hpp>
#include <ShellAPI.hpp>
#include <Graphics.hpp>
#include <Controls.hpp>
#include <ShlObj.hpp>
#include <SysUtils.hpp>
#include <Dialogs.hpp>
#include <Forms.hpp>
#include <Classes.hpp>
#include <Messages.hpp>
#include <Windows.hpp>
#include <SysInit.hpp>
#include <System.hpp>

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

namespace Ahmtfolderlookup
{
//-- type declarations -------------------------------------------------------
typedef void __fastcall (__closure *TAHMPathChange)(System::TObject* Sender, System::AnsiString OldPath
	, System::AnsiString NewPath);

enum TAHMRoots { csidlDesktop, csidlDesktopExpanded, csidlPrograms, csidlControlPanel, csidlPrinters, 
	csidlPersonal, csidlFavorites, csidlStartup, csidlRecent, csidlSendto, csidlRecycleBin, csidlStartMenu, 
	csidlDesktopDirectory, csidlMyComputer, csidlNetwork, csidlNetworkNeighborhood, csidlFonts, csidlTemplates 
	};

enum TAHMInfoFlags { FileSystemDirsOnly, DontGoBelowDomain, StatusText, FileSystemAncestors, LookupForComputer, 
	LookupForPrinter, DisplayPath };

typedef Set<TAHMInfoFlags, FileSystemDirsOnly, DisplayPath>  TAHMInfoFlagSet;

class DELPHICLASS TAHMFolderLookup;
class PASCALIMPLEMENTATION TAHMFolderLookup : public Ahmtlookupedit::TAHMCustomLookupEdit 
{
	typedef Ahmtlookupedit::TAHMCustomLookupEdit inherited;
	
private:
	Ahmstdclass::TAHMAboutSControlStr FAboutStr;
	HWND FDialogHandle;
	System::AnsiString FTitle;
	HWND FParentHandle;
	System::AnsiString FDisplayName;
	TAHMInfoFlagSet FLookupFlags;
	TAHMRoots FLookupRoot;
	Classes::TNotifyEvent FBeforeLookup;
	Classes::TNotifyEvent FAfterLookup;
	TAHMPathChange FOnPathChanged;
	
protected:
	bool __fastcall Execute(void);
	void __fastcall OnLookupPress(System::TObject* Sender);
	
public:
	__fastcall virtual TAHMFolderLookup(Classes::TComponent* AOwner);
	void __fastcall SetStatusText(const HWND Hwnd, const System::AnsiString StatusText);
	void __fastcall SetSelectionPIDL(const HWND Hwnd, const Shlobj::PItemIDList ItemIDList);
	void __fastcall SetSelectionPath(const HWND Hwnd, const System::AnsiString Path);
	void __fastcall EnableOK(const HWND Hwnd, const bool Value);
	__property System::AnsiString DisplayName = {read=FDisplayName};
	__property HWND ParentHandle = {read=FParentHandle, write=FParentHandle, nodefault};
	__property HWND DialogHandle = {read=FDialogHandle, write=FDialogHandle, nodefault};
	
__published:
	__property Ahmstdclass::TAHMAboutSControlStr About = {read=FAboutStr, write=FAboutStr};
	__property System::AnsiString LookupCaption = {read=FTitle, write=FTitle};
	__property TAHMInfoFlagSet LookupFlags = {read=FLookupFlags, write=FLookupFlags, nodefault};
	__property TAHMRoots LookupRoot = {read=FLookupRoot, write=FLookupRoot, default=1};
	__property Classes::TNotifyEvent BeforeLookup = {read=FBeforeLookup, write=FBeforeLookup};
	__property Classes::TNotifyEvent AfterLookup = {read=FAfterLookup, write=FAfterLookup};
	__property TAHMPathChange OnPathChanged = {read=FOnPathChanged, write=FOnPathChanged};
	__property EditButton1 ;
	__property Enabled ;
	__property Alignment ;
	__property EditMask ;
	__property MaxLength ;
	__property Text ;
	__property AutoSize ;
	__property CharCase ;
	__property PasswordChar ;
	__property ReadOnly ;
	__property Font ;
	__property OnEnter ;
	__property OnExit ;
	__property OnKeyDown ;
	__property OnKeyPress ;
	__property OnKeyUp ;
	__property OnClick ;
	__property OnDblClick ;
	__property OnDragDrop ;
	__property OnDragOver ;
	__property OnEndDrag ;
	__property OnMouseDown ;
	__property OnMouseMove ;
	__property OnMouseUp ;
	__property OnStartDrag ;
public:
	/* TAHMCustomLookupEdit.Destroy */ __fastcall virtual ~TAHMFolderLookup(void) { }
	
public:
	/* TWinControl.CreateParented */ __fastcall TAHMFolderLookup(HWND ParentWindow) : Ahmtlookupedit::TAHMCustomLookupEdit(
		ParentWindow) { }
	
};

//-- var, const, procedure ---------------------------------------------------
extern PACKAGE void __stdcall AHMLookuprCallbackProc(HWND HWindow, int uMsg, int lParameter, int lpLookupFolder
	);

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