### Streaming Base Classes

The streaming functions for a derived class must explicitly invoke the streaming functions for each base class, in order to stream the full state of the object. Given a class Derived which inherits from class Base:

    void Derived::writeToStream(IDataStream& toWhere) const
    {
        IStreamOutFrame localFrame(toWhere);
        Base::writeToStream(toWhere);  // Stream out our base class
        fData >>= toWhere;             // then stream out our data members
    }

The readFromStream function has the same general form:

    void Derived::readFromStream(IDataStream& fromWhere)
    {
        IStreamInFrame localFrame(fromWhere);
        Base::readFromStream();        // Stream in our base class
        fData <<= fromWhere;           // then stream in our data members.
    };

Introduction to the Streaming Classes
Data Streams

Adding Streaming Support to Structs and Simple Classes
Creating a Streamable Class
Creating a Streamable Template Class
Instantiating a Stream Module
Enabling Release-to-Release Data Compatibility
Transitioning from Older Streaming Constructs