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

📄 rdwrfn.hpp

📁 7Zip软件实现: 七种编码格式的压缩与解压缩功能。
💻 HPP
字号:
#ifndef _RAR_DATAIO_#define _RAR_DATAIO_// Igor Pavlov
#include "../../../ICoder.h"

class CmdAdd;class Unpack;
// Igor Pavlov
struct CExitCode
{
  HRESULT Result;
  CExitCode(HRESULT result): Result(result) {};
};
class ComprDataIO{  private:    void ShowUnpRead(Int64 ArcPos,Int64 ArcSize);    void ShowUnpWrite();    bool UnpackFromMemory;    uint UnpackFromMemorySize;    byte *UnpackFromMemoryAddr;    bool UnpackToMemory;    uint UnpackToMemorySize;    byte *UnpackToMemoryAddr;    uint UnpWrSize;    byte *UnpWrAddr;    Int64 UnpPackedSize;    bool ShowProgress;    bool TestMode;    bool SkipUnpCRC;    // Igor Pavlov
    // File *SrcFile;    // File *DestFile;    ISequentialInStream *SrcFile;
    ISequentialOutStream *DestFile;
    ICompressProgressInfo *Progress;
    CmdAdd *Command;    // Igor Pavlov
    /*
    FileHeader *SubHead;    Int64 *SubHeadPos;
    */#ifndef NOCRYPT    CryptData Crypt;    CryptData Decrypt;#endif    int LastPercent;    char CurrentCommand;  public:    ComprDataIO();    void Init();    int UnpRead(byte *Addr,uint Count);    void UnpWrite(byte *Addr,uint Count);    void EnableShowProgress(bool Show) {ShowProgress=Show;}    void GetUnpackedData(byte **Data,uint *Size);    void SetPackedSizeToRead(Int64 Size) {UnpPackedSize=Size;}    void SetTestMode(bool Mode) {TestMode=Mode;}    void SetSkipUnpCRC(bool Skip) {SkipUnpCRC=Skip;}
    // Igor Pavlov
    // void SetFiles(File *SrcFile,File *DestFile);
    void SetFiles(ISequentialInStream *srcFile,
        ISequentialOutStream *destFile, ICompressProgressInfo *progress);
    void SetCommand(CmdAdd *Cmd) {Command=Cmd;}    // Igor Pavlov
    // void SetSubHeader(FileHeader *hd,Int64 *Pos) {SubHead=hd;SubHeadPos=Pos;}    // void SetEncryption(int Method,char *Password,byte *Salt,bool Encrypt);    // void SetAV15Encryption();    // void SetCmt13Encryption();    void SetUnpackToMemory(byte *Addr,uint Size);    void SetCurrentCommand(char Cmd) {CurrentCommand=Cmd;}    bool PackVolume;    bool UnpVolume;    bool NextVolumeMissing;    Int64 TotalPackRead;    Int64 UnpArcSize;    Int64 CurPackRead,CurPackWrite,CurUnpRead,CurUnpWrite;    Int64 ProcessedArcSize,TotalArcSize;    uint PackFileCRC,UnpFileCRC,PackedCRC;    int Encryption;    int Decryption;};#endif

⌨️ 快捷键说明

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