| // 7z/7zHeader.h | |
| #ifndef __7Z_HEADER_H | |
| #define __7Z_HEADER_H | |
| #include "../../../Common/MyTypes.h" | |
| namespace NArchive { | |
| namespace N7z { | |
| const unsigned kSignatureSize = 6; | |
| extern Byte kSignature[kSignatureSize]; | |
| // #define _7Z_VOL | |
| // 7z-MultiVolume is not finished yet. | |
| // It can work already, but I still do not like some | |
| // things of that new multivolume format. | |
| // So please keep it commented. | |
| #ifdef _7Z_VOL | |
| extern Byte kFinishSignature[kSignatureSize]; | |
| #endif | |
| struct CArchiveVersion | |
| { | |
| Byte Major; | |
| Byte Minor; | |
| }; | |
| const Byte kMajorVersion = 0; | |
| struct CStartHeader | |
| { | |
| UInt64 NextHeaderOffset; | |
| UInt64 NextHeaderSize; | |
| UInt32 NextHeaderCRC; | |
| }; | |
| const UInt32 kStartHeaderSize = 20; | |
| #ifdef _7Z_VOL | |
| struct CFinishHeader: public CStartHeader | |
| { | |
| UInt64 ArchiveStartOffset; // data offset from end if that struct | |
| UInt64 AdditionalStartBlockSize; // start signature & start header size | |
| }; | |
| const UInt32 kFinishHeaderSize = kStartHeaderSize + 16; | |
| #endif | |
| namespace NID | |
| { | |
| enum EEnum | |
| { | |
| kEnd, | |
| kHeader, | |
| kArchiveProperties, | |
| kAdditionalStreamsInfo, | |
| kMainStreamsInfo, | |
| kFilesInfo, | |
| kPackInfo, | |
| kUnpackInfo, | |
| kSubStreamsInfo, | |
| kSize, | |
| kCRC, | |
| kFolder, | |
| kCodersUnpackSize, | |
| kNumUnpackStream, | |
| kEmptyStream, | |
| kEmptyFile, | |
| kAnti, | |
| kName, | |
| kCTime, | |
| kATime, | |
| kMTime, | |
| kWinAttrib, | |
| kComment, | |
| kEncodedHeader, | |
| kStartPos, | |
| kDummy | |
| // kNtSecure, | |
| // kParent, | |
| // kIsAux | |
| }; | |
| } | |
| }} | |
| #endif |