# Cinder

# cinder::msw::ComOStream Class Reference

Wraps a cinder::OStream with a COM IStream. More...

`#include <CinderMsw.h>`

Inherits cinder::IStream.

List of all members.

## Public Types
enum | Endianness { STREAM_BIG_ENDIAN, STREAM_LITTLE_ENDIAN }
## Public Member Functions
| ComOStream (cinder::OStreamRef aOStream)
virtual HRESULT STDMETHODCALLTYPE | QueryInterface (REFIID iid, void **ppvObject)
virtual ULONG STDMETHODCALLTYPE | AddRef ()
virtual ULONG STDMETHODCALLTYPE | Release ()
virtual HRESULT STDMETHODCALLTYPE | Read (void *pv, ULONG cb, ULONG *pcbRead)
virtual HRESULT STDMETHODCALLTYPE | Write (void const *pv, ULONG cb, ULONG *pcbWritten)
virtual HRESULT STDMETHODCALLTYPE | SetSize (ULARGE_INTEGER)
virtual HRESULT STDMETHODCALLTYPE | CopyTo (::IStream *, ULARGE_INTEGER, ULARGE_INTEGER *, ULARGE_INTEGER *)
virtual HRESULT STDMETHODCALLTYPE | Commit (DWORD)
virtual HRESULT STDMETHODCALLTYPE | Revert ()
virtual HRESULT STDMETHODCALLTYPE | LockRegion (ULARGE_INTEGER, ULARGE_INTEGER, DWORD)
virtual HRESULT STDMETHODCALLTYPE | UnlockRegion (ULARGE_INTEGER, ULARGE_INTEGER, DWORD)
virtual HRESULT STDMETHODCALLTYPE | Clone (IStream **)
virtual HRESULT STDMETHODCALLTYPE | Seek (LARGE_INTEGER liDistanceToMove, DWORD dwOrigin, ULARGE_INTEGER *lpNewFilePointer)
virtual HRESULT STDMETHODCALLTYPE | Stat (STATSTG *pStatstg, DWORD grfStatFlag)
template<typename T >
void | read (T *t)
template<typename T >
void | readEndian (T *t, uint8_t endian)
template<typename T >
void | readBig (T *t)
template<typename T >
void | readLittle (T *t)
void | readFixedString (char *t, size_t maxSize, bool nullTerminate)
void | readFixedString (std::string *t, size_t size)
std::string | readLine ()
void | readData (void *dest, size_t size)
virtual size_t | readDataAvailable (void *dest, size_t maxSize)=0
virtual off_t | size () const =0
virtual bool | isEof () const =0
const std::string & | getFileName () const
| Returns the file name of the path from which a Stream originated when relevant. Empty string when undefined.
void | setFileName (const std::string &aFileName)
| Sets the file name of the path from which a Stream originated when relevant. Empty string when undefined.
virtual off_t | tell () const =0
| Returns the current position of the stream measured in bytes **/.
virtual void | seekAbsolute (off_t absoluteOffset)=0
| Sets the current position of the stream to byte absoluteOffset. A negative offset is relative to the end of the file.
virtual void | seekRelative (off_t relativeOffset)=0
| Moves the current position of the stream by relativeOffset bytes.
## Static Public Member Functions
static uint8_t | getNativeEndianness ()
## Public Attributes
return | STREAM_BIG_ENDIAN
## Protected Member Functions
virtual void | IORead (void *t, size_t size)=0
## Protected Attributes
std::string | mFileName
## Static Protected Attributes
static const int | MINIMUM_BUFFER_SIZE = 8

## Detailed Description

Wraps a cinder::OStream with a COM IStream.

## Member Enumeration Documentation

enum cinder::StreamBase::Endianness`[inherited]`

Enumerator:

  STREAM_BIG_ENDIAN |
  STREAM_LITTLE_ENDIAN |

## Constructor & Destructor Documentation

cinder::msw::ComOStream::ComOStream | ( | cinder::OStreamRef | aOStream | ) |

## Member Function Documentation

HRESULT STDMETHODCALLTYPE cinder::msw::ComOStream::QueryInterface | ( | REFIID | iid,
|  | void ** | ppvObject |
| ) |  |  | `[virtual]`

ULONG STDMETHODCALLTYPE cinder::msw::ComOStream::AddRef | ( |  | ) | `[virtual]`

ULONG STDMETHODCALLTYPE cinder::msw::ComOStream::Release | ( |  | ) | `[virtual]`

virtual HRESULT STDMETHODCALLTYPE cinder::msw::ComOStream::Read | ( | void * | pv,
|  | ULONG | cb,
|  | ULONG * | pcbRead |
| ) |  |  | `[virtual]`

HRESULT STDMETHODCALLTYPE cinder::msw::ComOStream::Write | ( | void const * | pv,
|  | ULONG | cb,
|  | ULONG * | pcbWritten |
| ) |  |  | `[virtual]`

virtual HRESULT STDMETHODCALLTYPE cinder::msw::ComOStream::SetSize | ( | ULARGE_INTEGER |  | ) | `[virtual]`

virtual HRESULT STDMETHODCALLTYPE cinder::msw::ComOStream::CopyTo | ( | ::IStream * | ,
|  | ULARGE_INTEGER | ,
|  | ULARGE_INTEGER * | ,
|  | ULARGE_INTEGER * |  |
| ) |  |  | `[virtual]`

virtual HRESULT STDMETHODCALLTYPE cinder::msw::ComOStream::Commit | ( | DWORD |  | ) | `[virtual]`

