Vai al contenuto principale
Questo metodo è implementato sul lato client e viene utilizzato per fornire i dati da elaborare a partire da un’origine personalizzata. L’implementazione di questo metodo deve creare un array di dati e trasferirne il controllo al chiamante, che sarà poi responsabile di liberarne la memoria dopo l’uso.

Sintassi

C++

HRESULT Read(
  SAFEARRAY(BYTE)* Data,
  int              Count,
  int*             BytesRead
);

C#

int Read(
  out byte[] Data,
  int        Count
);

Visual Basic .NET

Function Read( _
  ByRef Data() As Byte, _
  ByVal Count As Integer _
) As Integer

Parametri

Data [out] Questo parametro si riferisce ai dati da leggere. L’implementazione di questo metodo deve creare questo array e scrivervi i dati richiesti. Il chiamante è responsabile del rilascio di questa memoria quando non è più necessaria. Count [in] Questo parametro specifica il limite massimo del numero di byte da leggere. BytesRead [out, retval] Questo parametro specifica il numero di byte effettivamente letti (ovvero, la quantità di memoria occupata dal buffer Data). Se questo numero è maggiore di 0, il metodo verrà richiamato finché questo parametro non restituirà 0.

Valori di ritorno

[Solo per C++] Se questo metodo restituisce un valore diverso da S_OK, significa che si è verificato un errore sul lato client.

Osservazioni

L’implementazione client di questo metodo deve garantire che tutte le eccezioni generate all’interno del metodo vengano intercettate e gestite e che nessuna eccezione si propaghi all’esterno del metodo. La propagazione di un’eccezione all’esterno del metodo può portare a risultati imprevedibili (come la terminazione del programma).

Vedi anche

IReadStream