📄 acshellctrls.hpp
字号:
// 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 + -