IPersistStorage::HandsOffStorage
Instructs the
object to release all storage objects that have been passed to it by its
container and to enter HandsOff mode, in which the object cannot do anything
and the only operation that works is a close operation.
HRESULT
HandsOffStorage(void);
Return Value
S_OK
The object
has successfully entered HandsOff mode.
Remarks
This method
causes an object to release any storage objects that it is holding and to enter
the HandsOff mode until a subsequent IPersistStorage::SaveCompleted
A container
application typically calls this method during a full save or low-memory full
save operation to force the object to release all pointers to its current
storage. In these scenarios, the HandsOffStorage call comes after a call
to either OleSave
A container
application also calls this method when an object is in Normal mode to put the
object in HandsOffFromNormal mode.
While the
component object is in either HandsOffAfterSave or HandsOffFromNormal mode,
most operations on the object will fail. Thus, the container should restore the
object to Normal mode as soon as possible. The container application does this
by calling the IPersistStorage::SaveCompleted method, which passes a
storage pointer back to the component object for the new storage object.
Notes to Implementers
This method
must release all pointers to the current storage object, including pointers to
any nested streams and storages. If the object contains nested objects, the
container application must recursively call this method for any nested objects
that are loaded or running.
See Also