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 |
---|---|
|
L'unità di annullamento specificata non è nello stack di annullamento. |
|
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. |
|
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 |