Partilhar via


IDiaEnumDebugStreamData

Fornece acesso aos registros em um fluxo de dados de depuração.

Sintaxe

IDiaEnumDebugStreamData : IUnknown

Métodos na ordem VTable

A tabela a seguir mostra os métodos de IDiaEnumDebugStreamData.

Método Descrição
IDiaEnumDebugStreamData::get__NewEnum Recupera a versão da Interface IEnumVARIANT desse enumerador.
IDiaEnumDebugStreamData::get_Count Recupera o número de registros no fluxo de dados de depuração.
IDiaEnumDebugStreamData::get_name Recupera o nome do fluxo de dados de depuração.
IDiaEnumDebugStreamData::Item Recupera o registro especificado.
IDiaEnumDebugStreamData::Next Recupera o número especificado de registros a partir da sequência enumerada.
IDiaEnumDebugStreamData::Skip Ignora um número especificado de registros na sequência enumerada.
IDiaEnumDebugStreamData::Reset Redefine a sequência enumerada para o início.
IDiaEnumDebugStreamData::Clone Cria um enumerador que contém a mesma sequência enumerada que a do enumerador atual.

Comentários

Essa interface representa um fluxo de registros em um fluxo de dados de depuração. O tamanho e a interpretação de cada registro dependem do fluxo de dados do qual o registro vem. Essa interface fornece efetivamente acesso aos bytes de dados brutos no arquivo de símbolo.

Observações para chamadores

Chame os métodos IDiaEnumDebugStreams::Item ou IDiaEnumDebugStreams::Next para obter um objeto IDiaEnumDebugStreamData.

Exemplo

Esse exemplo mostra como acessar um único fluxo de dados e seus 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

Cabeçalho: Dia2.h

Biblioteca: diaguids.lib

DLL: msdia80.dll

Confira também