17
17
STATPROPSTG StatPROPSTG;
22
22
{ NID::kName, NULL, kpidPath, VT_BSTR},
23
23
{ NID::kSize, NULL, kpidSize, VT_UI8},
24
{ NID::kPackInfo, NULL, kpidPackedSize, VT_UI8},
24
{ NID::kPackInfo, NULL, kpidPackSize, VT_UI8},
27
27
{ 100, L"Pack0", kpidPackedSize0, VT_UI8},
31
31
{ 104, L"Pack4", kpidPackedSize4, VT_UI8},
34
{ NID::kCreationTime, NULL, kpidCreationTime, VT_FILETIME},
35
{ NID::kLastWriteTime, NULL, kpidLastWriteTime, VT_FILETIME},
36
{ NID::kLastAccessTime, NULL, kpidLastAccessTime, VT_FILETIME},
37
{ NID::kWinAttributes, NULL, kpidAttributes, VT_UI4},
34
{ NID::kCTime, NULL, kpidCTime, VT_FILETIME},
35
{ NID::kMTime, NULL, kpidMTime, VT_FILETIME},
36
{ NID::kATime, NULL, kpidATime, VT_FILETIME},
37
{ NID::kWinAttributes, NULL, kpidAttrib, VT_UI4},
38
38
{ NID::kStartPos, NULL, kpidPosition, VT_UI4},
40
40
{ NID::kCRC, NULL, kpidCRC, VT_UI4},
61
static void CopyOneItem(CRecordVector<UInt64> &src,
61
static void CopyOneItem(CRecordVector<UInt64> &src,
62
62
CRecordVector<UInt64> &dest, UInt32 item)
64
64
for (int i = 0; i < src.Size(); i++)
94
94
void CHandler::FillPopIDs()
96
96
_fileInfoPopIDs.Clear();
99
99
if(_volumes.Size() < 1)
101
101
const CVolume &volume = _volumes.Front();
102
const CArchiveDatabaseEx &_database = volume.Database;
102
const CArchiveDatabaseEx &_db = volume.Database;
105
CRecordVector<UInt64> fileInfoPopIDs = _database.ArchiveInfo.FileInfoPopIDs;
105
CRecordVector<UInt64> fileInfoPopIDs = _db.ArchiveInfo.FileInfoPopIDs;
107
107
RemoveOneItem(fileInfoPopIDs, NID::kEmptyStream);
108
108
RemoveOneItem(fileInfoPopIDs, NID::kEmptyFile);
111
111
CopyOneItem(fileInfoPopIDs, _fileInfoPopIDs, NID::kAnti);
112
112
CopyOneItem(fileInfoPopIDs, _fileInfoPopIDs, NID::kSize);
113
113
CopyOneItem(fileInfoPopIDs, _fileInfoPopIDs, NID::kPackInfo);
114
CopyOneItem(fileInfoPopIDs, _fileInfoPopIDs, NID::kCreationTime);
115
CopyOneItem(fileInfoPopIDs, _fileInfoPopIDs, NID::kLastWriteTime);
116
CopyOneItem(fileInfoPopIDs, _fileInfoPopIDs, NID::kLastAccessTime);
114
CopyOneItem(fileInfoPopIDs, _fileInfoPopIDs, NID::kCTime);
115
CopyOneItem(fileInfoPopIDs, _fileInfoPopIDs, NID::kMTime);
116
CopyOneItem(fileInfoPopIDs, _fileInfoPopIDs, NID::kATime);
117
117
CopyOneItem(fileInfoPopIDs, _fileInfoPopIDs, NID::kWinAttributes);
118
118
CopyOneItem(fileInfoPopIDs, _fileInfoPopIDs, NID::kCRC);
119
119
CopyOneItem(fileInfoPopIDs, _fileInfoPopIDs, NID::kComment);
120
_fileInfoPopIDs += fileInfoPopIDs;
120
_fileInfoPopIDs += fileInfoPopIDs;
123
123
_fileInfoPopIDs.Add(97);
136
InsertToHead(_fileInfoPopIDs, NID::kLastWriteTime);
136
InsertToHead(_fileInfoPopIDs, NID::kMTime);
137
137
InsertToHead(_fileInfoPopIDs, NID::kPackInfo);
138
138
InsertToHead(_fileInfoPopIDs, NID::kSize);
139
139
InsertToHead(_fileInfoPopIDs, NID::kName);