Compartir a través de


Método IPersistStorage::HandsOffStorage (objidl.h)

Indica al objeto que libere todos los objetos de almacenamiento pasados por su contenedor y que entren en el modo HandsOff.

Sintaxis

HRESULT HandsOffStorage();

Valor devuelto

Este método devuelve S_OK para indicar que el objeto ha entrado correctamente en el modo HandsOff.

Comentarios

Este método hace que un objeto libere los objetos de almacenamiento que contiene y entre en el modo HandsOff hasta una llamada A IPersistStorage::SaveCompleted posterior. En el modo HandsOff, el objeto no puede hacer nada y la única operación que funciona es una operación de cierre.

Normalmente, una aplicación contenedora llama a este método durante una operación de guardado completa o de almacenamiento completo con poca memoria para forzar que el objeto libere todos los punteros a su almacenamiento actual. En estos escenarios, la llamada HandsOffStorage se produce después de una llamada a OleSave o IPersistStorage::Save, colocando el objeto en modo HandsOffAfterSave. Llamar a este método es necesario para que la aplicación contenedora pueda eliminar el archivo actual como parte de un guardado completo, o para que pueda llamar al método IRootStorage::SwitchToFile como parte de un guardado de memoria baja.

Una aplicación contenedora también llama a este método cuando un objeto está en modo Normal para colocar el objeto en el modo HandsOffFromNormal.

Aunque el objeto de componente está en modo HandsOffAfterSave o HandsOffFromNormal, se producirá un error en la mayoría de las operaciones del objeto. Por lo tanto, el contenedor debe restaurar el objeto en modo Normal lo antes posible. La aplicación contenedora lo hace llamando al método IPersistStorage::SaveCompleted , que vuelve a pasar un puntero de almacenamiento al objeto de componente para el nuevo objeto de almacenamiento.

Notas para los implementadores

Este método debe liberar todos los punteros al objeto de almacenamiento actual, incluidos los punteros a los flujos y almacenamientos anidados. Si el objeto contiene objetos anidados, la aplicación contenedora debe llamar recursivamente a este método para cualquier objeto anidado que se cargue o ejecute.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado objidl.h

Consulte también

IPersistStorage

OleSave