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 |