Sdílet prostřednictvím


IDiaDataSource::getStreamRawData

Načte nezpracované bajty pojmenovaného datového proudu.

Syntaxe

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

Parametry

stream

[v] Název datového proudu v rámci informací o ladění.

cbOffset

[v] Posun v rámci datového proudu pro zahájení čtení dat.

cbRead

[v] Počet bajtů, které se mají načíst.

pcbRead

[ven] Počet bajtů, které se skutečně čtou z datového proudu.

pbData

[ven] Umístění pro uložení dat pro čtení. Vstup musí mít velikost alespoň cbRead bajtů. Po úspěšném vrácení *pcbRead bajtů budou platné.

Návratová hodnota

V případě úspěchu vrátí hodnotu S_OK. Pokud pojmenovaný datový proud v rámci souboru PDB neexistuje, rozhraní API může selhat nebo může vrátit délku 0.

Poznámky

Databáze programů se skládají z několika datových proudů dat. Některé z těchto datových proudů jsou pojmenované. Tuto metodu můžete použít ke shromažďování informací o těchto pojmenovaných datových proudech.

Pokud chcete získat velikost datového proudu, použijte metodu IDiaDataSourceEx::getStreamSize .

Příklad

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)) {
      ...

Viz také