Share via


Método IOleUndoManager::Close (ocidl.h)

Fecha a unidade de desfazer pai especificada.

Sintaxe

HRESULT Close(
  [in] IOleParentUndoUnit *pPUU,
  [in] BOOL               fCommit
);

Parâmetros

[in] pPUU

Um ponteiro para uma interface IOleParentUndoUnit para que a unidade pai atualmente aberta seja fechada.

[in] fCommit

Indica se a unidade deve ser mantida ou descartada. Se TRUE, a unidade será mantida na coleção. Se FALSE, a unidade será descartada. Esse parâmetro é usado para permitir que o cliente descarte uma unidade de desfazer em construção se ocorrer um erro ou cancelamento.

Retornar valor

Esse método retornará S_OK se o gerenciador de desfazer tiver uma unidade de desfazer pai aberta e tiver sido fechado com êxito. Se o gerenciador de desfazer estiver desabilitado, ele deverá retornar imediatamente S_OK e não fazer mais nada. Outros valores retornados possíveis incluem o seguinte.

Código de retorno Descrição
S_FALSE
A unidade de desfazer pai não tinha um filho aberto e foi fechada com êxito.
E_INVALIDARG
Se a pPUU não corresponder à unidade de desfazer pai aberta no momento, as implementações desse método deverão retornar E_INVALIDARG sem alterar nenhum estado interno, a menos que a unidade pai esteja bloqueada.

Comentários

Esse método é implementado da mesma forma que IOleParentUndoUnit::Close. Uma unidade de desfazer pai sabe que está sendo fechada quando retorna S_FALSE desse método. Nesse momento, ele deve encerrar qualquer comunicação com outros objetos que possam estar dando dados a ele por meio de interfaces privadas.

Anotações aos Chamadores

Um retorno de erro indica uma condição de erro fatal.

A unidade pai ou o gerenciador de desfazer deve aceitar a unidade de desfazer se fCommit for TRUE.

Observação aos implementadores

Para processar uma solicitação de fechamento, uma unidade de desfazer pai primeiro verifica se ela tem uma unidade filho aberta. Caso contrário, retornará S_FALSE.

Se ele tiver uma unidade filho aberta, ele chamará o método IOleUndoManager::Close no filho. Se o filho retornar S_FALSE, a unidade de desfazer pai verificará se a pPUU aponta para a unidade filho e fecha essa unidade de desfazer filho. Se o filho retornar S_OK então ele lidou com o fechamento internamente e seu pai não deve fazer nada.

Se a unidade pai estiver bloqueada, ela deverá marcar o parâmetro pPUU para determinar o código de retorno apropriado. Se a pPUU estiver apontando para si mesma, ela deverá retornar S_FALSE.

Caso contrário, ele deverá retornar S_OK; o parâmetro fCommit é ignorado; e nenhuma ação é tomada.

Se a pPUU não corresponder à unidade de desfazer pai aberta no momento, as implementações desse método deverão retornar E_INVALIDARG sem alterar nenhum estado interno. A única exceção a isso será se a unidade estiver bloqueada.

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

Confira também

IOleParentUndoUnit::Close

IOleUndoManager