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