Freigeben über


IDiaEnumDebugStreamData

Ermöglicht den Zugriff auf Datensätze in einem Debugbuild Stream.

IDiaEnumDebugStreamData : IUnknown

Methoden in die Vtable-Reihenfolge

In der folgenden Tabelle werden die Methoden von IDiaEnumDebugStreamDataan.

Methode

Beschreibung

IDiaEnumDebugStreamData::get__NewEnum

Ruft die IEnumVARIANT Interface-Version dieses Enumerators ab.

IDiaEnumDebugStreamData::get_Count

Ruft die Anzahl der Datensätze Debug Stream ab.

IDiaEnumDebugStreamData::get_name

Ruft den Namen des Debuggen von Streams ab.

IDiaEnumDebugStreamData::Item

Ruft den angegebenen Datensatz ab.

IDiaEnumDebugStreamData::Next

Ruft die angegebene Anzahl von Datensätzen aus der aufgelisteten Sequenz ab.

IDiaEnumDebugStreamData::Skip

Überspringt eine angegebene Anzahl von Datensätzen in einer aufgelisteten Sequenz.

IDiaEnumDebugStreamData::Reset

Setzt die aufgelistete Sequenz auf den Anfang zurück.

IDiaEnumDebugStreamData::Clone

Erstellt einen Enumerator, der die aufgelistete gleichen Reihenfolge wie der aktuelle Enumerator enthält.

Hinweise

Diese Schnittstelle stellt einen Datenstrom von Datensätzen in einem Debugbuild Stream dar.Die Größe und die Interpretation jedes Datensatzes ist vom Stream ab, den der Datensatz von stammt.Diese Schnittstelle ermöglicht den Zugriff auf effiziente Weise Rohdatenen für Symboldateien in Bytes.

Hinweise für Aufrufer

Rufen Sie die IDiaEnumDebugStreams::ItemIDiaEnumDebugStreams::Next oder Methoden zum Abrufen eines IDiaEnumDebugStreamData-Objekt.

Beispiel

Dieses Beispiel zeigt, wie Sie einen einzigen Stream und ihre 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

DLLs: msdia80.dll

Siehe auch

Referenz

IDiaEnumDebugStreams::Item

IDiaEnumDebugStreams::Next

Weitere Ressourcen

Schnittstellen (Debug Interface Access SDK)