Método IStream::CopyTo (objidl.h)
O método CopyTo copia um número especificado de bytes do ponteiro de busca atual no fluxo para o ponteiro de busca atual em outro fluxo.
Sintaxe
HRESULT CopyTo(
[in] IStream *pstm,
[in] ULARGE_INTEGER cb,
[out] ULARGE_INTEGER *pcbRead,
[out] ULARGE_INTEGER *pcbWritten
);
Parâmetros
[in] pstm
Um ponteiro para o fluxo de destino. O fluxo apontado por pstm pode ser um novo fluxo ou um clone do fluxo de origem.
[in] cb
O número de bytes a serem copiados do fluxo de origem.
[out] pcbRead
Um ponteiro para o local onde esse método grava o número real de bytes lidos da origem. Você pode definir esse ponteiro como NULL. Nesse caso, esse método não fornece o número real de bytes lidos.
[out] pcbWritten
Um ponteiro para o local onde esse método grava o número real de bytes gravados no destino. Você pode definir esse ponteiro como NULL. Nesse caso, esse método não fornece o número real de bytes gravados.
Retornar valor
Esse método pode retornar um desses valores.
Código de retorno | Descrição |
---|---|
S_OK | O objeto stream foi copiado com êxito. |
E_PENDING | Somente armazenamento assíncrono: parte ou todos os dados a serem copiados não estão disponíveis no momento. |
STG_E_INVALIDPOINTER | O valor de um dos parâmetros de ponteiro é inválido. |
STG_E_MEDIUMFULL | O fluxo não é copiado porque não há 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 CopyTo copia os bytes especificados de um fluxo para outro. Ele também pode ser usado para copiar um fluxo para si mesmo. O ponteiro de busca em cada instância de fluxo é ajustado para o número de bytes lidos ou gravados. Esse método é equivalente à leitura de bytes cb na memória usando ISequentialStream::Read e, em seguida, gravá-los imediatamente no fluxo de destino usando ISequentialStream::Write, embora IStream::CopyTo seja mais eficiente.
O fluxo de destino pode ser um clone do fluxo de origem criado chamando o método IStream::Clone .
Se IStream::CopyTo retornar um erro, você não poderá assumir que os ponteiros de busca são válidos para a origem ou o destino. Além disso, os valores de pcbRead e pcbWritten não são significativos, mesmo que sejam retornados.
Se IStream::CopyTo retornar com êxito, o número real de bytes lidos e gravados será o mesmo.
Para copiar o restante da origem do ponteiro de busca atual, especifique o valor inteiro grande máximo para o parâmetro cb . Se o ponteiro de busca for o início do fluxo, essa operação copiará todo o fluxo.
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 |