mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-10 10:07:13 -06:00
9.34
This commit is contained in:
committed by
Kornel Lesiński
parent
83f8ddcc5b
commit
f08f4dcc3c
43
CPP/7zip/IStream.h
Executable file → Normal file
43
CPP/7zip/IStream.h
Executable file → Normal file
@@ -3,8 +3,8 @@
|
||||
#ifndef __ISTREAM_H
|
||||
#define __ISTREAM_H
|
||||
|
||||
#include "../Common/MyTypes.h"
|
||||
#include "../Common/MyUnknown.h"
|
||||
#include "../Common/Types.h"
|
||||
|
||||
#include "IDecl.h"
|
||||
|
||||
@@ -21,6 +21,9 @@ STREAM_INTERFACE(ISequentialInStream, 0x01)
|
||||
this function must read at least 1 byte.
|
||||
This function is allowed to read less than number of remaining bytes in stream.
|
||||
You must call Read function in loop, if you need exact amount of data
|
||||
|
||||
If seek pointer before Read() function call was changed to position past the
|
||||
end of stream, the Read() function returns S_OK and *processedSize is set to 0.
|
||||
*/
|
||||
};
|
||||
|
||||
@@ -34,6 +37,20 @@ STREAM_INTERFACE(ISequentialOutStream, 0x02)
|
||||
*/
|
||||
};
|
||||
|
||||
|
||||
#define HRESULT_WIN32_ERROR_NEGATIVE_SEEK __HRESULT_FROM_WIN32(ERROR_NEGATIVE_SEEK)
|
||||
|
||||
/* Seek() Function
|
||||
If you seek before the beginning of the stream, Seek() function returns error code:
|
||||
Recommended error code is __HRESULT_FROM_WIN32(ERROR_NEGATIVE_SEEK).
|
||||
or STG_E_INVALIDFUNCTION
|
||||
|
||||
It is allowed to seek past the end of the stream.
|
||||
|
||||
|
||||
if Seek() returns error, then the value of *newPosition is undefined.
|
||||
*/
|
||||
|
||||
STREAM_INTERFACE_SUB(IInStream, ISequentialInStream, 0x03)
|
||||
{
|
||||
STDMETHOD(Seek)(Int64 offset, UInt32 seekOrigin, UInt64 *newPosition) PURE;
|
||||
@@ -55,4 +72,28 @@ STREAM_INTERFACE(IOutStreamFlush, 0x07)
|
||||
STDMETHOD(Flush)() PURE;
|
||||
};
|
||||
|
||||
|
||||
STREAM_INTERFACE(IStreamGetProps, 0x08)
|
||||
{
|
||||
STDMETHOD(GetProps)(UInt64 *size, FILETIME *cTime, FILETIME *aTime, FILETIME *mTime, UInt32 *attrib) PURE;
|
||||
};
|
||||
|
||||
struct CStreamFileProps
|
||||
{
|
||||
UInt64 Size;
|
||||
UInt64 VolID;
|
||||
UInt64 FileID_Low;
|
||||
UInt64 FileID_High;
|
||||
UInt32 NumLinks;
|
||||
UInt32 Attrib;
|
||||
FILETIME CTime;
|
||||
FILETIME ATime;
|
||||
FILETIME MTime;
|
||||
};
|
||||
|
||||
STREAM_INTERFACE(IStreamGetProps2, 0x09)
|
||||
{
|
||||
STDMETHOD(GetProps2)(CStreamFileProps *props) PURE;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user