Metodo IPersistStorage::SaveCompleted (objidl.h)

Notifica all'oggetto che può scrivere nell'oggetto di archiviazione. Questa operazione viene eseguita notificando all'oggetto che può ripristinare la modalità NoScribble (in cui non deve scrivere nell'oggetto di archiviazione), in modalità Normale (in cui può essere possibile). L'oggetto entra in modalità NoScribble quando riceve una chiamata IPersistStorage::Save .

Sintassi

HRESULT SaveCompleted(
  [in] IStorage *pStgNew
);

Parametri

[in] pStgNew

Puntatore IStorage al nuovo oggetto di archiviazione, se diverso dall'oggetto di archiviazione prima del salvataggio. Questo puntatore può essere NULL se l'oggetto di archiviazione corrente non cambia durante l'operazione di salvataggio. Se l'oggetto è in modalità HandsOff, questo parametro deve essere diverso da NULL.

Valore restituito

Questo metodo può restituire i valori seguenti.

Codice restituito Descrizione
S_OK
Metodo completato correttamente.
E_OUTOFMEMORY
L'oggetto rimane in modalità HandsOff o in modalità NoScribble a causa di una mancanza di memoria. In genere, questo errore si verifica quando l'oggetto non è in grado di aprire i flussi e gli oggetti di archiviazione necessari in pStgNew.
E_INVALIDARG
Il parametro pStgNew non è valido. In genere, questo errore si verifica se pStgNew è NULL quando l'oggetto è in modalità HandsOff.
E_UNEXPECTED
L'oggetto è in modalità Normale e non è stata eseguita alcuna chiamata precedente a IPersistStorage::Save o IPersistStorage::HandsOffStorage.

Commenti

Questo metodo notifica a un oggetto che può ripristinare la modalità Normale e può scrivere nuovamente nell'oggetto di archiviazione. L'oggetto chiude la modalità NoScribble o HandsOff.

Se l'oggetto viene ripristinato dalla modalità HandsOff, il parametro pStgNew deve essere diverso da NULL. In modalità HandsOffFromNormal questo parametro è il nuovo oggetto di archiviazione che sostituisce quello revocato dal metodo IPersistStorage::HandsOffStorage . I dati nell'oggetto di archiviazione sono una copia dei dati dall'oggetto di archiviazione revocato. In modalità HandsOffAfterSave i dati sono uguali ai dati salvati più di recente. Non è uguale ai dati nell'oggetto di archiviazione revocato.

Se l'oggetto viene ripristinato dalla modalità NoScribble, il parametro pStgNew può essere NULL o non NULL. Se NULL, l'oggetto ha ancora una volta accesso all'oggetto di archiviazione. Se non è NULL, l'oggetto componente deve simulare la ricezione di una chiamata al metodo HandsOffStorage . Se l'oggetto componente non può simulare questa chiamata, il contenitore deve essere preparato per chiamare effettivamente il metodo HandsOffStorage .

Questo metodo deve chiamare in modo ricorsivo tutti gli oggetti annidati caricati o in esecuzione.

Se questo metodo restituisce un codice di errore, l'oggetto non viene restituito alla modalità Normale. Pertanto, l'oggetto contenitore può tentare diverse strategie di salvataggio.

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 objidl.h

Vedi anche

IPersistStorage