亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 7zin.h

?? 壓縮解壓工具7-zip源代碼
?? H
字號:
// 7zIn.h

#ifndef __7Z_IN_H
#define __7Z_IN_H

#include "../../../Common/MyCom.h"

#include "../../IPassword.h"
#include "../../IStream.h"

#include "../../Common/CreateCoder.h"
#include "../../Common/InBuffer.h"

#include "7zItem.h"
 
namespace NArchive {
namespace N7z {
  
struct CInArchiveInfo
{
  CArchiveVersion Version;
  UInt64 StartPosition;
  UInt64 StartPositionAfterHeader;
  UInt64 DataStartPosition;
  UInt64 DataStartPosition2;
  CRecordVector<UInt64> FileInfoPopIDs;
  void Clear()
  {
    FileInfoPopIDs.Clear();
  }
};

struct CArchiveDatabaseEx: public CArchiveDatabase
{
  CInArchiveInfo ArchiveInfo;
  CRecordVector<UInt64> PackStreamStartPositions;
  CRecordVector<CNum> FolderStartPackStreamIndex;
  CRecordVector<CNum> FolderStartFileIndex;
  CRecordVector<CNum> FileIndexToFolderIndexMap;

  UInt64 HeadersSize;
  UInt64 PhySize;

  void Clear()
  {
    CArchiveDatabase::Clear();
    ArchiveInfo.Clear();
    PackStreamStartPositions.Clear();
    FolderStartPackStreamIndex.Clear();
    FolderStartFileIndex.Clear();
    FileIndexToFolderIndexMap.Clear();

    HeadersSize = 0;
    PhySize = 0;
  }

  void FillFolderStartPackStream();
  void FillStartPos();
  void FillFolderStartFileIndex();

  void Fill()
  {
    FillFolderStartPackStream();
    FillStartPos();
    FillFolderStartFileIndex();
  }
  
  UInt64 GetFolderStreamPos(int folderIndex, int indexInFolder) const
  {
    return ArchiveInfo.DataStartPosition +
        PackStreamStartPositions[FolderStartPackStreamIndex[folderIndex] + indexInFolder];
  }
  
  UInt64 GetFolderFullPackSize(int folderIndex) const
  {
    CNum packStreamIndex = FolderStartPackStreamIndex[folderIndex];
    const CFolder &folder = Folders[folderIndex];
    UInt64 size = 0;
    for (int i = 0; i < folder.PackStreams.Size(); i++)
      size += PackSizes[packStreamIndex + i];
    return size;
  }
  
  UInt64 GetFolderPackStreamSize(int folderIndex, int streamIndex) const
  {
    return PackSizes[FolderStartPackStreamIndex[folderIndex] + streamIndex];
  }

  UInt64 GetFilePackSize(CNum fileIndex) const
  {
    CNum folderIndex = FileIndexToFolderIndexMap[fileIndex];
    if (folderIndex != kNumNoIndex)
      if (FolderStartFileIndex[folderIndex] == fileIndex)
        return GetFolderFullPackSize(folderIndex);
    return 0;
  }
};

class CInByte2
{
  const Byte *_buffer;
  size_t _size;
public:
  size_t _pos;
  void Init(const Byte *buffer, size_t size)
  {
    _buffer = buffer;
    _size = size;
    _pos = 0;
  }
  Byte ReadByte();
  void ReadBytes(Byte *data, size_t size);
  void SkeepData(UInt64 size);
  void SkeepData();
  UInt64 ReadNumber();
  CNum ReadNum();
  UInt32 ReadUInt32();
  UInt64 ReadUInt64();
  void ReadString(UString &s);
};

class CStreamSwitch;

const UInt32 kHeaderSize = 32;

class CInArchive
{
  friend class CStreamSwitch;

  CMyComPtr<IInStream> _stream;

  CObjectVector<CInByte2> _inByteVector;
  CInByte2 *_inByteBack;
 
  UInt64 _arhiveBeginStreamPosition;

  Byte _header[kHeaderSize];

  UInt64 HeadersSize;

  void AddByteStream(const Byte *buffer, size_t size)
  {
    _inByteVector.Add(CInByte2());
    _inByteBack = &_inByteVector.Back();
    _inByteBack->Init(buffer, size);
  }
  
  void DeleteByteStream()
  {
    _inByteVector.DeleteBack();
    if (!_inByteVector.IsEmpty())
      _inByteBack = &_inByteVector.Back();
  }

private:
  HRESULT FindAndReadSignature(IInStream *stream, const UInt64 *searchHeaderSizeLimit);
  
  void ReadBytes(Byte *data, size_t size) { _inByteBack->ReadBytes(data, size); }
  Byte ReadByte() { return _inByteBack->ReadByte(); }
  UInt64 ReadNumber() { return _inByteBack->ReadNumber(); }
  CNum ReadNum() { return _inByteBack->ReadNum(); }
  UInt64 ReadID() { return _inByteBack->ReadNumber(); }
  UInt32 ReadUInt32() { return _inByteBack->ReadUInt32(); }
  UInt64 ReadUInt64() { return _inByteBack->ReadUInt64(); }
  void SkeepData(UInt64 size) { _inByteBack->SkeepData(size); }
  void SkeepData() { _inByteBack->SkeepData(); }
  void WaitAttribute(UInt64 attribute);

