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 |