⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 arjheader.h

📁 7-Zip 3.11的源码
💻 H
字号:
// 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

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -