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

Weitere Informationen