Compartir a través de


IDiaEnumDebugStreamData

Proporciona acceso a los registros de un flujo de datos de depuración.

Sintaxis

IDiaEnumDebugStreamData : IUnknown

Métodos en orden de Vtable

En la tabla siguiente se muestran los métodos de IDiaEnumDebugStreamData.

Método Descripción
IDiaEnumDebugStreamData::get__NewEnum Recupera la versión de la interfaz IEnumVARIANT de este enumerador.
IDiaEnumDebugStreamData::get_Count Recupera el número de registros del flujo de datos de depuración.
IDiaEnumDebugStreamData::get_name Recupera el nombre del flujo de datos de depuración.
IDiaEnumDebugStreamData::Item Recupera el registro especificado.
IDiaEnumDebugStreamData::Next Recupera el número especificado de registros de la secuencia enumerada.
IDiaEnumDebugStreamData::Skip Omite un número especificado de registros de una secuencia enumerada.
IDiaEnumDebugStreamData::Reset Restablece la secuencia enumerada al principio.
IDiaEnumDebugStreamData::Clone Crea un enumerador que contiene la misma secuencia enumerada que el enumerador actual.

Observaciones

Esta interfaz representa un flujo de registros en un flujo de datos de depuración. El tamaño y la interpretación de cada registro dependen del flujo de datos del que procede el registro. Esta interfaz proporciona de forma eficaz acceso a los bytes de datos sin procesar en el archivo de símbolos.

Notas para autores de la llamada

Llame a los métodos IDiaEnumDebugStreams::Item o IDiaEnumDebugStreams::Next para obtener un objeto IDiaEnumDebugStreamData.

Ejemplo

En este ejemplo se muestra cómo acceder a un único flujo de datos y sus registros.

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

Requisitos

Encabezado: Dia2.h

Biblioteca: diaguids.lib

DLL: msdia80.dll

Vea también