⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 acshellctrls.hpp

📁 I mComputermaster programmisDelphi+pascal
💻 HPP
📖 第 1 页 / 共 3 页
字号:
// Borland C++ Builder
// Copyright (c) 1995, 2002 by Borland Software Corporation
// All rights reserved

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

#ifndef acShellCtrlsHPP
#define acShellCtrlsHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <Menus.hpp>	// Pascal unit
#include <sListView.hpp>	// Pascal unit
#include <sConst.hpp>	// Pascal unit
#include <sTreeView.hpp>	// Pascal unit
#include <sComboBoxes.hpp>	// Pascal unit
#include <ImgList.hpp>	// Pascal unit
#include <StdCtrls.hpp>	// Pascal unit
#include <ActiveX.hpp>	// Pascal unit
#include <ShlObj.hpp>	// Pascal unit
#include <CommCtrl.hpp>	// Pascal unit
#include <ComCtrls.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 Acshellctrls
{
//-- type declarations -------------------------------------------------------
#pragma option push -b-
enum TacRootFolder { rfDesktop, rfMyComputer, rfNetwork, rfRecycleBin, rfAppData, rfCommonDesktopDirectory, rfCommonPrograms, rfCommonStartMenu, rfCommonStartup, rfControlPanel, rfDesktopDirectory, rfFavorites, rfFonts, rfInternet, rfPersonal, rfPrinters, rfPrintHood, rfPrograms, rfRecent, rfSendTo, rfStartMenu, rfStartup, rfTemplates };
#pragma option pop

#pragma option push -b-
enum TacShellFolderCapability { fcCanCopy, fcCanDelete, fcCanLink, fcCanMove, fcCanRename, fcDropTarget, fcHasPropSheet };
#pragma option pop

typedef Set<TacShellFolderCapability, fcCanCopy, fcHasPropSheet>  TacShellFolderCapabilities;

#pragma option push -b-
enum TacShellFolderProperty { fpCut, fpIsLink, fpReadOnly, fpShared, fpFileSystem, fpFileSystemAncestor, fpRemovable, fpValidate };
#pragma option pop

typedef Set<TacShellFolderProperty, fpCut, fpValidate>  TacShellFolderProperties;

#pragma option push -b-
enum TacShellObjectType { otFolders, otNonFolders, otHidden };
#pragma option pop

typedef Set<TacShellObjectType, otFolders, otHidden>  TacShellObjectTypes;

#pragma option push -b-
enum TacShowExtension { seSystem, seShow, seHide };
#pragma option pop

__interface IacShellCommandVerb;
typedef System::DelphiInterface<IacShellCommandVerb> _di_IacShellCommandVerb;
__interface INTERFACE_UUID("{7D2A7245-2376-4D33-8008-A130935A2E8B}") IacShellCommandVerb  : public IInterface 
{
	
public:
	virtual void __fastcall ExecuteCommand(AnsiString Verb, bool &Handled) = 0 ;
	virtual void __fastcall CommandCompleted(AnsiString Verb, bool Succeeded) = 0 ;
};

__interface IShellDetails;
typedef System::DelphiInterface<IShellDetails> _di_IShellDetails;
__interface INTERFACE_UUID("{000214EC-0000-0000-C000-000000000046}") IShellDetails  : public IInterface 
{
	
public:
	virtual HRESULT __stdcall GetDetailsOf(Shlobj::PItemIDList pidl, unsigned iColumn, _SHELLDETAILS &pDetails) = 0 ;
	virtual HRESULT __stdcall ColumnClick(unsigned iColumn) = 0 ;
};

__interface IDetInterface;
typedef System::DelphiInterface<IDetInterface> _di_IDetInterface;
__interface INTERFACE_UUID("{00000000-0000-0000-C000-000000000046}") IDetInterface  : public IInterface 
{
	
public:
	HIDESBASE virtual HRESULT __stdcall QueryInterface(const GUID &IID, /* out */ void *Obj) = 0 ;
	HIDESBASE virtual int __stdcall _AddRef(void) = 0 ;
	HIDESBASE virtual int __stdcall _Release(void) = 0 ;
};

class DELPHICLASS TacShellFolder;
class PASCALIMPLEMENTATION TacShellFolder : public System::TObject 
{
	typedef System::TObject inherited;
	
private:
	_ITEMIDLIST *FPIDL;
	_ITEMIDLIST *FFullPIDL;
	TacShellFolder* FParent;
	_di_IShellFolder FIShellFolder;
	_di_IShellFolder2 FIShellFolder2;
	_di_IShellDetails FIShellDetails;
	_di_IDetInterface FDetailInterface;
	int FLevel;
	unsigned FViewHandle;
	Classes::TStrings* FDetails;
	_di_IDetInterface __fastcall GetDetailInterface();
	_di_IShellDetails __fastcall GetShellDetails();
	_di_IShellFolder2 __fastcall GeTacShellFolder2();
	AnsiString __fastcall GetDetails(int Index);
	void __fastcall SetDetails(int Index, const AnsiString Value);
	void __fastcall LoadColumnDetails(TacShellFolder* RootFolder, unsigned Handle, int ColumnCount);
	
public:
	__fastcall virtual TacShellFolder(TacShellFolder* AParent, Shlobj::PItemIDList ID, _di_IShellFolder SF);
	__fastcall virtual ~TacShellFolder(void);
	TacShellFolderCapabilities __fastcall Capabilities(void);
	AnsiString __fastcall DisplayName(TacShowExtension ShowExt);
	int __fastcall ExecuteDefault(void);
	int __fastcall ImageIndex(bool LargeIcon);
	bool __fastcall IsFolder(const AnsiString Name = "", bool OpenZipFiles = true);
	bool __fastcall IsFileFolder(void);
	bool __fastcall IsFile(const AnsiString Name = "", bool OpenZipFiles = true);
	bool __fastcall IsReadOnly(void);
	_di_IShellFolder __fastcall ParenTacShellFolder();
	AnsiString __fastcall PathName();
	TacShellFolderProperties __fastcall Properties(void);
	bool __fastcall Rename(const WideString NewName);
	bool __fastcall SubFolders(void);
	__property Shlobj::PItemIDList AbsoluteID = {read=FFullPIDL};
	__property AnsiString Details[int Index] = {read=GetDetails, write=SetDetails};
	__property int Level = {read=FLevel, nodefault};
	__property TacShellFolder* Parent = {read=FParent};
	__property Shlobj::PItemIDList RelativeID = {read=FPIDL};
	__property _di_IShellFolder ShellFolder = {read=FIShellFolder};
	__property _di_IShellFolder2 ShellFolder2 = {read=GeTacShellFolder2};
	__property _di_IShellDetails ShellDetails = {read=GetShellDetails};
	__property unsigned ViewHandle = {read=FViewHandle, write=FViewHandle, nodefault};
};


#pragma option push -b-
enum TacNotifyFilter { nfFileNameChange, nfDirNameChange, nfAttributeChange, nfSizeChange, nfWriteChange, nfSecurityChange };
#pragma option pop

typedef Set<TacNotifyFilter, nfFileNameChange, nfSecurityChange>  TacNotifyFilters;

class DELPHICLASS TacShellChangeThread;
class PASCALIMPLEMENTATION TacShellChangeThread : public Classes::TThread 
{
	typedef Classes::TThread inherited;
	
private:
	int FMutex;
	int FWaitHandle;
	Classes::TThreadMethod FChangeEvent;
	AnsiString FDirectory;
	bool FWatchSubTree;
	bool FWaitChanged;
	unsigned FNotifyOptionFlags;
	
protected:
	virtual void __fastcall Execute(void);
	
public:
	__fastcall virtual TacShellChangeThread(Classes::TThreadMethod ChangeEvent);
	__fastcall virtual ~TacShellChangeThread(void);
	void __fastcall SetDirectoryOptions(const AnsiString Directory, bool WatchSubTree, unsigned NotifyOptionFlags);
	__property Classes::TThreadMethod ChangeEvent = {read=FChangeEvent, write=FChangeEvent};
};


class DELPHICLASS TacCustomShellChangeNotifier;
class PASCALIMPLEMENTATION TacCustomShellChangeNotifier : public Classes::TComponent 
{
	typedef Classes::TComponent inherited;
	
private:
	TacNotifyFilters FFilters;
	bool FWatchSubTree;
	AnsiString FRoot;
	TacShellChangeThread* FThread;
	Classes::TThreadMethod FOnChange;
	void __fastcall SetRoot(const AnsiString Value);
	void __fastcall SetWatchSubTree(const bool Value);
	void __fastcall SetFilters(const TacNotifyFilters Value);
	void __fastcall SetOnChange(const Classes::TThreadMethod Value);
	
protected:
	void __fastcall Change(void);
	void __fastcall Start(void);
	
public:
	__fastcall virtual TacCustomShellChangeNotifier(Classes::TComponent* AOwner);
	__fastcall virtual ~TacCustomShellChangeNotifier(void);
	__property TacNotifyFilters NotifyFilters = {read=FFilters, write=SetFilters, nodefault};
	__property AnsiString Root = {read=FRoot, write=SetRoot};
	__property bool WatchSubTree = {read=FWatchSubTree, write=SetWatchSubTree, nodefault};
	__property Classes::TThreadMethod OnChange = {read=FOnChange, write=SetOnChange};
};


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


typedef void __fastcall (__closure *TacAddFolderEvent)(System::TObject* Sender, TacShellFolder* AFolder, bool &CanAdd);

typedef void __fastcall (__closure *TacGetImageIndexEvent)(System::TObject* Sender, int Index, int &ImageIndex);

class DELPHICLASS TacCustomShellTreeView;
class DELPHICLASS TacCustomShellComboBox;
class DELPHICLASS TacCustomShellListView;
class PASCALIMPLEMENTATION TacCustomShellListView : public Slistview::TsCustomListView 
{
	typedef Slistview::TsCustomListView inherited;
	
private:
	AnsiString FOldRoot;
	AnsiString FRoot;
	TacShellFolder* FRootFolder;
	bool FAutoContext;
	bool FAutoRefresh;
	bool FAutoNavigate;
	bool FSorted;
	TacShellObjectTypes FObjectTypes;
	int FLargeImages;
	int FSmallImages;
	TacAddFolderEvent FOnAddFolder;
	Classes::TList* FFolders;
	TacCustomShellTreeView* FTreeView;
	TacCustomShellComboBox* FComboBox;
	TacShellChangeNotifier* FNotifier;
	Comctrls::TLVEditingEvent FOnEditing;
	bool FSettingRoot;
	AnsiString FSavePath;
	AnsiString FMask;
	TacShowExtension FShowExtension;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -