Files
easy7zip/7zip/Archive/Arj/ArjHeader.h
Igor Pavlov 8c1b5c7b7e 3.13
2016-05-28 00:15:41 +01:00

125 lines
2.3 KiB
C++
Executable File

// Archive/Arj/Header.h
#pragma once
#ifndef __ARCHIVE_ARJ_HEADER_H
#define __ARCHIVE_ARJ_HEADER_H
#include "Common/Types.h"
namespace NArchive {
namespace NArj {
const int kMaxBlockSize = 2600;
namespace NSignature
{
const BYTE kSig0 = 0x60;
const BYTE kSig1 = 0xEA;
}
#pragma pack( push, Pragma_Arj_Headers)
#pragma pack( push, 1)
struct CArchiveHeader
{
// UINT16 BasicHeaderSize;
BYTE FirstHeaderSize;
BYTE Version;
BYTE ExtractVersion;
BYTE HostOS;
BYTE Flags;
BYTE SecuryVersion;
BYTE FileType;
BYTE Reserved;
UINT32 CreatedTime;
UINT32 ModifiedTime;
UINT32 ArchiveSize;
UINT32 SecurityEnvelopeFilePosition;
UINT16 FilespecPositionInFilename;
UINT16 LengthOfSecurityEnvelopeSata;
BYTE EncryptionVersion;
BYTE LastChapter;
};
namespace NFileHeader
{
namespace NCompressionMethod
{
enum EType
{
kStored = 0,
kCompressed1a = 1,
kCompressed1b = 2,
kCompressed1c = 3,
kCompressed2 = 4,
kNoDataNoCRC = 8,
kNoData = 9,
};
}
namespace NFileType
{
enum EType
{
kBinary = 0,
k7BitText = 1,
kDirectory = 3,
kVolumeLablel = 4,
kChapterLabel = 5,
};
}
namespace NFlags
{
const BYTE kGarbled = 1;
const BYTE kVolume = 4;
const BYTE kExtFile = 8;
const BYTE kPathSym = 0x10;
const BYTE kBackup= 0x20;
}
struct CHeader
{
BYTE FirstHeaderSize;
BYTE Version;
BYTE ExtractVersion;
BYTE HostOS;
BYTE Flags;
BYTE Method;
BYTE FileType;
BYTE Reserved;
UINT32 ModifiedTime;
UINT32 PackSize;
UINT32 Size;
UINT32 FileCRC;
UINT16 FilespecPositionInFilename;
UINT16 FileAccessMode;
BYTE FirstChapter;
BYTE LastChapter;
};
namespace NHostOS
{
enum EEnum
{
kMSDOS = 0, // filesystem used by MS-DOS, OS/2, Win32
// pkarj 2.50 (FAT / VFAT / FAT32 file systems)
kPRIMOS = 1,
kUnix = 2, // VAX/VMS
kAMIGA = 3,
kMac = 4,
kOS_2 = 5, // what if it's a minix filesystem? [cjh]
kAPPLE_GS = 6, // filesystem used by OS/2 (and NT 3.x)
kAtari_ST = 7,
kNext = 8,
kVAX_VMS = 9,
kWIN95 = 10
};
}
}
#pragma pack(pop)
#pragma pack(pop, Pragma_Arj_Headers)
}}
#endif