IDiaEnumDebugStreamData
Bietet Zugriff auf die Datensätze in einem Debugdatenstrom.
Syntax
IDiaEnumDebugStreamData : IUnknown
Methoden in Vtable-Reihenfolge
In der folgenden Tabelle sind die Methoden von IDiaEnumDebugStreamData
aufgeführt.
Methode | BESCHREIBUNG |
---|---|
IDiaEnumDebugStreamData::get__NewEnum | Ruft die Version der IEnumVARIANT-Schnittstelle dieses Enumerators ab. |
IDiaEnumDebugStreamData::get_Count | Ruft die Anzahl der Datensätze im Debugdatenstrom ab. |
IDiaEnumDebugStreamData::get_name | Ruft den Namen des Debugdatenstroms ab. |
IDiaEnumDebugStreamData::Item | Ruft den angegebenen Datensatz ab. |
IDiaEnumDebugStreamData::Next | Ruft die angegebene Anzahl von Datensätzen aus der Aufzählungssequenz ab. |
IDiaEnumDebugStreamData::Skip | Überspringt eine bestimmte Anzahl von Datensätzen in einer Aufzählungssequenz. |
IDiaEnumDebugStreamData::Reset | Setzt die Aufzählungssequenz auf den Anfang zurück. |
IDiaEnumDebugStreamData::Clone | Erstellt einen Enumerator, der dieselbe Aufzählungssequenz enthält wie der aktuelle Enumerator. |
Bemerkungen
Diese Schnittstelle repräsentiert einen Strom von Datensätzen in einem Debugdatenstrom dar. Die Größe und Interpretation jedes Datensatzes hängt vom Datenstrom ab, aus dem der Datensatz stammt. Diese Schnittstelle ermöglicht den Zugriff auf die Rohdatenbytes in der Symboldatei.
Hinweise für Aufrufer
Rufen Sie die Methoden IDiaEnumDebugStreams::Item oder IDiaEnumDebugStreams::Next auf, um ein IDiaEnumDebugStreamData
-Objekt abzurufen.
Beispiel
Dieses Beispiel zeigt, wie Sie auf einen einzelnen Datenstrom und seine Datensätze zugreifen.
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);
}
Anforderungen
Header: Dia2.h
Bibliothek: diaguids.lib
DLL: msdia80.dll