There are several stream type classes in the library, providing multiple kinds of memory streams, and stream classes that works with files, pipes, and serial ports.

The stream type classes satisfies one, or more, of the I/O concepts

MemoryStream

MemoryStream objects are streams stored in a sequential block of memory managed by the MemoryStream objects. This block will grow as needed when data is written to the stream.

BufferStream

BufferStream provides a stream implementation that works with data that is already allocated elsewhere in the app.

Blocks::Stream

Blocks::Stream is another memory stream that manages its own memory. Blocks::Stream stores data in a doubly linked list of 32 Kb chunks of memory.

IStreamStream

Wraps a COM IStream interface as a stream.

IStreamMemoryStream

IStreamMemoryStream is derived from IStreamStream, using the IStream interface created by CreateStreamOnHGlobal.

SystemStream

SystemStream is a template class inherited by FileStream, Pipe and CommDeviceStream.

AttachedSystemStream

FileStream

FileStream implements a stream for file I/O.

Pipe

Pipe implements a stream for pipe I/O.

CommDeviceStream

CommDeviceStream implements a stream for serial device I/O.

IStreamOnStreamImpl

The IStreamOnStreamImpl template exposes a stream to COM by implementing IStream using the standard member functions