Método IByteBuffer::Read
[El método Read está disponible para su uso en los sistemas operativos especificados en la sección Requisitos. No está disponible para su uso en Windows Server 2003 con Service Pack 1 (SP1) y versiones posteriores, Windows Vista, Windows Server 2008 y versiones posteriores del sistema operativo. La interfaz IStream proporciona una funcionalidad similar.]
El método Read lee un número especificado de bytes del objeto de búfer en la memoria a partir del puntero de búsqueda actual.
Sintaxis
HRESULT Read(
[out] BYTE *pByte,
[in] LONG cb,
[out] LONG *pcbRead
);
Parámetros
-
pByte [out]
-
Apunta al búfer en el que se leen los datos del flujo. Si se produce un error, este valor es NULL.
-
cb [in]
-
Número de bytes de datos que se van a intentar leer del objeto de secuencia.
-
pcbRead [out]
-
Dirección de una variable LONG que recibe el número real de bytes leídos del objeto de secuencia. Puede establecer este puntero en NULL para indicar que no está interesado en este valor. En este caso, este método no proporciona el número real de bytes leídos.
Valor devuelto
El valor devuelto es hrESULT. Un valor de S_OK indica que la llamada se realizó correctamente.
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 las 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.
Algunas implementaciones pueden devolver un error si se alcanza el final de la secuencia durante la lectura. Debe estar preparado para tratar el error devuelto o S_OK valores devueltos al final de las lecturas de la secuencia.
Ejemplos
En el ejemplo siguiente se muestran los bytes de lectura del búfer.
BYTE byAtr[32];
long lBytesRead, i;
HRESULT hr;
// pAtr is a pointer to a previously instantiated IByteBuffer.
// It was used in an earlier call by ISCard::get_Atr.
// Use IByteBuffer::Read to access the retrieved ATR bytes.
hr = pAtr->Read(byAtr, 32, &lBytesRead);
// Use the ATR value. (This example merely displays the bytes.)
for ( i = 0; i < lBytesRead; i++)
printf("%c", *(byAtr + i));
printf("\n");
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible |
Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible |
Windows Server 2003 [solo aplicaciones de escritorio] |
Fin de compatibilidad de cliente |
Windows XP |
Fin de compatibilidad de servidor |
Windows Server 2003 |
Encabezado |
|
Biblioteca de tipos |
|
Archivo DLL |
|
IID |
IID_IByteBuffer se define como E126F8FE-A7AF-11D0-B88A-00C04FD424B9 |