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 |