Condividi tramite


Metodo IStream::Commit (objidl.h)

Il metodo Commit garantisce che tutte le modifiche apportate a un oggetto di flusso aperto in modalità transazionata vengano riflesse nell'archiviazione padre. Se l'oggetto di flusso è aperto in modalità diretta, IStream::Commit non ha effetto diverso dal scaricare tutti i buffer di memoria all'oggetto di archiviazione a livello successivo. L'implementazione del file composto COM dei flussi non supporta l'apertura dei flussi in modalità transazionata.

Sintassi

HRESULT Commit(
  [in] DWORD grfCommitFlags
);

Parametri

[in] grfCommitFlags

Controlla la modalità di esecuzione del commit delle modifiche dell'oggetto flusso. Per una definizione di questi valori, vedere l'enumerazione STGC .

Valore restituito

Questo metodo può restituire uno di questi valori.

Codice restituito Descrizione
S_OK Le modifiche apportate all'oggetto di flusso sono state eseguite correttamente al livello padre.
E_PENDING Solo archiviazione asincrona: parte o tutti i dati del flusso non sono attualmente disponibili.
STG_E_MEDIUMFULL L'operazione di commit non è riuscita a causa della mancanza di spazio nel dispositivo di archiviazione.
STG_E_REVERTED L'oggetto è stato invalidato da un'operazione di ripristino sopra di essa nell'albero delle transazioni.

Commenti

Il metodo Commit garantisce che le modifiche a un oggetto di flusso aperto in modalità transacted vengano riflesse nell'archiviazione padre. Le modifiche apportate al flusso dopo l'apertura o l'ultimo commit vengono riflesse nell'oggetto di archiviazione padre. Se l'elemento padre viene aperto in modalità transazionata, l'elemento padre può essere ripristinato in un secondo momento, eseguendo il rollback delle modifiche apportate a questo oggetto di flusso. L'implementazione di file composta non supporta l'apertura di flussi in modalità transazionata, quindi questo metodo ha un effetto molto minore rispetto a quello di scaricare i buffer di memoria. Per altre informazioni, vedere Implementazione dei file composti IStream.

Se il flusso è aperto in modalità diretta, questo metodo garantisce che tutti i buffer di memoria siano stati scaricati nell'oggetto di archiviazione sottostante. Questo è molto simile a uno scaricamento nei file system tradizionali.

Il metodo IStream::Commit è utile in un flusso in modalità diretta quando l'implementazione dell'interfaccia IStream è un wrapper per le API del file system sottostante. In questo caso, IStream::Commit sarà connesso alla chiamata di scaricamento del file system.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [app desktop | App UWP]
Server minimo supportato Windows 2000 Server [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione objidl.h
Libreria Uuid.lib
DLL Ole32.dll

Vedi anche

IStorage::Commit

IStream - Implementazione di file composti