  void ReadArchiveProperties(CInArchiveInfo &archiveInfo);
  void GetNextFolderItem(CFolder &itemInfo);
  void ReadHashDigests(int numItems,
      CBoolVector &digestsDefined, CRecordVector<UInt32> &digests);
  
  void ReadPackInfo(
      UInt64 &dataOffset,
      CRecordVector<UInt64> &packSizes,
      CBoolVector &packCRCsDefined,
      CRecordVector<UInt32> &packCRCs);
  
  void ReadUnpackInfo(
      const CObjectVector<CByteBuffer> *dataVector,
      CObjectVector<CFolder> &folders);
  
  void ReadSubStreamsInfo(
      const CObjectVector<CFolder> &folders,
      CRecordVector<CNum> &numUnpackStreamsInFolders,
      CRecordVector<UInt64> &unpackSizes,
      CBoolVector &digestsDefined,
      CRecordVector<UInt32> &digests);

  void ReadStreamsInfo(
      const CObjectVector<CByteBuffer> *dataVector,
      UInt64 &dataOffset,
      CRecordVector<UInt64> &packSizes,
      CBoolVector &packCRCsDefined,
      CRecordVector<UInt32> &packCRCs,
      CObjectVector<CFolder> &folders,
      CRecordVector<CNum> &numUnpackStreamsInFolders,
      CRecordVector<UInt64> &unpackSizes,
      CBoolVector &digestsDefined,
      CRecordVector<UInt32> &digests);


  void ReadBoolVector(int numItems, CBoolVector &v);
  void ReadBoolVector2(int numItems, CBoolVector &v);
  void ReadUInt64DefVector(const CObjectVector<CByteBuffer> &dataVector,
      CUInt64DefVector &v, int numFiles);
  HRESULT ReadAndDecodePackedStreams(
      DECL_EXTERNAL_CODECS_LOC_VARS
      UInt64 baseOffset, UInt64 &dataOffset,
      CObjectVector<CByteBuffer> &dataVector
      #ifndef _NO_CRYPTO
      , ICryptoGetTextPassword *getTextPassword, bool &passwordIsDefined
      #endif
      );
  HRESULT ReadHeader(
      DECL_EXTERNAL_CODECS_LOC_VARS
      CArchiveDatabaseEx &db
      #ifndef _NO_CRYPTO
      ,ICryptoGetTextPassword *getTextPassword, bool &passwordIsDefined
      #endif
      );
  HRESULT ReadDatabase2(
      DECL_EXTERNAL_CODECS_LOC_VARS
      CArchiveDatabaseEx &db
      #ifndef _NO_CRYPTO
      ,ICryptoGetTextPassword *getTextPassword, bool &passwordIsDefined
      #endif
      );
public:
  HRESULT Open(IInStream *stream, const UInt64 *searchHeaderSizeLimit); // S_FALSE means is not archive
  void Close();

