arjin.h
来自「由7-zip提供的压缩、解压缩程序」· C头文件 代码 · 共 76 行
H
76 行
// Archive/ArjIn.h#ifndef __ARCHIVE_ARJIN_H#define __ARCHIVE_ARJIN_H#include "Common/MyCom.h"#include "../../IStream.h"#include "ArjItem.h"namespace NArchive {namespace NArj { class CInArchiveException{public: enum CCauseType { kUnexpectedEndOfArchive = 0, kCRCError, kIncorrectArchive, kReadStreamError, kSeekStreamError } Cause; CInArchiveException(CCauseType cause): Cause(cause) {};};class CProgressVirt{public: STDMETHOD(SetCompleted)(const UInt64 *numFiles) PURE;};class CInArchive{ CMyComPtr<IInStream> _stream; UInt64 _streamStartPosition; UInt64 _position; UInt16 _blockSize; Byte _block[kMaxBlockSize]; UInt32 _blockPos; bool FindAndReadMarker(const UInt64 *searchHeaderSizeLimit); bool ReadBlock(); bool ReadBlock2(); Byte ReadByte(); UInt16 ReadUInt16(); UInt32 ReadUInt32(); HRESULT ReadBytes(void *data, UInt32 size, UInt32 *processedSize); bool ReadBytesAndTestSize(void *data, UInt32 size); void SafeReadBytes(void *data, UInt32 size); Byte SafeReadByte(); UInt16 SafeReadUInt16(); UInt32 SafeReadUInt32(); void IncreasePositionValue(UInt64 addValue); void ThrowIncorrectArchiveException(); public: HRESULT GetNextItem(bool &filled, CItemEx &item); bool Open(IInStream *inStream, const UInt64 *searchHeaderSizeLimit); void Close(); void IncreaseRealPosition(UInt64 addValue);}; }} #endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?