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

Indique à l’objet de libérer tous les objets de stockage qui lui ont été passés par son conteneur et d’entrer en mode HandsOff.

Syntaxe

HRESULT HandsOffStorage();

Valeur de retour

Cette méthode retourne S_OK pour indiquer que l’objet est entré correctement en mode HandsOff.

Remarques

Cette méthode permet à un objet de libérer tous les objets de stockage qu’il contient et d’entrer en mode HandsOff jusqu’à un appel IPersistStorage ::SaveCompleted suivant. En mode HandsOff, l’objet ne peut rien faire et la seule opération qui fonctionne est une opération de fermeture.

Une application conteneur appelle généralement cette méthode lors d’une opération d’enregistrement complet ou à mémoire insuffisante pour forcer l’objet à libérer tous les pointeurs vers son stockage actuel. Dans ces scénarios, l’appel HandsOffStorage se produit après un appel à OleSave ou À IPersistStorage ::Save, mettant l’objet en mode HandsOffAfterSave. L’appel de cette méthode est nécessaire pour que l’application conteneur puisse supprimer le fichier actuel dans le cadre d’un enregistrement complet, ou pour qu’elle puisse appeler la méthode IRootStorage ::SwitchToFile dans le cadre d’un enregistrement à faible mémoire.

Une application conteneur appelle également cette méthode lorsqu’un objet est en mode Normal pour placer l’objet en mode HandsOffFromNormal.

Alors que l’objet de composant est en mode HandsOffAfterSave ou HandsOffFromNormal, la plupart des opérations sur l’objet échouent. Par conséquent, le conteneur doit restaurer l’objet en mode Normal dès que possible. Pour ce faire, l’application conteneur appelle la méthode IPersistStorage ::SaveCompleted , qui transmet un pointeur de stockage à l’objet composant pour le nouvel objet de stockage.

Remarques aux implémenteurs

Cette méthode doit libérer tous les pointeurs vers l’objet de stockage actuel, y compris les pointeurs vers les flux et les stockages imbriqués. Si l’objet contient des objets imbriqués, l’application conteneur doit appeler de manière récursive cette méthode pour tous les objets imbriqués chargés ou en cours d’exécution.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête objidl.h

Voir aussi

IPersistStorage

OleSave