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

📄 copycoder.cpp

📁 由7-zip提供的压缩、解压缩程序
💻 CPP
字号:
// Compress/CopyCoder.cpp#include "StdAfx.h"#include "CopyCoder.h"#include "../../../Common/Alloc.h"#include "../../Common/StreamUtils.h"namespace NCompress {static const UInt32 kBufferSize = 1 << 17;CCopyCoder::~CCopyCoder(){  ::MidFree(_buffer);}STDMETHODIMP CCopyCoder::Code(ISequentialInStream *inStream,    ISequentialOutStream *outStream,     const UInt64 *inSize, const UInt64 *outSize,    ICompressProgressInfo *progress){  if (_buffer == 0)  {    _buffer = (Byte *)::MidAlloc(kBufferSize);    if (_buffer == 0)      return E_OUTOFMEMORY;  }  TotalSize = 0;  while(true)  {    UInt32 realProcessedSize;    UInt32 size = kBufferSize;    if (outSize != 0)      if (size > *outSize - TotalSize)        size = (UInt32)(*outSize - TotalSize);    RINOK(inStream->Read(_buffer, size, &realProcessedSize));    if(realProcessedSize == 0)      break;    RINOK(WriteStream(outStream, _buffer, realProcessedSize, NULL));    TotalSize += realProcessedSize;    if (progress != NULL)    {      RINOK(progress->SetRatioInfo(&TotalSize, &TotalSize));    }  }  return S_OK;}}

⌨️ 快捷键说明

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