7zfolderinstream.h
来自「由7-zip提供的压缩、解压缩程序」· C头文件 代码 · 共 67 行
H
67 行
// 7z/FolderInStream.h#ifndef __7Z_FOLDERINSTREAM_H#define __7Z_FOLDERINSTREAM_H#include "7zItem.h"#include "7zHeader.h"#include "../IArchive.h"#include "../Common/InStreamWithCRC.h"#include "../../IStream.h"#include "../../ICoder.h"namespace NArchive {namespace N7z {class CFolderInStream: public ISequentialInStream, public ICompressGetSubStreamSize, public CMyUnknownImp{public: MY_UNKNOWN_IMP1(ICompressGetSubStreamSize) CFolderInStream(); STDMETHOD(Read)(void *data, UInt32 size, UInt32 *processedSize); STDMETHOD(GetSubStreamSize)(UInt64 subStream, UInt64 *value);private: CSequentialInStreamWithCRC *_inStreamWithHashSpec; CMyComPtr<ISequentialInStream> _inStreamWithHash; CMyComPtr<IArchiveUpdateCallback> _updateCallback; bool _currentSizeIsDefined; UInt64 _currentSize; bool _fileIsOpen; UInt64 _filePos; const UInt32 *_fileIndices; UInt32 _numFiles; UInt32 _fileIndex; HRESULT OpenStream(); HRESULT CloseStream(); void AddDigest();public: void Init(IArchiveUpdateCallback *updateCallback, const UInt32 *fileIndices, UInt32 numFiles); CRecordVector<bool> Processed; CRecordVector<UInt32> CRCs; CRecordVector<UInt64> Sizes; UInt64 GetFullSize() const { UInt64 size = 0; for (int i = 0; i < Sizes.Size(); i++) size += Sizes[i]; return size; }};}}#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?