Condividi tramite


Metodo IPersistStorage::HandsOffStorage (objidl.h)

Indica all'oggetto di rilasciare tutti gli oggetti di archiviazione passati dal contenitore e di immettere la modalità HandsOff.

Sintassi

HRESULT HandsOffStorage();

Valore restituito

Questo metodo restituisce S_OK per indicare che l'oggetto ha immesso correttamente la modalità HandsOff.

Commenti

Questo metodo causa il rilascio di qualsiasi oggetto di archiviazione che contiene e di immettere la modalità HandsOff fino a una chiamata IPersistStorage::SaveCompleted successiva. In modalità HandsOff l'oggetto non può eseguire alcuna operazione e l'unica operazione che funziona è un'operazione di chiusura.

Un'applicazione contenitore chiama in genere questo metodo durante un'operazione di salvataggio completo o di salvataggio completo a bassa memoria per forzare il rilascio di tutti i puntatori alla relativa archiviazione corrente. In questi scenari la chiamata HandsOffStorage viene eseguita dopo una chiamata a OleSave o IPersistStorage::Save, inserendo l'oggetto in modalità HandsOffAfterSave. La chiamata di questo metodo è necessaria in modo che l'applicazione contenitore possa eliminare il file corrente come parte di un salvataggio completo o in modo che possa chiamare il metodo IRootStorage::SwitchToFile come parte di un salvataggio a memoria ridotta.

Un'applicazione contenitore chiama anche questo metodo quando un oggetto è in modalità Normale per inserire l'oggetto in modalità HandsOffFromNormal.

Sebbene l'oggetto componente si trova in modalità HandsOffAfterSave o HandsOffFromNormal, la maggior parte delle operazioni sull'oggetto avrà esito negativo. Pertanto, il contenitore deve ripristinare l'oggetto in modalità Normale il prima possibile. L'applicazione contenitore esegue questa operazione chiamando il metodo IPersistStorage::SaveCompleted , che passa un puntatore di archiviazione all'oggetto componente per il nuovo oggetto di archiviazione.

Note per gli implementatori

Questo metodo deve rilasciare tutti i puntatori all'oggetto di archiviazione corrente, inclusi puntatori a qualsiasi flusso annidato e archiviazione. Se l'oggetto contiene oggetti annidati, l'applicazione contenitore deve chiamare in modo ricorsivo questo metodo per tutti gli oggetti annidati caricati o in esecuzione.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione objidl.h

Vedi anche

IPersistStorage

OleSave