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

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

#ifndef ahmshelllinksHPP
#define ahmshelllinksHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <ahmshellclass.hpp>	// Pascal unit
#include <ahmshellconst.hpp>	// Pascal unit
#include <ShellAPI.hpp>	// Pascal unit
#include <Menus.hpp>	// Pascal unit
#include <ComObj.hpp>	// Pascal unit
#include <ActiveX.hpp>	// Pascal unit
#include <ShlObj.hpp>	// Pascal unit
#include <Dialogs.hpp>	// Pascal unit
#include <Forms.hpp>	// Pascal unit
#include <Controls.hpp>	// Pascal unit
#include <Graphics.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <SysUtils.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 Ahmshelllinks
{
//-- type declarations -------------------------------------------------------
#pragma option push -b-
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 };
#pragma option pop

class DELPHICLASS TAHMShortCutDetails;
class DELPHICLASS TAHMShortCut;
class DELPHICLASS TAHMShellLinks;
class DELPHICLASS TAHMShortCuts;
class PASCALIMPLEMENTATION TAHMShortCuts : public Ahmshellclass::TAHMShellCollection 
{
	typedef Ahmshellclass::TAHMShellCollection inherited;
	
public:
	TAHMShortCut* operator[](int Index) { return Items[Index]; }
	
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);
	HIDESBASE bool __fastcall Delete(int Index);
	__property TAHMShortCut* Items[int Index] = {read=GetAHMShortCut, write=SetAHMShortCut/*, default*/};
public:
	#pragma option push -w-inl
	/* TCollection.Destroy */ inline __fastcall virtual ~TAHMShortCuts(void) { }
	#pragma option pop
	
};


class PASCALIMPLEMENTATION TAHMShellLinks : public Ahmshellclass::TAHMShellComponent 
{
	typedef Ahmshellclass::TAHMShellComponent 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(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:
	AnsiString FShortCutName;
	AnsiString FPath;
	TAHMShellRoots FPathtype;
	TAHMShortCutDetails* FProperties;
	bool FAutoInstall;
	TAHMShellLinks* FAHMShellLinks;
	AnsiString FPathExtra;
	void __fastcall SetShortCutName(const AnsiString Value);
	void __fastcall SetPath(const AnsiString Value);
	void __fastcall SetPathType(const TAHMShellRoots Value);
	bool __fastcall IsUserDefined(void);
	void __fastcall SetPathExtra(const AnsiString Value);
	Graphics::TIcon* __fastcall GetIcon(void);
	
protected:
	virtual AnsiString __fastcall GetDisplayName();
	
public:
	__fastcall virtual ~TAHMShortCut(void);
	__fastcall virtual TAHMShortCut(Classes::TCollection* Collection);
	virtual void __fastcall Assign(Classes::TPersistent* Source);
	__property TAHMShellLinks* Owner = {read=FAHMShellLinks};
	__property AnsiString DisplayName = {read=GetDisplayName};
	__property Graphics::TIcon* Icon = {read=GetIcon};
	
__published:
	__property bool AutoInstall = {read=FAutoInstall, write=FAutoInstall, default=0};
	__property AnsiString ShortCutName = {read=FShortCutName, write=SetShortCutName};
	__property TAHMShellRoots PathType = {read=FPathtype, write=SetPathType, default=0};
	__property AnsiString PathExtra = {read=FPathExtra, write=SetPathExtra};
	__property 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:
	AnsiString FDescription;
	AnsiString FParameters;
	AnsiString FTargetFile;
	AnsiString FStartupDir;
	AnsiString FIconFile;
	Classes::TShortCut FShortCutKey;
	Forms::TWindowState FStartupState;
	int FIconIndex;
	TAHMShortCut* FOwner;
	
public:
	bool __fastcall Install(void);
	bool __fastcall Import(const AnsiString ShortCutShortCutName);
	__fastcall TAHMShortCutDetails(TAHMShortCut* AOwner);
	
__published:
	__property AnsiString Parameters = {read=FParameters, write=FParameters};
	__property AnsiString Description = {read=FDescription, write=FDescription};
	__property AnsiString IconFile = {read=FIconFile, write=FIconFile};
	__property int IconIndex = {read=FIconIndex, write=FIconIndex, default=0};
	__property AnsiString TargetFile = {read=FTargetFile, write=FTargetFile};
	__property AnsiString StartupDir = {read=FStartupDir, write=FStartupDir};
	__property Classes::TShortCut ShortCutKey = {read=FShortCutKey, write=FShortCutKey, default=0};
	__property Forms::TWindowState StartupState = {read=FStartupState, write=FStartupState, default=0};
public:
	#pragma option push -w-inl
	/* TPersistent.Destroy */ inline __fastcall virtual ~TAHMShortCutDetails(void) { }
	#pragma option pop
	
};


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

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

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