The IRootStorage interface contains a single method that switches a storage object to a different underlying file and saves the storage object to that file. The save operation occurs even with low memory conditions and uncommitted changes to the storage object. A subsequent call to IStorage::Commit is guaranteed to not consume any additional memory.
Storage objects that are based on a file should implement IRootStorage in addition to the IStorage interface. For storage objects that are not file-based, this interface is not necessary.
OLE provides an implementation of a storage object, including the IRootStorage interface, as part of its compound file implementation.
The primary use for the IRootStorage interface is to save a storage object to a file during low memory conditions. Typically, the container application calls the IRootStorage interface to switch to a new file.
If you have an IStorage pointer to a compound file object, you can call IStorage::QueryInterface with IID_IRootStorage to obtain a pointer to the IRootStorage interface.
Methods in Vtable Order
IUnknown Methods |
Description |
Returns pointers to supported interfaces. | |
Increments the reference count. | |
Decrements the reference count. |
IRootStorage Method |
Description |
Copy the file underlying this root storage object, then associate this storage with the copied file. |
See Also