| title | ms.date | ms.topic | dev_langs | helpviewer_keywords | ms.assetid | author | ms.author | manager | ms.workload | |||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
IDiaEnumDebugStreamData | Microsoft Docs |
11/04/2016 |
reference |
|
|
e2023c32-4c05-4d0c-a0be-f016a230c788 |
mikejo5000 |
mikejo |
jillfra |
|
Provides access to the records in a debug data stream.
IDiaEnumDebugStreamData : IUnknown
The following table shows the methods of IDiaEnumDebugStreamData.
| Method | Description |
|---|---|
| IDiaEnumDebugStreamData::get__NewEnum | Retrieves the IEnumVARIANT Interface version of this enumerator. |
| IDiaEnumDebugStreamData::get_Count | Retrieves the number of records in the debug data stream. |
| IDiaEnumDebugStreamData::get_name | Retrieves the name of the debug data stream. |
| IDiaEnumDebugStreamData::Item | Retrieves the specified record. |
| IDiaEnumDebugStreamData::Next | Retrieves the specified number of records from the enumerated sequence. |
| IDiaEnumDebugStreamData::Skip | Skips a specified number of records in an enumerated sequence. |
| IDiaEnumDebugStreamData::Reset | Resets the enumerated sequence to the beginning. |
| IDiaEnumDebugStreamData::Clone | Creates an enumerator that contains the same enumerated sequence as the current enumerator. |
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.
Call the IDiaEnumDebugStreams::Item or IDiaEnumDebugStreams::Next methods to obtain an IDiaEnumDebugStreamData object.
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);
}Header: Dia2.h
Library: diaguids.lib
DLL: msdia80.dll