Metodo IOleUndoManager::Close (ocidl.h)

Chiude l'unità di annullamento padre specificata.

Sintassi

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

Parametri

[in] pPUU

Puntatore a un'interfaccia IOleParentUndoUnit per la chiusura dell'unità padre attualmente aperta.

[in] fCommit

Indica se mantenere o eliminare l'unità. Se TRUE, l'unità viene mantenuta nell'insieme. Se FALSE, l'unità viene eliminata. Questo parametro viene usato per consentire al client di eliminare un'unità di annullamento in fase di costruzione se si verifica un errore o un annullamento.

Valore restituito

Questo metodo restituisce S_OK se il gestore di annullamento ha un'unità di annullamento padre aperta ed è stata chiusa correttamente. Se il gestore di annullamento è disabilitato, deve restituire immediatamente S_OK e non eseguire altre operazioni. Gli altri valori restituiti possibili includono i seguenti:

Codice restituito Descrizione
S_FALSE
L'unità di annullamento padre non ha un elemento figlio aperto ed è stata chiusa correttamente.
E_INVALIDARG
Se pPUU non corrisponde all'unità di annullamento padre attualmente aperta, le implementazioni di questo metodo devono restituire E_INVALIDARG senza modificare alcuno stato interno, a meno che l'unità padre non sia bloccata.

Commenti

Questo metodo viene implementato come IOleParentUndoUnit::Close. Un'unità di annullamento padre sa che viene chiusa quando restituisce S_FALSE da questo metodo. In quel momento, deve terminare qualsiasi comunicazione con altri oggetti che potrebbero fornire dati tramite interfacce private.

Note ai chiamanti

Un errore restituito indica una condizione di errore irreversibile.

L'unità padre o il gestore di annullamento deve accettare l'unità di annullamento se fCommit è TRUE.

Nota per gli implementatori

Per elaborare una richiesta di chiusura, un'unità di annullamento padre controlla prima di tutto se ha un'unità figlio aperta. In caso contrario, restituisce S_FALSE.

Se ha un'unità figlio aperta, chiama il metodo IOleUndoManager::Close sull'elemento figlio. Se l'elemento figlio restituisce S_FALSE, l'unità di annullamento padre verifica che pPUU punti all'unità figlio e chiuda l'unità di annullamento figlio. Se l'elemento figlio restituisce S_OK, la chiusura è stata gestita internamente e l'elemento padre non deve eseguire alcuna operazione.

Se l'unità padre è bloccata, deve controllare il parametro pPUU per determinare il codice restituito appropriato. Se pPUU punta a se stesso, deve restituire S_FALSE.

In caso contrario, deve restituire S_OK; il parametro fCommit viene ignorato; e non viene eseguita alcuna azione.

Se pPUU non corrisponde all'unità di annullamento padre attualmente aperta, le implementazioni di questo metodo devono restituire E_INVALIDARG senza modificare alcuno stato interno. L'unica eccezione è se l'unità è bloccata.

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

IOleParentUndoUnit::Close

IOleUndoManager