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