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