Share via


IByteBuffer::Read, méthode

[La méthode Read peut être utilisée dans les systèmes d’exploitation spécifiés dans la section Configuration requise. Il n’est pas disponible pour une utilisation dans Windows Server 2003 avec Service Pack 1 (SP1) et versions ultérieures, Windows Vista, Windows Server 2008 et les versions ultérieures du système d’exploitation. L’interface IStream fournit des fonctionnalités similaires.]

La méthode Read lit un nombre spécifié d’octets de l’objet tampon dans la mémoire en commençant par le pointeur de recherche actuel.

Syntaxe

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

Paramètres

pByte [out]

Pointe vers la mémoire tampon dans laquelle les données de flux sont lues. Si une erreur se produit, cette valeur est NULL.

cb [in]

Nombre d’octets de données à lire à partir de l’objet de flux.

pcbRead [out]

Adresse d’une variable LONG qui reçoit le nombre réel d’octets lus à partir de l’objet de flux. Vous pouvez définir ce pointeur sur NULL pour indiquer que cette valeur ne vous intéresse pas. Dans ce cas, cette méthode ne fournit pas le nombre réel d’octets lus.

Valeur retournée

La valeur de retour est un HRESULT. La valeur S_OK indique que l’appel a réussi.

Notes

Cette méthode lit les octets de cet objet de flux en mémoire. L’objet stream doit être ouvert en mode STGM_READ. Cette méthode ajuste le pointeur de recherche en fonction du nombre réel d’octets lus.

Le nombre d’octets réellement lus est également retourné dans le paramètre pcbRead .

Notes pour les appelants

Le nombre réel d’octets lus peut être inférieur au nombre d’octets demandés en cas d’erreur ou si la fin du flux est atteinte pendant l’opération de lecture.

Certaines implémentations peuvent retourner une erreur si la fin du flux est atteinte pendant la lecture. Vous devez être prêt à traiter le retour d’erreur ou S_OK valeurs de retour à la fin des lectures de flux.

Exemples

L’exemple suivant montre la lecture d’octets à partir de la mémoire tampon.

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

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge
Windows Server 2003 [applications de bureau uniquement]
Fin de la prise en charge des clients
Windows XP
Fin de la prise en charge des serveurs
Windows Server 2003
En-tête
Scardssp.h
Bibliothèque de types
Scardssp.tlb
DLL
Scardssp.dll
IID
IID_IByteBuffer est défini comme E126F8FE-A7AF-11D0-B88A-00C04FD424B9