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

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

?? 7zfolderoutstream.cpp

?? 壓縮解壓工具7-zip源代碼
?? CPP
字號:
// 7zFolderOutStream.cpp

#include "StdAfx.h"

#include "7zFolderOutStream.h"

namespace NArchive {
namespace N7z {

CFolderOutStream::CFolderOutStream()
{
  _outStreamWithHashSpec = new COutStreamWithCRC;
  _outStreamWithHash = _outStreamWithHashSpec;
}

HRESULT CFolderOutStream::Init(
    const CArchiveDatabaseEx *archiveDatabase,
    UInt32 ref2Offset,
    UInt32 startIndex,
    const CBoolVector *extractStatuses,
    IArchiveExtractCallback *extractCallback,
    bool testMode,
    bool checkCrc)
{
  _archiveDatabase = archiveDatabase;
  _ref2Offset = ref2Offset;
  _startIndex = startIndex;

  _extractStatuses = extractStatuses;
  _extractCallback = extractCallback;
  _testMode = testMode;

  _checkCrc = checkCrc;

  _currentIndex = 0;
  _fileIsOpen = false;
  return WriteEmptyFiles();
}

HRESULT CFolderOutStream::OpenFile()
{
  Int32 askMode;
  if((*_extractStatuses)[_currentIndex])
    askMode = _testMode ?
        NArchive::NExtract::NAskMode::kTest :
        NArchive::NExtract::NAskMode::kExtract;
  else
    askMode = NArchive::NExtract::NAskMode::kSkip;
  CMyComPtr<ISequentialOutStream> realOutStream;

  UInt32 index = _startIndex + _currentIndex;
  RINOK(_extractCallback->GetStream(_ref2Offset + index, &realOutStream, askMode));

  _outStreamWithHashSpec->SetStream(realOutStream);
  _outStreamWithHashSpec->Init(_checkCrc);
  if (askMode == NArchive::NExtract::NAskMode::kExtract &&
      (!realOutStream))
  {
    const CFileItem &fi = _archiveDatabase->Files[index];
    if (!_archiveDatabase->IsItemAnti(index) && !fi.IsDir)
      askMode = NArchive::NExtract::NAskMode::kSkip;
  }
  return _extractCallback->PrepareOperation(askMode);
}

HRESULT CFolderOutStream::WriteEmptyFiles()
{
  for(;_currentIndex < _extractStatuses->Size(); _currentIndex++)
  {
    UInt32 index = _startIndex + _currentIndex;
    const CFileItem &fi = _archiveDatabase->Files[index];
    if (!_archiveDatabase->IsItemAnti(index) && !fi.IsDir && fi.Size != 0)
      return S_OK;
    RINOK(OpenFile());
    RINOK(_extractCallback->SetOperationResult(NArchive::NExtract::NOperationResult::kOK));
    _outStreamWithHashSpec->ReleaseStream();
  }
  return S_OK;
}

STDMETHODIMP CFolderOutStream::Write(const void *data,
    UInt32 size, UInt32 *processedSize)
{
  UInt32 realProcessedSize = 0;
  while(_currentIndex < _extractStatuses->Size())
  {
    if (_fileIsOpen)
    {
      UInt32 index = _startIndex + _currentIndex;
      const CFileItem &fi = _archiveDatabase->Files[index];
      UInt64 fileSize = fi.Size;
      
      UInt32 numBytesToWrite = (UInt32)MyMin(fileSize - _filePos,
          UInt64(size - realProcessedSize));
      
      UInt32 processedSizeLocal;
      RINOK(_outStreamWithHash->Write((const Byte *)data + realProcessedSize,
            numBytesToWrite, &processedSizeLocal));

      _filePos += processedSizeLocal;
      realProcessedSize += processedSizeLocal;
      if (_filePos == fileSize)
      {
        bool digestsAreEqual;
        if (fi.CrcDefined && _checkCrc)
          digestsAreEqual = fi.Crc == _outStreamWithHashSpec->GetCRC();
        else
          digestsAreEqual = true;

        RINOK(_extractCallback->SetOperationResult(
            digestsAreEqual ?
            NArchive::NExtract::NOperationResult::kOK :
            NArchive::NExtract::NOperationResult::kCRCError));
        _outStreamWithHashSpec->ReleaseStream();
        _fileIsOpen = false;
        _currentIndex++;
      }
      if (realProcessedSize == size)
      {
        if (processedSize != NULL)
          *processedSize = realProcessedSize;
        return WriteEmptyFiles();
      }
    }
    else
    {
      RINOK(OpenFile());
      _fileIsOpen = true;
      _filePos = 0;
    }
  }
  if (processedSize != NULL)
    *processedSize = size;
  return S_OK;
}

HRESULT CFolderOutStream::FlushCorrupted(Int32 resultEOperationResult)
{
  while(_currentIndex < _extractStatuses->Size())
  {
    if (_fileIsOpen)
    {
      RINOK(_extractCallback->SetOperationResult(resultEOperationResult));
      _outStreamWithHashSpec->ReleaseStream();
      _fileIsOpen = false;
      _currentIndex++;
    }
    else
    {
      RINOK(OpenFile());
      _fileIsOpen = true;
    }
  }
  return S_OK;
}

HRESULT CFolderOutStream::WasWritingFinished()
{
  if (_currentIndex == _extractStatuses->Size())
    return S_OK;
  return E_FAIL;
}

}}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美图区在线视频| 日本人妖一区二区| 欧美一区二区性放荡片| 成人免费毛片嘿嘿连载视频| 丝袜美腿一区二区三区| 亚洲男人的天堂网| 久久久久成人黄色影片| 欧美另类videos死尸| 色婷婷av一区| 豆国产96在线|亚洲| 美女被吸乳得到大胸91| 亚洲丰满少妇videoshd| 亚洲激情一二三区| 亚洲色图清纯唯美| 中文字幕精品综合| 久久久久久久久一| 欧美大白屁股肥臀xxxxxx| 欧美在线你懂得| 91丝袜呻吟高潮美腿白嫩在线观看| 国产美女精品在线| 国产一区激情在线| 国产原创一区二区三区| 激情偷乱视频一区二区三区| 奇米精品一区二区三区在线观看一 | 国产精品123| 美女一区二区视频| 另类小说视频一区二区| 男人操女人的视频在线观看欧美 | 国产区在线观看成人精品| 日韩三级在线观看| 91麻豆精品国产91久久久使用方法 | 蜜桃久久av一区| 日韩av一区二区三区四区| 日韩av中文字幕一区二区| 视频一区在线播放| 久久国产精品99精品国产| 蜜桃精品视频在线| 国产精品夜夜嗨| 成人动漫一区二区三区| 91麻豆成人久久精品二区三区| 97精品视频在线观看自产线路二| 国产白丝网站精品污在线入口| 成人永久免费视频| 91久久国产综合久久| 欧美日韩精品欧美日韩精品 | 亚洲国产欧美在线| 青娱乐精品在线视频| 国产乱人伦精品一区二区在线观看| 国产成人精品免费网站| 91视频在线观看| 91精品在线麻豆| 精品成a人在线观看| 亚洲欧美另类综合偷拍| 一区二区三区高清在线| 麻豆精品一区二区av白丝在线| 国模大尺度一区二区三区| 91在线观看免费视频| 制服丝袜日韩国产| 久久久精品天堂| 怡红院av一区二区三区| 麻豆精品一区二区综合av| 成人国产亚洲欧美成人综合网| 欧美日韩精品专区| 国产亚洲成年网址在线观看| 亚洲女人小视频在线观看| 青青草成人在线观看| 99精品国产91久久久久久| 欧美精选一区二区| 国产精品国产自产拍在线| 青椒成人免费视频| 色婷婷综合久久久中文一区二区| 色94色欧美sute亚洲线路一ni| 欧美电视剧在线看免费| 一区二区三区欧美视频| 国产不卡免费视频| 日韩免费高清电影| 亚洲午夜久久久久久久久电影网| 东方欧美亚洲色图在线| 日韩欧美aaaaaa| 一区二区在线看| 国产成人精品午夜视频免费| 日韩精品自拍偷拍| 午夜电影网一区| 色婷婷久久99综合精品jk白丝| 久久久高清一区二区三区| 婷婷六月综合网| 成人av午夜电影| 7878成人国产在线观看| 亚洲女人的天堂| 99免费精品在线| 国产精品乱码人人做人人爱 | 欧美在线看片a免费观看| 中文字幕一区在线| 成人涩涩免费视频| 久久精品夜夜夜夜久久| 国产精品一区在线| 精品国产一区二区三区av性色| 亚洲一区二区三区四区不卡| 99热精品一区二区| 日韩毛片精品高清免费| 成人动漫中文字幕| 亚洲色图欧美激情| 色婷婷综合五月| 亚洲国产视频一区二区| 欧美日韩在线综合| 午夜久久福利影院| 91.麻豆视频| 国内久久婷婷综合| 欧美国产一区二区在线观看| 大尺度一区二区| 一色屋精品亚洲香蕉网站| 97精品国产97久久久久久久久久久久| 国产精品日韩成人| 色综合天天综合狠狠| 亚洲一线二线三线久久久| 欧美精品乱码久久久久久| 美女精品自拍一二三四| 久久久久99精品一区| 99久免费精品视频在线观看| 一区二区三区四区激情| 色婷婷综合久久久久中文| 亚洲欧洲三级电影| 色狠狠av一区二区三区| 亚洲图片一区二区| 精品电影一区二区| 99在线精品观看| 亚洲成人福利片| 欧美日韩精品欧美日韩精品一| 天天综合日日夜夜精品| 久久精品人人爽人人爽| 色婷婷激情一区二区三区| 日韩成人精品在线观看| 欧美国产一区在线| 欧美嫩在线观看| 国产精品亚洲第一| 亚洲国产日韩在线一区模特| 精品久久国产字幕高潮| 一本大道久久a久久精品综合| 日韩和欧美的一区| 国产精品的网站| 欧美一区二区三区人| 94-欧美-setu| 韩国成人精品a∨在线观看| 一区二区三区中文字幕在线观看| 欧美电影免费观看高清完整版在线观看| 国产成人精品网址| 日韩电影在线免费观看| 日本一区二区成人在线| 91精品国产综合久久福利| 日韩三级av在线播放| 97精品久久久午夜一区二区三区| 免费久久精品视频| 亚洲欧美另类图片小说| xfplay精品久久| 91精品婷婷国产综合久久性色 | 久久一区二区三区四区| 成人免费不卡视频| 寂寞少妇一区二区三区| 日韩精彩视频在线观看| 亚洲综合免费观看高清完整版| 中文av一区二区| 久久夜色精品一区| 日韩一区二区精品葵司在线| 国产激情视频一区二区三区欧美 | 成人在线综合网站| 国产老妇另类xxxxx| 免费看欧美女人艹b| 亚洲成人在线观看视频| 亚洲综合一区二区精品导航| 国产精品久久久久aaaa樱花| 久久精品亚洲国产奇米99| 日韩一区二区在线免费观看| 欧美日韩国产乱码电影| 亚洲欧美另类久久久精品2019| 91久久精品日日躁夜夜躁欧美| 欧美日韩午夜影院| 国产偷国产偷精品高清尤物| 一区二区三区不卡视频在线观看| 精彩视频一区二区| 欧美日韩一区二区在线观看视频| 久久久国产午夜精品| 亚洲香蕉伊在人在线观| 欧美日韩国产美女| 国产一区二区三区最好精华液| 欧美在线你懂的| 国产精品看片你懂得| 极品少妇xxxx精品少妇| 欧美人牲a欧美精品| 亚洲乱码国产乱码精品精可以看| 国产美女在线观看一区| 日韩一区国产二区欧美三区| 亚洲综合视频网| 99re热视频这里只精品| 欧美国产国产综合| 国产成人精品免费视频网站| 精品少妇一区二区三区日产乱码 | 国产一区视频在线看| 欧美一区二区三区在线电影| 亚洲一二三四在线| 欧洲精品中文字幕|