Condividi tramite


Metodo ISequentialStream::Read (objidl.h)

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

Sintassi

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

Parametri

[out] pv

Puntatore al buffer in cui vengono letti i dati del flusso.

[in] cb

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

[out] pcbRead

Puntatore a una variabile ULONG che riceve il numero effettivo di byte letti dall'oggetto flusso.

Nota Il numero di byte letti può essere zero.
 

Valore restituito

Questo metodo può restituire uno di questi valori.

Codice restituito Descrizione
S_OK Tutti i dati richiesti sono stati letti correttamente dall'oggetto flusso; il numero di byte richiesti in cb corrisponde al numero di byte restituiti in pcbRead.
S_FALSE Il valore restituito in pcbRead è minore del numero di byte richiesti in cb. Ciò indica che è stata raggiunta la fine del flusso. Il numero di byte letti indica la quantità di buffer pv riempita.
E_PENDING Solo archiviazione asincrona: parte o tutti i dati da leggere non sono attualmente disponibili.
STG_E_ACCESSDENIED Il chiamante non dispone delle autorizzazioni necessarie per leggere questo oggetto flusso.
STG_E_INVALIDPOINTER Uno dei valori del puntatore non è valido.
STG_E_REVERTED L'oggetto è stato invalidato da un'operazione di ripristino sopra di essa nell'albero delle transazioni.

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 ai chiamanti

Il numero effettivo di byte letti può essere minore del numero di byte richiesti se si verifica un errore o se viene raggiunta la fine del flusso durante l'operazione di lettura. Il numero di byte restituiti deve essere sempre confrontato con il numero di byte richiesti. Se il numero di byte restituiti è minore del numero di byte richiesti, in genere significa che il metodo Read ha tentato di leggere oltre la fine del flusso.

L'applicazione deve gestire sia un errore restituito che S_OK valori restituiti nelle operazioni di lettura end-of-stream.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [app desktop | App UWP]
Server minimo supportato Windows 2000 Server [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione objidl.h
Libreria Uuid.lib
DLL Ole32.dll

Vedi anche

ISequentialStream::Write

IStorage::OpenStream

IStream

IStream - Implementazione di file composti

STGMOVE