Partager via


IOleUndoManager ::Close, méthode (ocidl.h)

Ferme l'unité d'annulation parente spécifiée.

Syntaxe

HRESULT Close(
  [in] IOleParentUndoUnit *pPUU,
  [in] BOOL               fCommit
);

Paramètres

[in] pPUU

Pointeur vers une interface IOleParentUndoUnit pour la fermeture de l’unité parente actuellement ouverte.

[in] fCommit

Indique s’il faut conserver ou ignorer l’unité. Si la valeur est TRUE, l’unité est conservée dans la collection. Si la valeur est FALSE, l’unité est ignorée. Ce paramètre permet au client d’ignorer une unité d’annulation en cours de construction en cas d’erreur ou d’annulation.

Valeur retournée

Cette méthode retourne S_OK si le gestionnaire d’annulation avait une unité d’annulation parente ouverte et qu’elle a été correctement fermée. Si le gestionnaire d’annulation est désactivé, il doit immédiatement retourner S_OK et ne rien faire d’autre. Les autres valeurs de retour possibles sont les suivantes.

Code de retour Description
S_FALSE
L’unité d’annulation parente n’avait pas d’enfant ouvert et elle a été fermée avec succès.
E_INVALIDARG
Si pPUU ne correspond pas à l’unité d’annulation parente actuellement ouverte, les implémentations de cette méthode doivent retourner E_INVALIDARG sans modifier d’état interne, sauf si l’unité parente est bloquée.

Remarques

Cette méthode est implémentée de la même façon que IOleParentUndoUnit ::Close. Une unité d’annulation parente sait qu’elle est fermée lorsqu’elle retourne S_FALSE à partir de cette méthode. À ce moment-là, il doit mettre fin à toute communication avec d’autres objets qui peuvent lui donner des données via des interfaces privées.

Remarques aux appelants

Un retour d’erreur indique une condition d’erreur irrécupérable.

L’unité parente ou le gestionnaire d’annulation doit accepter l’unité d’annulation si fCommit a la valeur TRUE.

Remarque aux implémenteurs

Pour traiter une demande de fermeture, une unité d’annulation parente vérifie d’abord si elle a une unité enfant ouverte. Si ce n’est pas le cas, elle retourne S_FALSE.

Si une unité enfant est ouverte, elle appelle la méthode IOleUndoManager ::Close sur l’enfant. Si l’enfant retourne S_FALSE, l’unité d’annulation parente vérifie que pPUU pointe vers l’unité enfant et ferme cette unité d’annulation enfant. Si l’enfant retourne S_OK il a géré la fermeture en interne et son parent ne doit rien faire.

Si l’unité parente est bloquée, elle doit case activée le paramètre pPUU pour déterminer le code de retour approprié. Si pPUU pointe vers lui-même, il doit retourner S_FALSE.

Sinon, elle doit retourner S_OK ; le paramètre fCommit est ignoré ; et aucune mesure n’est prise.

Si pPUU ne correspond pas à l’unité d’annulation parente actuellement ouverte, les implémentations de cette méthode doivent retourner E_INVALIDARG sans modifier l’état interne. La seule exception à cela est si l’unité est bloquée.

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 ocidl.h

Voir aussi

IOleParentUndoUnit ::Close

IOleUndoManager