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 |