Summary
Many objects need some support for persistence,
and ATL provides an easily extensible, table-driven implementation
of the IPersistStream[Init] and the
IPersistPropertyBag interfaces. These implementations save
and load the properties described by the class's property map
entries. By overriding the appropriate methods, you can extend this
persistence support for data types that property map entries do not
support. The ATL implementation of IPersistStorage allows
the object to be embedded into an OLE container but doesn't take
advantage of many of the capabilities of the IStorage
medium.
Using and extending the stream persistence
support that ATL provides allows an object to offer additional
functionality to its clients. For example, you've seen how to
implement IPersistMemory support to your object (which
MFC-based containers prefer). In addition, you can easily add
marshal-by-value semantics to your class by reusing the stream
persistence functionality.
|