Partager via


IOleParentUndoUnit ::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 IOleParentUndoUnit vers l’unité parente actuellement ouverte à fermer.

[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 en cas de réussite. 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

Une unité d’annulation parente sait qu’elle est fermée lorsqu’elle retourne S_FALSE de cette méthode. À ce moment-là, il doit mettre fin à toute communication avec d’autres objets qui lui donnent des données par le biais d’interfaces privées.

Notes 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.

Notes 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, il retourne S_FALSE.

Si une unité enfant est ouverte, elle appelle la méthode IOleParentUndoUnit ::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 alors 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.

Dans le cas contraire, il doit retourner S_OK ; le paramètre fCommit est ignoré ; et aucune action 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

IOleParentUndoUnit ::Close