Compartir a través de


Método ISequentialStream::Read (objidl.h)

El método Read lee un número especificado de bytes del objeto de secuencia en la memoria, empezando por el puntero de búsqueda actual.

Sintaxis

HRESULT Read(
  [out] void  *pv,
  [in]  ULONG cb,
  [out] ULONG *pcbRead
);

Parámetros

[out] pv

Puntero al búfer en el que se leen los datos del flujo.

[in] cb

Número de bytes de datos que se van a leer del objeto de secuencia.

[out] pcbRead

Puntero a una variable ULONG que recibe el número real de bytes leídos del objeto de secuencia.

Nota El número de bytes leídos puede ser cero.
 

Valor devuelto

Este método puede devolver uno de estos valores.

Código devuelto Descripción
S_OK Todos los datos solicitados se leyeron correctamente desde el objeto stream; el número de bytes solicitados en cb es el mismo que el número de bytes devueltos en pcbRead.
S_FALSE El valor devuelto en pcbRead es menor que el número de bytes solicitados en cb. Esto indica que se ha alcanzado el final de la secuencia. El número de bytes leídos indica cuánto se ha rellenado el búfer pv .
E_PENDING Solo almacenamiento asincrónico: la parte o todos los datos que se van a leer no están disponibles actualmente.
STG_E_ACCESSDENIED El autor de la llamada no tiene permisos necesarios para leer este objeto de secuencia.
STG_E_INVALIDPOINTER Uno de los valores de puntero no es válido.
STG_E_REVERTED El objeto se ha invalidado por una operación de reversión por encima de él en el árbol de transacciones.

Comentarios

Este método lee bytes de este objeto de secuencia en la memoria. El objeto stream debe abrirse en modo STGM_READ . Este método ajusta el puntero de búsqueda por el número real de bytes leídos.

El número de bytes leídos en realidad también se devuelve en el parámetro pcbRead .

Notas a los autores de llamadas

El número real de bytes leídos puede ser menor que el número de bytes solicitado si se produce un error o si se alcanza el final de la secuencia durante la operación de lectura. El número de bytes devueltos siempre debe compararse con el número de bytes solicitados. Si el número de bytes devueltos es menor que el número de bytes solicitados, normalmente significa que el método Read intentó leer más allá del final de la secuencia.

La aplicación debe controlar un error devuelto y S_OK valores devueltos en las operaciones de lectura de final de 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::Write

IStorage::OpenStream

Istream

IStream: implementación de archivos compuestos

STGMOVE