Método IOleUndoManager::UndoTo (ocidl.h)
Instrui o gerenciador de desfazer a invocar ações de desfazer novamente por meio da pilha de desfazer, até e incluindo a unidade de desfazer especificada.
Sintaxe
HRESULT UndoTo(
[in] IOleUndoUnit *pUU
);
Parâmetros
[in] pUU
Ponteiro para a unidade de nível superior a ser desfeito. Se esse parâmetro for NULL, a unidade de nível superior adicionada mais recentemente será usada.
Retornar valor
Esse método retorna S_OK com êxito. Outros valores retornados possíveis incluem o seguinte.
Código de retorno | Descrição |
---|---|
|
A unidade de desfazer especificada não está na pilha de desfazer. |
|
Falha na tentativa de desfazer e na tentativa de reversão. O gerenciador de desfazer nunca deve propagar o E_ABORT obtido de uma unidade de desfazer contida. Em vez disso, ele deve mapear todos os valores de E_ABORT retornados de outras unidades de desfazer para E_FAIL. O gerenciador de desfazer deve mapear qualquer valor E_ABORT retornado de outras unidades de desfazer para E_FAIL porque o chamador de IOleUndoManager::UndoTo sabe que a tentativa de desfazer e a tentativa de reversão falharam e esse é o único motivo para o valor retornado de E_ABORT. |
|
O gerenciador de desfazer está desabilitado. |
Comentários
Esse método chama o método IOleUndoUnit::D o em cada unidade de desfazer de nível superior. Em seguida, ele libera essa unidade de desfazer.
Observe que a unidade de desfazer especificada deve ser uma unidade de nível superior, normalmente recuperada por meio de IOleUndoManager::EnumUndoable.
Caso um erro seja retornado da unidade de desfazer, o gerenciador de desfazer precisará tentar reverter o estado do documento para se recuperar do erro executando ações na pilha de refazer.
Independentemente do sucesso da reversão, o gerenciador de desfazer sempre deve limpar as duas pilhas antes de retornar o erro.
Se o gerenciador de desfazer tiver chamado o método Do em mais de uma unidade de nível superior, ele só deverá reverter a unidade que retornou o erro. As unidades de nível superior que tiveram êxito não devem ser revertidas.
O gerenciador de desfazer também deve acompanhar se as unidades foram adicionadas à pilha oposta para que não tente reverter se nada tiver sido adicionado. Consulte a interface IOleUndoManager para obter uma descrição detalhada do tratamento de erros.
Anotações para chamadores
É possível que uma unidade de desfazer retorne E_ABORT como uma falha, mas isso não tem nenhum significado específico em IOleUndoUnit. Como o gerenciador de desfazer normalmente retornará o código de erro dado pela unidade de desfazer com falha e E_ABORT tem um significado específico em IOleUndoManager::UndoTo, o gerenciador de desfazer nunca deve passar E_ABORT porque o chamador interpretará isso como falha na reversão quando, na verdade, ele pode ter êxito.Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | ocidl.h |