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

El método CopyTo copia un número especificado de bytes del puntero de búsqueda actual en la secuencia al puntero de búsqueda actual de otra secuencia.

Sintaxis

HRESULT CopyTo(
  [in]  IStream        *pstm,
  [in]  ULARGE_INTEGER cb,
  [out] ULARGE_INTEGER *pcbRead,
  [out] ULARGE_INTEGER *pcbWritten
);

Parámetros

[in] pstm

Puntero al flujo de destino. La secuencia a la que apunta pstm puede ser una secuencia nueva o un clon de la secuencia de origen.

[in] cb

El número de bytes que se copia del flujo de origen.

[out] pcbRead

Puntero a la ubicación donde este método escribe el número real de bytes leídos del origen. Puede establecer este puntero en NULL. En este caso, este método no proporciona el número real de bytes leídos.

[out] pcbWritten

Puntero a la ubicación donde este método escribe el número real de bytes escritos en el destino. Puede establecer este puntero en NULL. En este caso, este método no proporciona el número real de bytes escritos.

Valor devuelto

Este método puede devolver uno de estos valores.

Código devuelto Descripción
S_OK El objeto stream se copió correctamente.
E_PENDING Solo almacenamiento asincrónico: la parte o todos los datos que se van a copiar no están disponibles actualmente.
STG_E_INVALIDPOINTER El valor de uno de los parámetros de puntero no es válido.
STG_E_MEDIUMFULL La secuencia no se copia porque no queda espacio en el dispositivo de almacenamiento.
STG_E_REVERTED El objeto ha sido invalidado por una operación de reversión encima de él en el árbol de transacciones.

Comentarios

El método CopyTo copia los bytes especificados de una secuencia a otra. También se puede usar para copiar una secuencia en sí misma. El puntero de búsqueda de cada instancia de flujo se ajusta para el número de bytes leídos o escritos. Este método equivale a leer bytes cb en memoria mediante ISequentialStream::Read y, a continuación, escribirlos inmediatamente en la secuencia de destino mediante ISequentialStream::Write, aunque IStream::CopyTo será más eficaz.

La secuencia de destino puede ser un clon de la secuencia de origen creada llamando al método IStream::Clone .

Si IStream::CopyTo devuelve un error, no puede suponer que los punteros de búsqueda son válidos para el origen o el destino. Además, los valores de pcbRead y pcbWritten no son significativos aunque se devuelvan.

Si IStream::CopyTo se devuelve correctamente, el número real de bytes leídos y escritos es el mismo.

Para copiar el resto del origen desde el puntero de búsqueda actual, especifique el valor entero máximo grande para el parámetro cb . Si el puntero de búsqueda es el principio de la secuencia, esta operación copia toda la secuencia.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows 2000 Server [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado objidl.h
Library Uuid.lib
Archivo DLL Ole32.dll

Consulte también

ISequentialStream::Read

ISequentialStream::Write

IStream: implementación de archivos compuestos

IStream::Clone