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

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

#ifndef ahmshellcallsHPP
#define ahmshellcallsHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <Messages.hpp>	// Pascal unit
#include <Dialogs.hpp>	// Pascal unit
#include <Menus.hpp>	// Pascal unit
#include <SysUtils.hpp>	// Pascal unit
#include <ahmshellobject.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 Ahmshellcalls
{
//-- type declarations -------------------------------------------------------
#pragma option push -b-
enum TAHMShellPathType { ptText, ptItemPath, ptFullPath, ptRename };
#pragma option pop

typedef int TAHMShellMenuResult;

typedef bool __fastcall (__closure *TAHMRenameProc)(void);

class DELPHICLASS IntMenuHandler;
class PASCALIMPLEMENTATION IntMenuHandler : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	HWND fIMHandle;
	
protected:
	void __fastcall WndProc(Messages::TMessage &AMsg);
	
public:
	_di_IContextMenu fContextMenu;
	_di_IContextMenu2 fContextMenu2;
	_di_IContextMenu3 fContextMenu3;
	__fastcall IntMenuHandler(void);
	__fastcall virtual ~IntMenuHandler(void);
	__property HWND IMHandle = {read=fIMHandle, nodefault};
	int __fastcall GetContextIndex(void);
};


//-- var, const, procedure ---------------------------------------------------
extern PACKAGE AnsiString __fastcall ShellGetNameFromItemID(Ahmshellobject::PItemIDList &ItemID);
extern PACKAGE AnsiString __stdcall ShellGetPath(System::TObject* ForItem, _di_IShellFolder PFolder, const Ahmshellobject::PItemIDList AItem, TAHMShellPathType Attr);
extern PACKAGE Ahmshellobject::PItemIDList __fastcall ShellGetItemIDFromPath(unsigned Handle, char * Path);
extern PACKAGE AnsiString __fastcall ShellGetFileTypeFromExt(AnsiString Ext);
extern PACKAGE AnsiString __fastcall ShellGetPathFromItemID(const Ahmshellobject::PItemIDList ItemID);
extern PACKAGE HRESULT __fastcall ShellGetFolderFromItemID(const Ahmshellobject::PItemIDList AbsolutePIDL, _di_IShellFolder &ShellFolder);
extern PACKAGE int __fastcall ShellGetIconIndex(const AnsiString AFile, unsigned Attrs);
extern PACKAGE HRESULT __fastcall ShellGetParentAndChild(unsigned Handle, /* out */ Ahmshellobject::PItemIDList &ParentAbsPIDL, /* out */ Ahmshellobject::PItemIDList &ChildRelPIDL);
extern PACKAGE AnsiString __fastcall GetStringPIDL(Ahmshellobject::PItemIDList Item1);
extern PACKAGE void __fastcall ShellFree(Ahmshellobject::PItemIDList AItemID);
extern PACKAGE TAHMShellMenuResult __fastcall ExecExplorerCmd(HWND AWindow, _di_IShellFolder AFolder, Ahmshellobject::PItemIDList &AItem, int AItemCount, AnsiString Cmd);

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

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