  HRESULT ReadDatabase(
      DECL_EXTERNAL_CODECS_LOC_VARS
      CArchiveDatabaseEx &db
      #ifndef _NO_CRYPTO
      ,ICryptoGetTextPassword *getTextPassword, bool &passwordIsDefined
      #endif
      );
};
  
}}
  
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩和欧美的一区| 欧美手机在线视频| 欧美在线影院一区二区| 26uuu国产在线精品一区二区| 亚洲女女做受ⅹxx高潮| 国产激情精品久久久第一区二区 | 日韩精品一区二区三区四区视频| 中文字幕一区二区三| 青青草国产成人av片免费| 在线国产亚洲欧美| 《视频一区视频二区| 国产综合久久久久久久久久久久 | 成人三级在线视频| 日韩欧美亚洲国产精品字幕久久久| 亚洲欧洲精品一区二区精品久久久| 免费成人在线播放| 欧美一区二区在线看| 亚洲国产一区二区视频| 91福利视频在线| 亚洲色图第一区| 99国产麻豆精品| 国产精品毛片高清在线完整版 | 国产精品热久久久久夜色精品三区 | 欧美三级电影精品| 日韩理论电影院| 99久久国产综合精品麻豆| 国产精品久久久久久久久免费丝袜| 国产一区二区成人久久免费影院 | 狠狠色综合日日| 91精品福利在线一区二区三区 | 视频在线观看一区| 欧美三区免费完整视频在线观看| 最新高清无码专区| 色综合天天综合网天天看片| 亚洲女女做受ⅹxx高潮| 日本久久电影网| 性做久久久久久久免费看| 欧美日韩综合不卡| 日韩中文字幕亚洲一区二区va在线| 欧美日韩成人高清| 另类欧美日韩国产在线| 久久亚洲精精品中文字幕早川悠里 | 91视频免费播放| 亚洲乱码国产乱码精品精小说 | 国产精品女同互慰在线看| 北条麻妃国产九九精品视频| 国产精品污网站| 欧美亚洲一区三区| 青椒成人免费视频| 国产精品丝袜黑色高跟| 在线欧美日韩国产| 激情综合五月婷婷| 国产精品久久久久三级| 欧美日韩精品一区二区天天拍小说 | 久久久www成人免费毛片麻豆| 国产精品自在欧美一区| 亚洲人成影院在线观看| 欧美高清www午色夜在线视频| 国产尤物一区二区| 亚洲自拍偷拍欧美| 久久综合九色综合欧美就去吻| 岛国一区二区在线观看| 香蕉成人啪国产精品视频综合网| 精品88久久久久88久久久| 91麻豆免费观看| 久久精品二区亚洲w码| 国产精品国产三级国产三级人妇| 欧美三级电影在线观看| 风间由美中文字幕在线看视频国产欧美 | 美女国产一区二区| 18成人在线观看| 欧美变态口味重另类| 91视视频在线直接观看在线看网页在线看 | 欧美精品日日鲁夜夜添| 成人激情黄色小说| 免费在线看一区| 亚洲欧美福利一区二区| 精品国产凹凸成av人导航| 91久久一区二区| 国内精品伊人久久久久av影院| 一级做a爱片久久| 国产欧美综合在线| 91精品免费观看| 色综合久久久久综合体桃花网| 国产综合色精品一区二区三区| 亚洲成人动漫精品| **欧美大码日韩| 久久亚洲一区二区三区明星换脸| 在线观看免费亚洲| 国产91清纯白嫩初高中在线观看| 久久福利资源站| 日韩中文字幕麻豆| 亚洲一区二区三区视频在线 | 日韩不卡在线观看日韩不卡视频| 国产精品久久久久一区| 久久一区二区三区四区| 欧美一卡二卡三卡| 欧美精品自拍偷拍动漫精品| 99久久精品国产毛片| 波多野结衣中文一区| 国产精品一区二区久激情瑜伽| 日本最新不卡在线| 欧美aaaaa成人免费观看视频| 性感美女久久精品| 亚洲成人av中文| 亚洲成a人v欧美综合天堂| 一区二区三区国产豹纹内裤在线| 亚洲男女一区二区三区| 亚洲同性同志一二三专区| 自拍偷拍亚洲欧美日韩| 国产精品久久久久久久久免费樱桃 | 在线亚洲高清视频| 欧美亚洲动漫精品| 欧美日韩精品一区二区三区蜜桃| 日本高清成人免费播放| 欧美日韩亚洲综合| 欧美精品一卡两卡| 91精品国产综合久久精品| 日韩一区二区三区三四区视频在线观看 | 91精品福利视频| 在线观看视频91| 欧美视频精品在线| 欧美一区二区三区成人| 日韩欧美国产一二三区| 久久久青草青青国产亚洲免观| 久久尤物电影视频在线观看| 久久精品亚洲乱码伦伦中文| 中文字幕免费不卡在线| 亚洲激情男女视频| 日韩精品免费视频人成| 国产真实乱子伦精品视频| 成人小视频在线| 欧美性猛交xxxx乱大交退制版| 日韩一区二区电影网| 国产日韩综合av| 亚洲一区国产视频| 免费成人性网站| 欧美一区二区三区视频在线观看 | 国产福利一区二区三区视频在线 | 久久久不卡影院| 亚洲人成亚洲人成在线观看图片| 亚洲黄色小视频| 九九九精品视频| 99riav久久精品riav| 欧美区在线观看| 国产日产精品一区| 五月开心婷婷久久| 国产黄人亚洲片| 欧美日韩国产在线观看| 欧美韩日一区二区三区四区| 一区二区三区欧美| 国产在线看一区| 在线观看一区日韩| 国产日韩精品一区二区浪潮av| 一级女性全黄久久生活片免费| 国产在线视频一区二区三区| 91黄视频在线| 欧美国产在线观看| 三级成人在线视频| 色综合咪咪久久| 国产欧美精品日韩区二区麻豆天美| 亚洲妇女屁股眼交7| 成人av一区二区三区| 日韩视频在线永久播放| 一区二区欧美国产| 成人精品鲁一区一区二区| 欧美福利一区二区| 亚洲猫色日本管| 成人久久视频在线观看| 欧美一区二区三区四区高清| 亚洲乱码中文字幕| 国产91精品精华液一区二区三区| 欧美日韩高清不卡| 一区二区三区日韩欧美| 国产精品小仙女| www一区二区| 免费人成精品欧美精品| 欧美性猛交xxxxxx富婆| 中文字幕欧美一| 成人毛片老司机大片| 久久久另类综合| 韩国精品主播一区二区在线观看| 欧美理论电影在线| 一区二区成人在线| 91精品福利视频| 亚洲欧洲美洲综合色网| 成人综合在线视频| 欧美国产精品劲爆| 国产成人福利片| 日本一区二区免费在线| 国产精品一区二区久激情瑜伽 | 亚洲天堂久久久久久久| 成人毛片视频在线观看| 国产精品网曝门| fc2成人免费人成在线观看播放 | www欧美成人18+| 精品夜夜嗨av一区二区三区| 欧美成人精品福利| 国产一区二区三区在线观看精品| 精品国产99国产精品|