# Storage Interfaces

Control containers must be able to support controls that implement IPersistStorage, IPersistStream, or IPersistStreamInit. Optionally, a container can support any other persistence interfaces such as IPersistMemory, IPersistPropertyBag, and IPersistMoniker for those controls that provide support.

Once an ActiveX Control Container has chosen and initialized a storage interface to use (IPersistStorage, IPersistStream, IPersistStreamInit, etc), that storage interface will remain the primary storage interface for the lifetime of the control, i.e. the control will remain in possession of the storage. This does not preclude the container from saving to other storage interfaces.

ActiveX Control Containers do not need to support a save as text mechanism, thus using IPersistPropertyBag and the associated container-side interface IPropertyBag are optional.