Condividi tramite


Metodo IByteBuffer::Read

[Il metodo Read è disponibile per l'uso nei sistemi operativi specificati nella sezione Requisiti. Non è disponibile per l'uso in Windows Server 2003 con Service Pack 1 (SP1) e versioni successive, Windows Vista, Windows Server 2008 e versioni successive del sistema operativo. L'interfaccia IStream offre funzionalità simili.

Il metodo Read legge un numero specificato di byte dall'oggetto buffer in memoria a partire dal puntatore di ricerca corrente.

Sintassi

HRESULT Read(
  [out] BYTE *pByte,
  [in]  LONG cb,
  [out] LONG *pcbRead
);

Parametri

pByte [out]

Punta al buffer in cui vengono letti i dati del flusso. Se si verifica un errore, questo valore è NULL.

cb [in]

Numero di byte di dati da cercare di leggere dall'oggetto flusso.

pcbRead [out]

Indirizzo di una variabile LONG che riceve il numero effettivo di byte letti dall'oggetto flusso. È possibile impostare questo puntatore su NULL per indicare che non si è interessati a questo valore. In questo caso, questo metodo non fornisce il numero effettivo di byte letti.

Valore restituito

Il valore restituito è HRESULT. Un valore di S_OK indica che la chiamata ha avuto esito positivo.

Commenti

Questo metodo legge i byte da questo oggetto flusso in memoria. L'oggetto flusso deve essere aperto in modalità STGM_READ. Questo metodo regola il puntatore di ricerca in base al numero effettivo di byte letti.

Il numero di byte effettivamente letti viene restituito anche nel parametro pcbRead .

Note per i chiamanti

Il numero effettivo di byte letti può essere inferiore al numero di byte richiesti se si verifica un errore o se viene raggiunta la fine del flusso durante l'operazione di lettura.

Alcune implementazioni potrebbero restituire un errore se la fine del flusso viene raggiunta durante la lettura. È necessario essere pronti a gestire l'errore restituito o S_OK valori restituiti alla fine delle letture del flusso.

Esempio

L'esempio seguente mostra la lettura di byte dal buffer.

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");

Requisiti

Requisito Valore
Client minimo supportato
Windows XP [solo app desktop]
Server minimo supportato
Windows Server 2003 [solo app desktop]
Fine del supporto client
Windows XP
Fine del supporto server
Windows Server 2003
Intestazione
Scardssp.h
Libreria dei tipi
Scardssp.tlb
DLL
Scardssp.dll
IID
IID_IByteBuffer è definito come E126F8FE-A7AF-11D0-B88A-00C04FD424B9