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

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

#ifndef AHMTShellLinksHPP
#define AHMTShellLinksHPP
#include <ShellAPI.hpp>
#include <AHMSystemConst.hpp>
#include <AHMSystemClass.hpp>
#include <Menus.hpp>
#include <ComObj.hpp>
#include <ActiveX.hpp>
#include <ShlObj.hpp>
#include <Dialogs.hpp>
#include <Forms.hpp>
#include <Controls.hpp>
#include <Graphics.hpp>
#include <Classes.hpp>
#include <SysUtils.hpp>
#include <Messages.hpp>
#include <Windows.hpp>
#include <SysInit.hpp>
#include <System.hpp>

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

namespace Ahmtshelllinks
{
//-- type declarations -------------------------------------------------------
enum TAHMShellRoots { aUserDefined, cDesktop, cInternet, cPrograms, cControls, cPrinters, cPersonal, 
	cFavourites, cStartup, cRecent, cSendTo, cBitBucket, cStartMenu, cDesktopDirectory, cDrives, cNetwork, 
	cNethood, cFonts, cTemplates, cCommonStartMenu, cCommonPrograms, cCommomStartup, cCommonDesktopDirectory, 
	cAppData, cPrintHood, cAltStartup, cCommonAltStartup, cCommonFavourites, cInternetCache, cCookies, 
	cHistory };

class DELPHICLASS TAHMShortCutDetails;
class DELPHICLASS TAHMShortCut;
class DELPHICLASS TAHMShellLinks;
class DELPHICLASS TAHMShortCuts;
class PASCALIMPLEMENTATION TAHMShortCuts : public Classes::TCollection 
{
	typedef Classes::TCollection inherited;
	
private:
	TAHMShellLinks* FAHMShellLinks;
	TAHMShortCut* __fastcall GetAHMShortCut(int Index);
	void __fastcall SetAHMShortCut(int Index, TAHMShortCut* Value);
	
protected:
	DYNAMIC Classes::TPersistent* __fastcall GetOwner(void);
	
public:
	__fastcall TAHMShortCuts(TAHMShellLinks* AOwner);
	HIDESBASE TAHMShortCut* __fastcall Add(void);
	bool __fastcall Delete(int Index);
	__property TAHMShellLinks* Owner = {read=FAHMShellLinks};
	__property TAHMShortCut* Items[int Index] = {read=GetAHMShortCut, write=SetAHMShortCut/*, default*/
		};
public:
	/* TCollection.Destroy */ __fastcall virtual ~TAHMShortCuts(void) { }
	
};

class PASCALIMPLEMENTATION TAHMShellLinks : public Ahmsystemclass::TAHMSystemsComponent 
{
	typedef Ahmsystemclass::TAHMSystemsComponent inherited;
	
private:
	TAHMShortCuts* FAHMShortCuts;
	void __fastcall SetAHMShortCuts(TAHMShortCuts* Value);
	
public:
	__fastcall virtual TAHMShellLinks(Classes::TComponent* AOwner);
	virtual void __fastcall Loaded(void);
	bool __fastcall Install(int Index);
	bool __fastcall Import(System::AnsiString ShortCutFile);
	__fastcall virtual ~TAHMShellLinks(void);
	
__published:
	__property TAHMShortCuts* ShortCuts = {read=FAHMShortCuts, write=SetAHMShortCuts};
};

class PASCALIMPLEMENTATION TAHMShortCut : public Classes::TCollectionItem 
{
	typedef Classes::TCollectionItem inherited;
	
private:
	System::AnsiString FShortCutName;
	System::AnsiString FPath;
	TAHMShellRoots FPathtype;
	TAHMShortCutDetails* FProperties;
	bool FAutoInstall;
	TAHMShellLinks* FAHMShellLinks;
	System::AnsiString FPathExtra;
	void __fastcall SetShortCutName(const System::AnsiString Value);
	void __fastcall SetPath(const System::AnsiString Value);
	void __fastcall SetPathType(const TAHMShellRoots Value);
	bool __fastcall IsUserDefined(void);
	void __fastcall SetPathExtra(const System::AnsiString Value);
	Graphics::TIcon* __fastcall GetIcon(void);
	
protected:
	virtual System::AnsiString __fastcall GetDisplayName(void);
	
public:
	__fastcall virtual ~TAHMShortCut(void);
	__fastcall virtual TAHMShortCut(Classes::TCollection* Collection);
	virtual void __fastcall Assign(Classes::TPersistent* Source);
	__property TAHMShellLinks* Owner = {read=FAHMShellLinks};
	__property System::AnsiString DisplayName = {read=GetDisplayName};
	__property Graphics::TIcon* Icon = {read=GetIcon};
	
__published:
	__property bool AutoInstall = {read=FAutoInstall, write=FAutoInstall, default=0};
	__property System::AnsiString ShortCutName = {read=FShortCutName, write=SetShortCutName};
	__property TAHMShellRoots PathType = {read=FPathtype, write=SetPathType, default=0};
	__property System::AnsiString PathExtra = {read=FPathExtra, write=SetPathExtra};
	__property System::AnsiString Path = {read=FPath, write=SetPath, stored=IsUserDefined};
	__property TAHMShortCutDetails* Properties = {read=FProperties, write=FProperties};
};

class PASCALIMPLEMENTATION TAHMShortCutDetails : public Classes::TPersistent 
{
	typedef Classes::TPersistent inherited;
	
private:
	System::AnsiString FDescription;
	System::AnsiString FParameters;
	System::AnsiString FTargetFile;
	System::AnsiString FStartupDir;
	System::AnsiString FIconFile;
	Menus::TShortCut FShortCutKey;
	TWindowState FStartupState;
	int FIconIndex;
	TAHMShortCut* FOwner;
	
public:
	bool __fastcall Install(void);
	bool __fastcall Import(const System::AnsiString ShortCutShortCutName);
	__fastcall TAHMShortCutDetails(TAHMShortCut* AOwner);
	
__published:
	__property System::AnsiString Parameters = {read=FParameters, write=FParameters};
	__property System::AnsiString Description = {read=FDescription, write=FDescription};
	__property System::AnsiString IconFile = {read=FIconFile, write=FIconFile};
	__property int IconIndex = {read=FIconIndex, write=FIconIndex, default=0};
	__property System::AnsiString TargetFile = {read=FTargetFile, write=FTargetFile};
	__property System::AnsiString StartupDir = {read=FStartupDir, write=FStartupDir};
	__property Menus::TShortCut ShortCutKey = {read=FShortCutKey, write=FShortCutKey, default=0};
	__property Forms::TWindowState StartupState = {read=FStartupState, write=FStartupState, default=0};
		
public:
	/* TPersistent.Destroy */ __fastcall virtual ~TAHMShortCutDetails(void) { }
	
};

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

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