Zum Hauptinhalt springen
Diese Methode wird clientseitig implementiert und dient dazu, die zu verarbeitenden Daten aus einer benutzerdefinierten Quelle einzulesen. Ihre Implementierung dieser Methode sollte ein Datenarray erstellen und die Kontrolle darüber an den Aufrufer übergeben. Dieser ist anschließend dafür verantwortlich, den Speicher nach der Verwendung freizugeben.

Syntax

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

Parameter

Data [out] Dieser Parameter bezieht sich auf die zu lesenden Daten. Ihre Implementierung dieser Methode sollte dieses Array erstellen und die erforderlichen Daten hineinschreiben. Der Aufrufer ist dafür verantwortlich, diesen Speicher freizugeben, wenn er nicht mehr benötigt wird. Count [in] Dieser Parameter gibt die Obergrenze für die Anzahl der zu lesenden Bytes an. BytesRead [out, retval] Dieser Parameter gibt die Anzahl der tatsächlich gelesenen Bytes an (das heißt, die vom Data-Puffer belegte Speichergröße). Wenn diese Zahl größer als 0 ist, wird die Methode erneut aufgerufen, bis dieser Parameter 0 zurückgibt.

Rückgabewerte

[Nur in C++] Wenn diese Methode einen anderen Wert als S_OK zurückgibt, ist clientseitig ein Fehler aufgetreten.

Bemerkungen

Die Client-Implementierung dieser Methode muss sicherstellen, dass alle innerhalb der Methode ausgelösten Ausnahmen abgefangen und behandelt werden und dass keine Ausnahmen über die Methode hinaus propagiert werden. Die Propagierung einer Ausnahme über die Methode hinaus kann zu unvorhersehbaren Ergebnissen führen (z. B. zur Beendigung des Programms).

Siehe auch

IReadStream