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

O método Clone cria um novo objeto de fluxo com seu próprio ponteiro de busca que faz referência aos mesmos bytes do fluxo original.

Sintaxe

HRESULT Clone(
  [out] IStream **ppstm
);

Parâmetros

[out] ppstm

Quando bem-sucedido, ponteiro para o local de um ponteiro IStream para o novo objeto de fluxo. Se ocorrer um erro, esse parâmetro será NULL.

Retornar valor

Esse método pode retornar um desses valores.

Código de retorno Descrição
S_OK O fluxo foi clonado com êxito.
E_PENDING Somente armazenamento assíncrono: parte ou todos os dados do fluxo estão indisponíveis no momento.
STG_E_INSUFFICIENTMEMORY O fluxo não foi clonado devido à falta de memória.
STG_E_INVALIDPOINTER O ponteiro ppStm não é válido.
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 Clone cria um novo objeto de fluxo para acessar os mesmos bytes, mas usando um ponteiro de busca separado. O novo objeto de fluxo vê os mesmos dados que o objeto source-stream. As alterações gravadas em um objeto são imediatamente visíveis na outra. O bloqueio de intervalo é compartilhado entre os objetos de fluxo.

A configuração inicial do ponteiro seek na instância de fluxo clonada é a mesma da configuração atual do ponteiro seek no fluxo original no momento da operação de clone.

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

IStream – Implementação de arquivo composto

IStream::CopyTo