This interface works in conjunction with IPropertyBag to define an individual property-based persistence mechanism.
Informs the object that it is being initialized as a newly created object.
Instructs the object to initialize itself using the properties available in the property bag, and notifies the provided error log object when errors occur.
Instructs the object to save its properties to the given property bag, and optionally to clear the object's dirty flag.
A mechanism such as IPersistStream gives an object an IStream in which to store its binary data, while IPersistPropertyBag provides an object with an IPropertyBag interface through which it can save and load individual properties.
The object that implements IPropertyBag can then save those properties in various ways, such as in name and value pairs in a text file.
Errors encountered in the process on either side are recorded in an error log through IErrorlog. This error reporting mechanism works on a per-property basis instead of on all properties at once.
IPropertyBag and IPersistPropertyBag optimize "Save as Text" mechanisms, and therefore are recommended for ActiveX Control containers that implement a "Save as Text" mechanism.
IPropertyBag is implemented by a container, and is roughly analogous to IStream.
IPersistPropertyBag is implemented by controls, and is roughly analogous to IPersistStream.