Compartilhar via


Método IStream::Commit (objidl.h)

O método Commit garante que todas as alterações feitas em um objeto de fluxo aberto no modo transacionado sejam refletidas no armazenamento pai. Se o objeto de fluxo estiver aberto no modo direto, IStream::Commit não terá nenhum efeito além de liberar todos os buffers de memória para o objeto de armazenamento de próximo nível. A implementação de arquivos compostos COM de fluxos não dá suporte à abertura de fluxos no modo transacionado.

Sintaxe

HRESULT Commit(
  [in] DWORD grfCommitFlags
);

Parâmetros

[in] grfCommitFlags

Controla como as alterações no objeto de fluxo são confirmadas. Consulte a enumeração STGC para obter uma definição desses valores.

Retornar valor

Esse método pode retornar um desses valores.

Código de retorno Descrição
S_OK As alterações no objeto de fluxo foram confirmadas com êxito no nível pai.
E_PENDING Somente armazenamento assíncrono: parte ou todos os dados do fluxo estão indisponíveis no momento.
STG_E_MEDIUMFULL A operação de confirmação falhou devido à falta de espaço no dispositivo de armazenamento.
STG_E_REVERTED O objeto foi invalidado por uma operação de reverter acima dele na árvore de transações.

Comentários

O método Commit garante que as alterações em um objeto de fluxo aberto no modo transacionado sejam refletidas no armazenamento pai. As alterações feitas no fluxo desde que ele foi aberto ou confirmado pela última vez são refletidas no objeto de armazenamento pai. Se o pai for aberto no modo transacionado, o pai poderá reverter posteriormente, revertendo as alterações nesse objeto de fluxo. A implementação de arquivo composto não dá suporte à abertura de fluxos no modo transacionado, portanto, esse método tem muito pouco efeito além de liberar buffers de memória. Para obter mais informações, consulte IStream – Implementação de arquivo composto.

Se o fluxo estiver aberto no modo direto, esse método garantirá que todos os buffers de memória tenham sido liberados para o objeto de armazenamento subjacente. Isso é muito parecido com uma liberação em sistemas de arquivos tradicionais.

O método IStream::Commit é útil em um fluxo de modo direto quando a implementação da interface IStream é um wrapper para APIs subjacentes do sistema de arquivos. Nesse caso, IStream::Commit seria conectado à chamada de liberação do sistema de arquivos.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows 2000 Server [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho objidl.h
Biblioteca Uuid.lib
DLL Ole32.dll

Confira também

IStorage::Commit

IStream – Implementação de arquivo composto