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

📄 acshellctrls.hpp

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

// (DO NOT EDIT: machine generated header) 'Acshellctrls.pas' rev: 20.00

#ifndef AcshellctrlsHPP
#define AcshellctrlsHPP

#pragma delphiheader begin
#pragma option push
#pragma option -w-      // All warnings off
#pragma option -Vx      // Zero-length empty class member functions
#pragma pack(push,8)
#include <System.hpp>	// Pascal unit
#include <Sysinit.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <Messages.hpp>	// Pascal unit
#include <Sysutils.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Graphics.hpp>	// Pascal unit
#include <Controls.hpp>	// Pascal unit
#include <Forms.hpp>	// Pascal unit
#include <Dialogs.hpp>	// Pascal unit
#include <Comctrls.hpp>	// Pascal unit
#include <Commctrl.hpp>	// Pascal unit
#include <Shlobj.hpp>	// Pascal unit
#include <Activex.hpp>	// Pascal unit
#include <Stdctrls.hpp>	// Pascal unit
#include <Imglist.hpp>	// Pascal unit
#include <Scomboboxes.hpp>	// Pascal unit
#include <Streeview.hpp>	// Pascal unit
#include <Sconst.hpp>	// Pascal unit
#include <Slistview.hpp>	// Pascal unit
#include <Menus.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 System::IInterface 
{
	
public:
	virtual void __fastcall ExecuteCommand(System::UnicodeString Verb, bool &Handled) = 0 ;
	virtual void __fastcall CommandCompleted(System::UnicodeString Verb, bool Succeeded) = 0 ;
};

__interface IShellDetails;
typedef System::DelphiInterface<IShellDetails> _di_IShellDetails;
__interface  INTERFACE_UUID("{000214EC-0000-0000-C000-000000000046}") IShellDetails  : public System::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 System::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();
	System::UnicodeString __fastcall GetDetails(int Index);
	void __fastcall SetDetails(int Index, const System::UnicodeString 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);
	System::UnicodeString __fastcall DisplayName(TacShowExtension ShowExt);
	int __fastcall ExecuteDefault(void);
	int __fastcall ImageIndex(bool LargeIcon);
	bool __fastcall IsFolder(const System::UnicodeString Name = L"", bool OpenZipFiles = true);
	bool __fastcall IsFileFolder(void);
	bool __fastcall IsFile(const System::UnicodeString Name = L"", bool OpenZipFiles = true);
	bool __fastcall IsReadOnly(void);
	_di_IShellFolder __fastcall ParenTacShellFolder();
	System::UnicodeString __fastcall PathName();
	TacShellFolderProperties __fastcall Properties(void);
	bool __fastcall Rename(const System::WideString NewName);
	bool __fastcall SubFolders(void);
	__property Shlobj::PItemIDList AbsoluteID = {read=FFullPIDL};
	__property System::UnicodeString 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;
	System::UnicodeString 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 System::UnicodeString 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;
	Sconst::TacRoot FRoot;
	TacShellChangeThread* FThread;
	Classes::TThreadMethod FOnChange;
	void __fastcall SetRoot(const Sconst::TacRoot 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 Sconst::TacRoot 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:
	/* TacCustomShellChangeNotifier.Create */ inline __fastcall virtual TacShellChangeNotifier(Classes::TComponent* AOwner) : TacCustomShellChangeNotifier(AOwner) { }
	/* TacCustomShellChangeNotifier.Destroy */ inline __fastcall virtual ~TacShellChangeNotifier(void) { }
	
};


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 TacCustomShellTreeView : public Streeview::TsTreeView
{
	typedef Streeview::TsTreeView inherited;
	
public:
	TacShellFolder* operator[](int Index) { return Folders[Index]; }
	
private:
	Sconst::TacRoot FRoot;
	Sconst::TacRoot FOldRoot;
	TacShellFolder* FRootFolder;
	TacShellObjectTypes FObjectTypes;
	int FImage;
	bool FLoadingRoot;
	bool FAutoContext;
	bool FUpdating;
	TacCustomShellComboBox* FComboBox;
	TacCustomShellListView* FListView;
	bool FAutoRefresh;
	bool FImageListChanging;
	bool FUseShellImages;
	TacShellChangeNotifier* FNotifier;

⌨️ 快捷键说明

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