Freigeben über


IDiaDataSource::getStreamRawData

Ruft die unformatierten Bytes des benannten Datenstroms ab.

Syntax

HRESULT getStreamRawData (
   LPCOLESTR  stream,
   ULONGLONG  cbOffset,
   ULONGLONG  cbRead,
   ULONGLONG* pcbRead,
   BYTE*      pbData
);

Parameter

stream

[in] Der Name des Datenstroms innerhalb der Debuginformationen.

cbOffset

[in] Der Offset innerhalb des Datenstroms, um mit dem Lesen von Daten zu beginnen.

cbRead

[in] Die Anzahl der abzurufenden Bytes.

pcbRead

[out] Die Anzahl der Bytes, die tatsächlich aus dem Datenstrom gelesen werden.

pbData

[out] Der Speicherort zum Speichern der Lesedaten. Bei eingaben muss mindestens cbRead Byte groß sein. Nach erfolgreicher Rückgabe *pcbRead sind Bytes gültig.

Rückgabewert

Gibt bei Erfolg S_OK zurück. Wenn der benannte Datenstrom nicht innerhalb des PDB vorhanden ist, schlägt die API möglicherweise fehl, oder sie gibt eine Länge von 0 zurück.

Hinweise

Programmdatenbanken bestehen aus mehreren Datenströmen. Einige dieser Datenströme werden benannt. Mit dieser Methode können Sie Informationen zu diesen benannten Datenströmen sammeln.

Verwenden Sie die IDiaDataSourceEx::getStreamSize Methode, um die Größe des Datenstroms abzurufen.

Beispiel

ULONGLONG countBytes = 0;
LPCOLESTR stream = L"/names";
HRESULT hr = pSource->getStreamSize( stream, &countBytes );
if (SUCCEEDED(hr)) {
  for (ULONGLONG cbOffset = 0, cbRead = 0; cbOffset < countBytes; cbOffset += cbRead) {
    BYTE buffer[100];
    cbRead = 0;
    hr = pSource->getStreamRawBytes( stream, cbOffset, std::min(countBytes - cbOffset, sizeof(buffer)), &cbRead, buffer);
    if (SUCCEEDED(hr)) {
      ...

Siehe auch