IDiaEnumDebugStreamData

Fornisce l'accesso ai record in un flusso di dati di debug.

IDiaEnumDebugStreamData : IUnknown

Metodi nell'ordine di Vtable

Nella tabella seguente sono elencati i metodi di IDiaEnumDebugStreamData.

Metodo

Descrizione

IDiaEnumDebugStreamData::get__NewEnum

recupera interfaccia di IEnumVARIANT versione di questo enumeratore.

IDiaEnumDebugStreamData::get_Count

Recupera il numero di record nel flusso di dati di debug.

IDiaEnumDebugStreamData::get_name

Recupera il nome del flusso di dati di debug.

IDiaEnumDebugStreamData::Item

recupera il record specificato.

IDiaEnumDebugStreamData::Next

Recupera il numero di record dalla sequenza enumerata.

IDiaEnumDebugStreamData::Skip

Ignora un numero specificato di record in una sequenza enumerata.

IDiaEnumDebugStreamData::Reset

Reimposta la sequenza enumerata all'inizio.

IDiaEnumDebugStreamData::Clone

Crea un enumeratore che contiene la stessa sequenza enumerata enumeratore corrente.

Note

Questa interfaccia rappresenta un flusso dei record in un flusso di dati di debug.La dimensione e l'interpretazione di ogni record dipende dal flusso di dati che il record deriva da.Questa interfaccia efficacemente fornisce l'accesso ai byte di dati non elaborati nel file di simboli.

Note per i chiamanti

chiamare IDiaEnumDebugStreams::Item o IDiaEnumDebugStreams::Next metodi per ottenere IDiaEnumDebugStreamData oggetto.

Esempio

In questo esempio viene illustrato come accedere a un singolo flusso di dati e i relativi record.

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);
}

Requisiti

intestazione: Dia2.h

raccolta: diaguids.lib

DLL: msdia80.dll

Vedere anche

Riferimenti

IDiaEnumDebugStreams::Item

IDiaEnumDebugStreams::Next

Altre risorse

Interfacce (Debug Interface Access SDK)