IPersistStorage::HandsOffStorage-Methode (objidl.h)
Weist das -Objekt an, alle Speicherobjekte freizugeben, die von seinem Container an es übergeben wurden, und in den HandsOff-Modus zu wechseln.
Syntax
HRESULT HandsOffStorage();
Rückgabewert
Diese Methode gibt S_OK zurück, um anzugeben, dass das Objekt erfolgreich in den HandsOff-Modus versetzt wurde.
Hinweise
Diese Methode bewirkt, dass ein Objekt alle gespeicherten Speicherobjekte freigibt und bis zu einem nachfolgenden IPersistStorage::SaveCompleted-Aufruf in den HandsOff-Modus wechselt. Im HandsOff-Modus kann das Objekt nichts tun, und der einzige Vorgang, der funktioniert, ist ein Close-Vorgang.
Eine Containeranwendung ruft diese Methode in der Regel während eines vollständigen Speichervorgangs oder eines speicherarmen Speichervorgangs auf, um zu erzwingen, dass das Objekt alle Zeiger auf seinen aktuellen Speicher freigibt. In diesen Szenarien erfolgt der HandsOffStorage-Aufruf nach einem Aufruf von OleSave oder IPersistStorage::Save, wodurch das Objekt in den Modus HandsOffAfterSave versetzt wird. Das Aufrufen dieser Methode ist erforderlich, damit die Containeranwendung die aktuelle Datei als Teil einer vollständigen Speicherung löschen kann, oder damit sie die IRootStorage::SwitchToFile-Methode als Teil eines Speicherspeichers mit wenig Arbeitsspeicher aufrufen kann.
Eine Containeranwendung ruft diese Methode auch auf, wenn sich ein Objekt im Normalmodus befindet, um das Objekt in den HandsOffFromNormal-Modus zu versetzen.
Während sich das Komponentenobjekt im Modus HandsOffAfterSave oder HandsOffFromNormal befindet, schlagen die meisten Vorgänge für das Objekt fehl. Daher sollte der Container das Objekt so schnell wie möglich im Normalmodus wiederherstellen. Die Containeranwendung ruft dazu die IPersistStorage::SaveCompleted-Methode auf, die einen Speicherzeiger zurück an das Komponentenobjekt für das neue Speicherobjekt übergibt.
Hinweise zu Implementierern
Diese Methode muss alle Zeiger auf das aktuelle Speicherobjekt freigeben, einschließlich Zeigern auf alle geschachtelten Datenströme und Speicher. Wenn das Objekt geschachtelte Objekte enthält, muss die Containeranwendung diese Methode rekursiv für alle geschachtelten Objekte aufrufen, die geladen oder ausgeführt werden.Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | objidl.h |