Condividi tramite


Metodo IPersistStream::Save (objidl.h)

Salva un oggetto nel flusso specificato.

Sintassi

HRESULT Save(
  [in] IStream *pStm,
  [in] BOOL    fClearDirty
);

Parametri

[in] pStm

Puntatore IStream al flusso in cui deve essere salvato l'oggetto.

[in] fClearDirty

Indica se il flag modificato deve essere cancellato al termine del salvataggio. Se TRUE, il flag deve essere cancellato. Se FALSE, il flag deve essere lasciato invariato.

Valore restituito

Questo metodo può restituire i valori seguenti.

Codice restituito Descrizione
S_OK
Metodo completato correttamente.
STG_E_CANTSAVE
L'oggetto non è riuscito a salvarlo nel flusso. Questo errore potrebbe indicare, ad esempio, che l'oggetto contiene un altro oggetto che non è serializzabile in un flusso o che una chiamata ISequentialStream::Write restituita STG_E_CANTSAVE.
STG_E_MEDIUMFULL
Impossibile salvare l'oggetto perché non è stato lasciato spazio nel dispositivo di archiviazione.

Commenti

IPersistStream::Save salva un oggetto nel flusso specificato e indica se l'oggetto deve reimpostare il flag sporco.

Il puntatore di ricerca viene posizionato nella posizione del flusso in cui l'oggetto deve iniziare a scrivere i dati. L'oggetto chiama il metodo ISequentialStream::Write per scrivere i dati.

In uscita, il puntatore di ricerca deve essere posizionato immediatamente oltre i dati dell'oggetto. La posizione del puntatore di ricerca non è definita se viene restituito un errore.

Note ai chiamanti

Anziché chiamare direttamente IPersistStream::Save , in genere si chiama la funzione helper OleSaveToStream che esegue le operazioni seguenti:
  1. Chiama GetClassID per ottenere CLSID dell'oggetto.
  2. Chiama la funzione WriteClassStm per scrivere il CLSID dell'oggetto nel flusso.
  3. Chiama IPersistStream::Save.
Se si chiamano direttamente questi metodi, è possibile scrivere altri dati nel flusso dopo CLSID prima di chiamare IPersistStream::Save.

L'implementazione fornita da OLE di IPersistStream segue questo stesso modello.

Note per gli implementatori

Il metodo IPersistStream::Save non scrive CLSID nel flusso. Il chiamante è responsabile della scrittura del CLSID.

Il metodo IPersistStream::Save può leggere, scrivere e cercare nel flusso; ma non deve cercare una posizione nel flusso prima di quella del puntatore di ricerca all'ingresso.

Note sul moniker URL

Salva un moniker URL in un flusso. Il formato binario del moniker URL è la stringa URL in Unicode (può essere una stringa URL completa o parziale, vedere CreateURLMonikerEx per informazioni dettagliate). Questo valore è rappresentato come numero ULONG di caratteri seguiti da molti caratteri Unicode.

Requisiti

   
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

Ipersiststream