|
| | MemoryStream (const Ch *src, size_t size) |
| |
| Ch | Peek () const |
| |
| Ch | Take () |
| |
| size_t | Tell () const |
| |
| Ch * | PutBegin () |
| |
| void | Put (Ch) |
| |
| void | Flush () |
| |
| size_t | PutEnd (Ch *) |
| |
| const Ch * | Peek4 () const |
| |
| virtual HRESULT STDMETHODCALLTYPE | QueryInterface (_In_ REFIID riid, _COM_Outptr_ void **ppvObject) |
| |
| virtual ULONG STDMETHODCALLTYPE | AddRef () |
| |
| virtual ULONG STDMETHODCALLTYPE | Release () |
| |
| virtual HRESULT STDMETHODCALLTYPE | Read (void *pv, ULONG cb, ULONG *pcbRead) |
| |
| virtual HRESULT STDMETHODCALLTYPE | Write (const void *pv, ULONG cb, ULONG *pcbWritten) |
| |
| virtual HRESULT STDMETHODCALLTYPE | Seek (LARGE_INTEGER dlibMove, DWORD dwOrigin, ULARGE_INTEGER *plibNewPosition) |
| |
| virtual HRESULT STDMETHODCALLTYPE | SetSize (ULARGE_INTEGER libNewSize) |
| |
| virtual HRESULT STDMETHODCALLTYPE | CopyTo (IStream *pstm, ULARGE_INTEGER cb, ULARGE_INTEGER *pcbRead, ULARGE_INTEGER *pcbWritten) |
| |
| virtual HRESULT STDMETHODCALLTYPE | Commit (DWORD grfCommitFlags) |
| |
| virtual HRESULT STDMETHODCALLTYPE | Revert () |
| |
| virtual HRESULT STDMETHODCALLTYPE | LockRegion (ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType) |
| |
| virtual HRESULT STDMETHODCALLTYPE | UnlockRegion (ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType) |
| |
| virtual HRESULT STDMETHODCALLTYPE | Stat (_Out_ STATSTG *, DWORD grfStatFlag) |
| |
| virtual HRESULT STDMETHODCALLTYPE | Clone (_COM_Outptr_ IStream **ppstm) |
| |
Represents an in-memory input byte stream.
This class is mainly for being wrapped by EncodedInputStream or AutoUTFInputStream.
It is similar to FileReadBuffer but the source is an in-memory buffer instead of a file.
Differences between MemoryStream and StringStream:
- StringStream has encoding but MemoryStream is a byte stream.
- MemoryStream needs size of the source buffer and the buffer don't need to be null terminated. StringStream assume null-terminated string as source.
- MemoryStream supports Peek4() for encoding detection. StringStream is specified with an encoding so it should not have Peek4().
- Note
- implements Stream concept