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 |
|
Libreria dei tipi |
|
DLL |
|
IID |
IID_IByteBuffer è definito come E126F8FE-A7AF-11D0-B88A-00C04FD424B9 |