multistream.h
来自「由7-zip提供的压缩、解压缩程序」· C头文件 代码 · 共 77 行
H
77 行
// MultiStream.h#ifndef __MULTISTREAM_H#define __MULTISTREAM_H#include "../../../Common/MyCom.h"#include "../../../Common/Vector.h"#include "../../Archive/IArchive.h"class CMultiStream: public IInStream, public CMyUnknownImp{ int _streamIndex; UInt64 _pos; UInt64 _seekPos; UInt64 _totalLength;public: struct CSubStreamInfo { CMyComPtr<IInStream> Stream; UInt64 Pos; UInt64 Size; }; CObjectVector<CSubStreamInfo> Streams; void Init() { _streamIndex = 0; _pos = 0; _seekPos = 0; _totalLength = 0; for (int i = 0; i < Streams.Size(); i++) _totalLength += Streams[i].Size; } MY_UNKNOWN_IMP1(IInStream) STDMETHOD(Read)(void *data, UInt32 size, UInt32 *processedSize); STDMETHOD(Seek)(Int64 offset, UInt32 seekOrigin, UInt64 *newPosition);};/*class COutMultiStream: public IOutStream, public CMyUnknownImp{ int _streamIndex; // required stream UInt64 _offsetPos; // offset from start of _streamIndex index UInt64 _absPos; UInt64 _length; struct CSubStreamInfo { CMyComPtr<ISequentialOutStream> Stream; UInt64 Size; UInt64 Pos; }; CObjectVector<CSubStreamInfo> Streams;public: CMyComPtr<IArchiveUpdateCallback2> VolumeCallback; void Init() { _streamIndex = 0; _offsetPos = 0; _absPos = 0; _length = 0; } MY_UNKNOWN_IMP1(IOutStream) STDMETHOD(Write)(const void *data, UInt32 size, UInt32 *processedSize); STDMETHOD(Seek)(Int64 offset, UInt32 seekOrigin, UInt64 *newPosition);};*/#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?