Partager via


Méthode IOleUndoManager ::UndoTo (ocidl.h)

Indique au gestionnaire d’annulation d’appeler des actions d’annulation par le biais de la pile d’annulation, jusqu’à et y compris l’unité d’annulation spécifiée.

Syntaxe

HRESULT UndoTo(
  [in] IOleUndoUnit *pUU
);

Paramètres

[in] pUU

Pointeur vers l’unité de niveau supérieur à annuler. Si ce paramètre a la valeur NULL, l’unité de niveau supérieur ajoutée la plus récente est utilisée.

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
E_INVALIDARG
L’unité d’annulation spécifiée ne se trouve pas sur la pile d’annulation.
E_ABORT
La tentative d’annulation et la tentative de restauration ont échoué. Le gestionnaire d’annulation ne doit jamais propager les E_ABORT obtenues à partir d’une unité d’annulation autonome. Au lieu de cela, il doit mapper toutes les valeurs E_ABORT retournées par d’autres unités d’annulation à E_FAIL. Le gestionnaire d’annulation doit mapper toute valeur de E_ABORT retournée par d’autres unités d’annulation à E_FAIL, car l’appelant de IOleUndoManager ::UndoTo sait que la tentative d’annulation et la tentative de restauration ont échoué, et c’est la seule raison pour laquelle la valeur de retour de E_ABORT.
E_UNEXPECTED
Le gestionnaire d’annulation est désactivé.

Remarques

Cette méthode appelle la méthode IOleUndoUnit ::D o sur chaque unité d’annulation de niveau supérieur. Ensuite, il libère cette unité d’annulation.

Notez que l’unité d’annulation spécifiée doit être une unité de niveau supérieur, généralement récupérée via IOleUndoManager ::EnumUndoable.

Si une erreur est retournée à partir de l’unité d’annulation, le gestionnaire d’annulation doit tenter de restaurer l’état du document pour récupérer de l’erreur en effectuant des actions sur la pile de restauration automatique.

Quelle que soit la réussite de la restauration, le gestionnaire d’annulation doit toujours effacer les deux piles avant de renvoyer l’erreur.

Si le gestionnaire d’annulation a appelé la méthode Do sur plusieurs unités de niveau supérieur, il doit uniquement restaurer l’unité qui a retourné l’erreur. Les unités de niveau supérieur qui ont réussi ne doivent pas être restaurées.

Le gestionnaire d’annulation doit également suivre si des unités ont été ajoutées à la pile opposée afin qu’il ne tente pas de restaurer si rien n’a été ajouté. Consultez l’interface IOleUndoManager pour obtenir une description détaillée de la gestion des erreurs.

Notes aux appelants

Il est possible qu’une unité d’annulation retourne E_ABORT en tant qu’échec, mais cela n’a pas de signification spécifique sur IOleUndoUnit. Étant donné que le gestionnaire d’annulation retourne généralement le code d’erreur donné par l’unité d’annulation ayant échoué, et que E_ABORT a une signification spécifique sur IOleUndoManager ::UndoTo, le gestionnaire d’annulation ne doit jamais transmettre E_ABORT, car l’appelant l’interprétera comme l’échec de la restauration alors qu’en fait il a peut-être réussi.

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

IOleUndoManager

IOleUndoManager ::EnumUndoable

IOleUndoManager ::RedoTo

IOleUndoUnit ::D o