xref: /aosp_15_r20/external/lzma/CPP/7zip/UI/FileManager/FSDrives.h (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1 // FSDrives.h
2 
3 #ifndef ZIP7_INC_FS_DRIVES_H
4 #define ZIP7_INC_FS_DRIVES_H
5 
6 #include "../../../Common/MyCom.h"
7 #include "../../../Common/MyString.h"
8 
9 #include "IFolder.h"
10 
11 struct CDriveInfo
12 {
13   FString Name;
14   FString FullSystemName;
15   UInt64 DriveSize;
16   UInt64 FreeSpace;
17   UInt64 ClusterSize;
18   // UString Type;
19   UString VolumeName;
20   UString FileSystemName;
21   UINT DriveType;
22 
23   bool KnownSize;
24   bool KnownSizes;
25   bool IsPhysicalDrive;
26 
27   FString GetDeviceFileIoName() const;
CDriveInfoCDriveInfo28   CDriveInfo(): KnownSize(false), KnownSizes(false), IsPhysicalDrive(false) {}
29 };
30 
31 Z7_CLASS_IMP_NOQIB_3(
32   CFSDrives
33   , IFolderFolder
34   , IFolderOperations
35   , IFolderGetSystemIconIndex
36 )
37   CObjectVector<CDriveInfo> _drives;
38   bool _volumeMode;
39   bool _superMode;
40 
41   HRESULT BindToFolderSpec(CFSTR name, IFolderFolder **resultFolder);
42   void AddExt(FString &s, unsigned index) const;
43   HRESULT GetFileSize(unsigned index, UInt64 &fileSize) const;
44 public:
45   void Init(bool volMode = false, bool superMode = false)
46   {
47     _volumeMode = volMode;
48     _superMode = superMode;
49   }
50 };
51 
52 #endif
53