IDiaEnumDebugStreamData
Provides access to the records in a debug data stream.
IDiaEnumDebugStreamData : IUnknown
Methods in Vtable Order
The following table shows the methods of IDiaEnumDebugStreamData.
Method |
Description |
---|---|
Retrieves the IEnumVARIANT Interface version of this enumerator. |
|
Retrieves the number of records in the debug data stream. |
|
Retrieves the name of the debug data stream. |
|
Retrieves the specified record. |
|
Retrieves the specified number of records from the enumerated sequence. |
|
Skips a specified number of records in an enumerated sequence. |
|
Resets the enumerated sequence to the beginning. |
|
Creates an enumerator that contains the same enumerated sequence as the current enumerator. |
Remarks
This interface represents a stream of records in a debug data stream. The size and interpretation of each record is dependent on the data stream the record comes from. This interface effectively provides access to the raw data bytes in the symbol file.
Notes for Callers
Call the IDiaEnumDebugStreams::Item or IDiaEnumDebugStreams::Next methods to obtain an IDiaEnumDebugStreamData object.
Example
This example shows how to access a single data stream and its records.
void PrintStreamData(IDiaEnumDebugStreamData* pStream)
{
BSTR wszName;
LONG dwElem;
ULONG celt = 0;
DWORD cbData;
DWORD cbTotal = 0;
BYTE data[1024];
if(pStream->get_name(&wszName) != S_OK)
{
wprintf_s(L"ERROR - PrintStreamData() get_name\n");
}
else
{
wprintf_s(L"Stream: %s", wszName);
SysFreeString(wszName);
}
if(pStream->get_Count(&dwElem) != S_OK)
{
wprintf(L"ERROR - PrintStreamData() get_Count\n");
}
else
{
wprintf(L"(%d)\n", dwElem);
}
while(pStream->Next(1, sizeof(data), &cbData, (BYTE *)&data, &celt) == S_OK)
{
DWORD i;
for (i = 0; i < cbData; i++)
{
wprintf(L"%02X ", data[i]);
if(i && i % 8 == 7 && i+1 < cbData)
{
wprintf(L"- ");
}
}
wprintf(L"| ");
for(i = 0; i < cbData; i++)
{
wprintf(L"%c", iswprint(data[i]) ? data[i] : '.');
}
wprintf(L"\n");
cbTotal += cbData;
}
wprintf(L"Summary :\n\tSizeof(Elem) = %d\n\tNo of Elems = %d\n\n",
cbTotal/dwElem, dwElem);
}
Requirements
Header: Dia2.h
Library: diaguids.lib
DLL: msdia80.dll