Metodo IOleUndoManager::UndoTo (ocidl.h)

Indica al gestore di annullamento di richiamare le azioni di annullamento tramite lo stack di annullamento, fino a e includere l'unità di annullamento specificata.

Sintassi

HRESULT UndoTo(
  [in] IOleUndoUnit *pUU
);

Parametri

[in] pUU

Puntatore all'unità di primo livello da annullare. Se questo parametro è NULL, viene usata l'unità di primo livello aggiunta più di recente.

Valore restituito

Questo metodo restituisce S_OK se l'operazione ha esito positivo. Gli altri valori restituiti possibili includono i seguenti:

Codice restituito Descrizione
E_INVALIDARG
L'unità di annullamento specificata non è nello stack di annullamento.
E_ABORT
Tentativo di annullamento e tentativo di rollback non riuscito. Il gestore di annullamento non deve mai propagare la E_ABORT ottenuta da un'unità di annullamento contenuta. Deve invece eseguire il mapping di qualsiasi E_ABORT valori restituiti da altre unità di annullamento a E_FAIL. Il gestore annulla deve eseguire il mapping di qualsiasi valore E_ABORT restituito da altre unità di annullamento a E_FAIL perché il chiamante di IOleUndoManager::UndoTo sa che il tentativo di annullamento e il tentativo di rollback non sono riusciti e questo è l'unico motivo per il valore restituito di E_ABORT.
E_UNEXPECTED
Il gestore di annullamento è disabilitato.

Commenti

Questo metodo chiama il metodo IOleUndoUnit::D o in ogni unità di annullamento di primo livello. Quindi, rilascia l'unità di annullamento.

Si noti che l'unità di annullamento specificata deve essere un'unità di primo livello, in genere recuperata tramite IOleUndoManager::EnumUndoable.

Nel caso in cui venga restituito un errore dall'unità di annullamento, il gestore di annullamento deve tentare di eseguire il rollback dello stato del documento per il ripristino dall'errore eseguendo azioni nello stack di ripristino.

Indipendentemente dal successo del rollback, il gestore di annullamento deve sempre cancellare entrambi gli stack prima di restituire l'errore.

Se il gestore di annullamento ha chiamato il metodo Do in più di un'unità di primo livello, dovrebbe eseguire il rollback dell'unità che ha restituito l'errore. Le unità di primo livello che hanno esito positivo non devono essere rollback.

Il gestore di annullamento deve tenere traccia anche del fatto che le unità siano state aggiunte allo stack opposto in modo che non tenti il rollback se non è stato aggiunto nulla. Per una descrizione dettagliata della gestione degli errori, vedere l'interfaccia IOleUndoManager .

Note ai chiamanti

È possibile che un'unità di annullamento restituisca E_ABORT come errore, ma che non ha alcun significato specifico in IOleUndoUnit. Poiché la gestione annullamento restituirà in genere il codice di errore fornito dall'unità di annullamento non riuscito e E_ABORT ha un significato specifico su IOleUndoManager::UndoTo, la gestione annullamento non deve mai passare E_ABORT perché il chiamante interpreterà che come errore di rollback quando potrebbe essere riuscito.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione ocidl.h

Vedi anche

IOleUndoManager

IOleUndoManager::EnumUndoable

IOleUndoManager::RedoTo

IOleUndoUnit::D o