|
2 | 2 | title: "IDiaEnumDebugStreamData | Microsoft Docs"
|
3 | 3 | ms.date: "11/04/2016"
|
4 | 4 | ms.topic: "conceptual"
|
5 |
| -dev_langs: |
| 5 | +dev_langs: |
6 | 6 | - "C++"
|
7 |
| -helpviewer_keywords: |
| 7 | +helpviewer_keywords: |
8 | 8 | - "IDiaEnumDebugStreamData interface"
|
9 | 9 | ms.assetid: e2023c32-4c05-4d0c-a0be-f016a230c788
|
10 | 10 | author: "mikejo5000"
|
11 | 11 | ms.author: "mikejo"
|
12 | 12 | manager: jillfra
|
13 |
| -ms.workload: |
| 13 | +ms.workload: |
14 | 14 | - "multiple"
|
15 | 15 | ---
|
16 | 16 | # IDiaEnumDebugStreamData
|
17 |
| -Provides access to the records in a debug data stream. |
18 |
| - |
19 |
| -## Syntax |
20 |
| - |
21 |
| -``` |
22 |
| -IDiaEnumDebugStreamData : IUnknown |
23 |
| -``` |
24 |
| - |
25 |
| -## Methods in Vtable Order |
26 |
| - The following table shows the methods of `IDiaEnumDebugStreamData`. |
27 |
| - |
28 |
| -|Method|Description| |
29 |
| -|------------|-----------------| |
30 |
| -|[IDiaEnumDebugStreamData::get__NewEnum](../../debugger/debug-interface-access/idiaenumdebugstreamdata-get-newenum.md)|Retrieves the [IEnumVARIANT Interface](/previous-versions/windows/desktop/api/oaidl/nn-oaidl-ienumvariant) version of this enumerator.| |
31 |
| -|[IDiaEnumDebugStreamData::get_Count](../../debugger/debug-interface-access/idiaenumdebugstreamdata-get-count.md)|Retrieves the number of records in the debug data stream.| |
32 |
| -|[IDiaEnumDebugStreamData::get_name](../../debugger/debug-interface-access/idiaenumdebugstreamdata-get-name.md)|Retrieves the name of the debug data stream.| |
33 |
| -|[IDiaEnumDebugStreamData::Item](../../debugger/debug-interface-access/idiaenumdebugstreamdata-item.md)|Retrieves the specified record.| |
34 |
| -|[IDiaEnumDebugStreamData::Next](../../debugger/debug-interface-access/idiaenumdebugstreamdata-next.md)|Retrieves the specified number of records from the enumerated sequence.| |
35 |
| -|[IDiaEnumDebugStreamData::Skip](../../debugger/debug-interface-access/idiaenumdebugstreamdata-skip.md)|Skips a specified number of records in an enumerated sequence.| |
36 |
| -|[IDiaEnumDebugStreamData::Reset](../../debugger/debug-interface-access/idiaenumdebugstreamdata-reset.md)|Resets the enumerated sequence to the beginning.| |
37 |
| -|[IDiaEnumDebugStreamData::Clone](../../debugger/debug-interface-access/idiaenumdebugstreamdata-clone.md)|Creates an enumerator that contains the same enumerated sequence as the current enumerator.| |
38 |
| - |
39 |
| -## Remarks |
40 |
| - 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. |
41 |
| - |
42 |
| -## Notes for Callers |
43 |
| - Call the [IDiaEnumDebugStreams::Item](../../debugger/debug-interface-access/idiaenumdebugstreams-item.md) or [IDiaEnumDebugStreams::Next](../../debugger/debug-interface-access/idiaenumdebugstreams-next.md) methods to obtain an `IDiaEnumDebugStreamData` object. |
44 |
| - |
45 |
| -## Example |
46 |
| - This example shows how to access a single data stream and its records. |
47 |
| - |
48 |
| -```C++ |
49 |
| -void PrintStreamData(IDiaEnumDebugStreamData* pStream) |
50 |
| -{ |
51 |
| - BSTR wszName; |
52 |
| - LONG dwElem; |
53 |
| - ULONG celt = 0; |
54 |
| - DWORD cbData; |
55 |
| - DWORD cbTotal = 0; |
56 |
| - BYTE data[1024]; |
57 |
| - |
58 |
| - if(pStream->get_name(&wszName) != S_OK) |
59 |
| - { |
60 |
| - wprintf_s(L"ERROR - PrintStreamData() get_name\n"); |
61 |
| - } |
62 |
| - else |
63 |
| - { |
64 |
| - wprintf_s(L"Stream: %s", wszName); |
65 |
| - SysFreeString(wszName); |
66 |
| - } |
67 |
| - if(pStream->get_Count(&dwElem) != S_OK) |
68 |
| - { |
69 |
| - wprintf(L"ERROR - PrintStreamData() get_Count\n"); |
70 |
| - } |
71 |
| - else |
72 |
| - { |
73 |
| - wprintf(L"(%d)\n", dwElem); |
74 |
| - } |
75 |
| - while(pStream->Next(1, sizeof(data), &cbData, (BYTE *)&data, &celt) == S_OK) |
76 |
| - { |
77 |
| - DWORD i; |
78 |
| - for (i = 0; i < cbData; i++) |
79 |
| - { |
80 |
| - wprintf(L"%02X ", data[i]); |
81 |
| - if(i && i % 8 == 7 && i+1 < cbData) |
82 |
| - { |
83 |
| - wprintf(L"- "); |
84 |
| - } |
85 |
| - } |
86 |
| - wprintf(L"| "); |
87 |
| - for(i = 0; i < cbData; i++) |
88 |
| - { |
89 |
| - wprintf(L"%c", iswprint(data[i]) ? data[i] : '.'); |
90 |
| - } |
91 |
| - wprintf(L"\n"); |
92 |
| - cbTotal += cbData; |
93 |
| - } |
94 |
| - wprintf(L"Summary :\n\tSizeof(Elem) = %d\n\tNo of Elems = %d\n\n", |
95 |
| - cbTotal/dwElem, dwElem); |
96 |
| -} |
97 |
| -``` |
98 |
| - |
99 |
| -## Requirements |
100 |
| - Header: Dia2.h |
101 |
| - |
102 |
| - Library: diaguids.lib |
103 |
| - |
104 |
| - DLL: msdia80.dll |
105 |
| - |
106 |
| -## See Also |
107 |
| - [Interfaces (Debug Interface Access SDK)](../../debugger/debug-interface-access/interfaces-debug-interface-access-sdk.md) |
108 |
| - [IDiaEnumDebugStreams::Item](../../debugger/debug-interface-access/idiaenumdebugstreams-item.md) |
109 |
| - [IDiaEnumDebugStreams::Next](../../debugger/debug-interface-access/idiaenumdebugstreams-next.md) |
| 17 | +Provides access to the records in a debug data stream. |
| 18 | + |
| 19 | +## Syntax |
| 20 | + |
| 21 | +``` |
| 22 | +IDiaEnumDebugStreamData : IUnknown |
| 23 | +``` |
| 24 | + |
| 25 | +## Methods in Vtable Order |
| 26 | +The following table shows the methods of `IDiaEnumDebugStreamData`. |
| 27 | + |
| 28 | +|Method|Description| |
| 29 | +|------------|-----------------| |
| 30 | +|[IDiaEnumDebugStreamData::get__NewEnum](../../debugger/debug-interface-access/idiaenumdebugstreamdata-get-newenum.md)|Retrieves the [IEnumVARIANT Interface](/previous-versions/windows/desktop/api/oaidl/nn-oaidl-ienumvariant) version of this enumerator.| |
| 31 | +|[IDiaEnumDebugStreamData::get_Count](../../debugger/debug-interface-access/idiaenumdebugstreamdata-get-count.md)|Retrieves the number of records in the debug data stream.| |
| 32 | +|[IDiaEnumDebugStreamData::get_name](../../debugger/debug-interface-access/idiaenumdebugstreamdata-get-name.md)|Retrieves the name of the debug data stream.| |
| 33 | +|[IDiaEnumDebugStreamData::Item](../../debugger/debug-interface-access/idiaenumdebugstreamdata-item.md)|Retrieves the specified record.| |
| 34 | +|[IDiaEnumDebugStreamData::Next](../../debugger/debug-interface-access/idiaenumdebugstreamdata-next.md)|Retrieves the specified number of records from the enumerated sequence.| |
| 35 | +|[IDiaEnumDebugStreamData::Skip](../../debugger/debug-interface-access/idiaenumdebugstreamdata-skip.md)|Skips a specified number of records in an enumerated sequence.| |
| 36 | +|[IDiaEnumDebugStreamData::Reset](../../debugger/debug-interface-access/idiaenumdebugstreamdata-reset.md)|Resets the enumerated sequence to the beginning.| |
| 37 | +|[IDiaEnumDebugStreamData::Clone](../../debugger/debug-interface-access/idiaenumdebugstreamdata-clone.md)|Creates an enumerator that contains the same enumerated sequence as the current enumerator.| |
| 38 | + |
| 39 | +## Remarks |
| 40 | +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. |
| 41 | + |
| 42 | +## Notes for Callers |
| 43 | +Call the [IDiaEnumDebugStreams::Item](../../debugger/debug-interface-access/idiaenumdebugstreams-item.md) or [IDiaEnumDebugStreams::Next](../../debugger/debug-interface-access/idiaenumdebugstreams-next.md) methods to obtain an `IDiaEnumDebugStreamData` object. |
| 44 | + |
| 45 | +## Example |
| 46 | + This example shows how to access a single data stream and its records. |
| 47 | + |
| 48 | +```C++ |
| 49 | +void PrintStreamData(IDiaEnumDebugStreamData* pStream) |
| 50 | +{ |
| 51 | + BSTR wszName; |
| 52 | + LONG dwElem; |
| 53 | + ULONG celt = 0; |
| 54 | + DWORD cbData; |
| 55 | + DWORD cbTotal = 0; |
| 56 | + BYTE data[1024]; |
| 57 | + |
| 58 | + if(pStream->get_name(&wszName) != S_OK) |
| 59 | + { |
| 60 | + wprintf_s(L"ERROR - PrintStreamData() get_name\n"); |
| 61 | + } |
| 62 | + else |
| 63 | + { |
| 64 | + wprintf_s(L"Stream: %s", wszName); |
| 65 | + SysFreeString(wszName); |
| 66 | + } |
| 67 | + if(pStream->get_Count(&dwElem) != S_OK) |
| 68 | + { |
| 69 | + wprintf(L"ERROR - PrintStreamData() get_Count\n"); |
| 70 | + } |
| 71 | + else |
| 72 | + { |
| 73 | + wprintf(L"(%d)\n", dwElem); |
| 74 | + } |
| 75 | + while(pStream->Next(1, sizeof(data), &cbData, (BYTE *)&data, &celt) == S_OK) |
| 76 | + { |
| 77 | + DWORD i; |
| 78 | + for (i = 0; i < cbData; i++) |
| 79 | + { |
| 80 | + wprintf(L"%02X ", data[i]); |
| 81 | + if(i && i % 8 == 7 && i+1 < cbData) |
| 82 | + { |
| 83 | + wprintf(L"- "); |
| 84 | + } |
| 85 | + } |
| 86 | + wprintf(L"| "); |
| 87 | + for(i = 0; i < cbData; i++) |
| 88 | + { |
| 89 | + wprintf(L"%c", iswprint(data[i]) ? data[i] : '.'); |
| 90 | + } |
| 91 | + wprintf(L"\n"); |
| 92 | + cbTotal += cbData; |
| 93 | + } |
| 94 | + wprintf(L"Summary :\n\tSizeof(Elem) = %d\n\tNo of Elems = %d\n\n", |
| 95 | + cbTotal/dwElem, dwElem); |
| 96 | +} |
| 97 | +``` |
| 98 | +
|
| 99 | +## Requirements |
| 100 | +Header: Dia2.h |
| 101 | +
|
| 102 | +Library: diaguids.lib |
| 103 | +
|
| 104 | +DLL: msdia80.dll |
| 105 | +
|
| 106 | +## See Also |
| 107 | +[Interfaces (Debug Interface Access SDK)](../../debugger/debug-interface-access/interfaces-debug-interface-access-sdk.md) |
| 108 | +[IDiaEnumDebugStreams::Item](../../debugger/debug-interface-access/idiaenumdebugstreams-item.md) |
| 109 | +[IDiaEnumDebugStreams::Next](../../debugger/debug-interface-access/idiaenumdebugstreams-next.md) |
0 commit comments