Compartilhar via


Método IOleParentUndoUnit::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 IOleParentUndoUnit para a unidade pai aberta no momento a ser 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 retorna S_OK em caso de êxito. 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

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ções 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 IOleParentUndoUnit::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

IOleParentUndoUnit::Close