Name Description Size
7z
Archive.def 227
Archive2.def 362
ArchiveExports.cpp 4632
Common
DllExports2.cpp lpReserved 2561
IArchive.h IArchiveExtractCallback:: 7-Zip doesn't call IArchiveExtractCallback functions GetStream() PrepareOperation() SetOperationResult() from different threads simultaneously. But 7-Zip can call functions for IProgress or ICompressProgressInfo functions from another threads simultaneously with calls for IArchiveExtractCallback interface. IArchiveExtractCallback::GetStream() UInt32 index - index of item in Archive Int32 askExtractMode (Extract::NAskMode) if (askMode != NExtract::NAskMode::kExtract) { then the callee can not real stream: (*inStream == NULL) } Out: (*inStream == NULL) - for directories (*inStream == NULL) - if link (hard link or symbolic link) was created if (*inStream == NULL && askMode == NExtract::NAskMode::kExtract) { then the caller must skip extracting of that file. } returns: S_OK : OK S_FALSE : data error (for decoders) if (IProgress::SetTotal() was called) { IProgress::SetCompleted(completeValue) uses packSize - for some stream formats (xz, gz, bz2, lzma, z, ppmd). unpackSize - for another formats. } else { IProgress::SetCompleted(completeValue) uses packSize. } SetOperationResult() 7-Zip calls SetOperationResult at the end of extracting, so the callee can close the file, set attributes, timestamps and security information. Int32 opRes (NExtract::NOperationResult) 19010
Icons
LzmaHandler.cpp 14573
SplitHandler.cpp NCOM::CPropVariant prop; RINOK(volumeCallback->GetProperty(kpidSize, &prop)); if (prop.vt != VT_UI8) return E_INVALIDARG; size = prop.uhVal.QuadPart; 8603
StdAfx.h 101
XzHandler.cpp UInt32 flags, 30793
XzHandler.h 124