Share via


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

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

Syntaxe

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

Paramètres

[out] pv

Pointeur vers la mémoire tampon dans laquelle les données de flux sont lues.

[in] cb

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

[out] pcbRead

Pointeur vers une variable ULONG qui reçoit le nombre réel d’octets lus à partir de l’objet stream.

Note Le nombre d’octets lus peut être égal à zéro.
 

Valeur retournée

Cette méthode peut retourner l’une de ces valeurs.

Code de retour Description
S_OK Toutes les données demandées ont été lues avec succès à partir de l’objet stream ; le nombre d’octets demandés dans cb est identique au nombre d’octets retournés dans pcbRead.
S_FALSE La valeur retournée dans pcbRead est inférieure au nombre d’octets demandés en cb. Cela indique que la fin du flux a été atteinte. Le nombre d’octets lus indique la quantité de mémoire tampon pv qui a été remplie.
E_PENDING Stockage asynchrone uniquement : une partie ou la totalité des données à lire n’est actuellement pas disponible.
STG_E_ACCESSDENIED L’appelant n’a pas les autorisations requises pour lire cet objet de flux.
STG_E_INVALIDPOINTER L’une des valeurs de pointeur n’est pas valide.
STG_E_REVERTED L’objet a été invalidé par une opération de restauration au-dessus de lui dans l’arborescence des transactions.

Remarques

Cette méthode lit les octets de cet objet de flux dans la 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 effectivement lus est également retourné dans le paramètre pcbRead .

Notes aux appelants

Le nombre réel d’octets lus peut être inférieur au nombre d’octets demandé si une erreur se produit ou si la fin du flux est atteinte pendant l’opération de lecture. Le nombre d’octets retournés doit toujours être comparé au nombre d’octets demandés. Si le nombre d’octets retournés est inférieur au nombre d’octets demandés, cela signifie généralement que la méthode Read a tenté de lire au-delà de la fin du flux.

L’application doit gérer à la fois une erreur retournée et S_OK valeurs de retour sur les opérations de lecture de fin de flux.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête objidl.h
Bibliothèque Uuid.lib
DLL Ole32.dll

Voir aussi

ISequentialStream ::Write

IStorage ::OpenStream

IStream

IStream - Implémentation de fichiers composés

STGMOVE