virtual HRESULT STDMETHODCALLTYPE cinder::msw::ComOStream::Revert | ( |  | ) | `[virtual]`

virtual HRESULT STDMETHODCALLTYPE cinder::msw::ComOStream::LockRegion | ( | ULARGE_INTEGER | ,
|  | ULARGE_INTEGER | ,
|  | DWORD |  |
| ) |  |  | `[virtual]`

virtual HRESULT STDMETHODCALLTYPE cinder::msw::ComOStream::UnlockRegion | ( | ULARGE_INTEGER | ,
|  | ULARGE_INTEGER | ,
|  | DWORD |  |
| ) |  |  | `[virtual]`

virtual HRESULT STDMETHODCALLTYPE cinder::msw::ComOStream::Clone | ( | IStream ** |  | ) | `[virtual]`

HRESULT STDMETHODCALLTYPE cinder::msw::ComOStream::Seek | ( | LARGE_INTEGER | liDistanceToMove,
|  | DWORD | dwOrigin,
|  | ULARGE_INTEGER * | lpNewFilePointer |
| ) |  |  | `[virtual]`

virtual HRESULT STDMETHODCALLTYPE cinder::msw::ComOStream::Stat | ( | STATSTG * | pStatstg,
|  | DWORD | grfStatFlag |
| ) |  |  | `[virtual]`

template<typename T >

void cinder::IStream::read | ( | T * | t | ) | `[inherited]`

template<typename T >

void cinder::IStream::readEndian | ( | T * | t,
|  | uint8_t | endian |
| ) |  |  | `[inherited]`

template<typename T >

void cinder::IStream::readBig | ( | T * | t | ) | `[inherited]`

template<typename T >

void cinder::IStream::readLittle | ( | T * | t | ) | `[inherited]`

void cinder::IStream::readFixedString | ( | char * | t,
|  | size_t | maxSize,
|  | bool | nullTerminate |
| ) |  |  | `[inherited]`

void cinder::IStream::readFixedString | ( | std::string * | t,
|  | size_t | size |
| ) |  |  | `[inherited]`

std::string cinder::IStream::readLine | ( |  | ) | `[inherited]`

void cinder::IStream::readData | ( | void * | dest,
|  | size_t | size |
| ) |  |  | `[inherited]`

virtual size_t cinder::IStream::readDataAvailable | ( | void * | dest,
|  | size_t | maxSize |
| ) |  |  | `[pure virtual, inherited]`

Implemented in cinder::IStreamFile, cinder::IoStreamFile, cinder::IStreamMem, and cinder::IStreamUrl.

virtual off_t cinder::IStream::size | ( |  | ) | const`[pure virtual, inherited]`

Implemented in cinder::IStreamFile, cinder::IoStreamFile, cinder::IStreamMem, and cinder::IStreamUrl.

virtual bool cinder::IStream::isEof | ( |  | ) | const`[pure virtual, inherited]`

Implemented in cinder::IStreamFile, cinder::IoStreamFile, cinder::IStreamMem, and cinder::IStreamUrl.

virtual void cinder::IStream::IORead | ( | void * | t,
|  | size_t | size |
| ) |  |  | `[protected, pure virtual, inherited]`

Implemented in cinder::IStreamFile, cinder::IoStreamFile, cinder::IStreamMem, and cinder::IStreamUrl.

static uint8_t cinder::StreamBase::getNativeEndianness | ( |  | ) | `[static, inherited]`

Returns the platform's endianness as a StreamBase::Endianness

const std::string& cinder::StreamBase::getFileName | ( |  | ) | const`[inherited]`

Returns the file name of the path from which a Stream originated when relevant. Empty string when undefined.

void cinder::StreamBase::setFileName | ( | const std::string & | aFileName | ) | `[inherited]`

Sets the file name of the path from which a Stream originated when relevant. Empty string when undefined.

virtual off_t cinder::StreamBase::tell | ( |  | ) | const`[pure virtual, inherited]`

Returns the current position of the stream measured in bytes **/.

Implemented in cinder::IStreamFile, cinder::OStreamFile, cinder::IoStreamFile, cinder::IStreamMem, cinder::OStreamMem, and cinder::IStreamUrl.

virtual void cinder::StreamBase::seekAbsolute | ( | off_t | absoluteOffset | ) | `[pure virtual, inherited]`

Sets the current position of the stream to byte absoluteOffset. A negative offset is relative to the end of the file.

Implemented in cinder::IStreamFile, cinder::OStreamFile, cinder::IoStreamFile, cinder::IStreamMem, cinder::OStreamMem, and cinder::IStreamUrl.

virtual void cinder::StreamBase::seekRelative | ( | off_t | relativeOffset | ) | `[pure virtual, inherited]`

Moves the current position of the stream by relativeOffset bytes.

Implemented in cinder::IStreamFile, cinder::OStreamFile, cinder::IoStreamFile, cinder::IStreamMem, cinder::OStreamMem, and cinder::IStreamUrl.

## Member Data Documentation

const int cinder::IStream::MINIMUM_BUFFER_SIZE = 8`[static, protected, inherited]`

return cinder::StreamBase::STREAM_BIG_ENDIAN`[inherited]`

std::string cinder::StreamBase::mFileName`[protected, inherited]`

The documentation for this class was generated from the following files:

- include/cinder/msw/CinderMsw.h
- src/cinder/msw/CinderMsw.cpp