Compartilhar via


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

Instrui o objeto a liberar todos os objetos de armazenamento que foram passados para ele por seu contêiner e entrar no modo HandsOff.

Sintaxe

HRESULT HandsOffStorage();

Retornar valor

Esse método retorna S_OK para indicar que o objeto entrou no modo HandsOff com êxito.

Comentários

Esse método faz com que um objeto libere todos os objetos de armazenamento que ele está segurando e entre no modo HandsOff até uma chamada IPersistStorage::SaveCompleted subsequente. No modo HandsOff, o objeto não pode fazer nada e a única operação que funciona é uma operação de fechamento.

Um aplicativo de contêiner normalmente chama esse método durante uma operação de salvamento completo ou salvamento completo de memória baixa para forçar o objeto a liberar todos os ponteiros para seu armazenamento atual. Nesses cenários, a chamada HandsOffStorage vem após uma chamada para OleSave ou IPersistStorage::Save, colocando o objeto no modo HandsOffAfterSave. Chamar esse método é necessário para que o aplicativo contêiner possa excluir o arquivo atual como parte de um salvamento completo ou, portanto, pode chamar o método IRootStorage::SwitchToFile como parte de uma economia de memória baixa.

Um aplicativo de contêiner também chama esse método quando um objeto está no modo Normal para colocar o objeto no modo HandsOffFromNormal.

Embora o objeto de componente esteja no modo HandsOffAfterSave ou HandsOffFromNormal, a maioria das operações no objeto falhará. Portanto, o contêiner deve restaurar o objeto para o modo Normal assim que possível. O aplicativo de contêiner faz isso chamando o método IPersistStorage::SaveCompleted , que passa um ponteiro de armazenamento de volta para o objeto de componente do novo objeto de armazenamento.

Observações aos implementadores

Esse método deve liberar todos os ponteiros para o objeto de armazenamento atual, incluindo ponteiros para quaisquer fluxos e armazenamentos aninhados. Se o objeto contiver objetos aninhados, o aplicativo contêiner deverá chamar recursivamente esse método para quaisquer objetos aninhados carregados ou em execução.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho objidl.h

Confira também

Ipersiststorage

OleSave