IDiaEnumDebugStreamData

Fournit l’accès aux enregistrements dans un flux de données de débogage.

Syntax

IDiaEnumDebugStreamData : IUnknown

Méthodes dans l'ordre Vtable

Le tableau suivant présente les méthodes de IDiaEnumDebugStreamData.

Méthode Description
IDiaEnumDebugStreamData::get__NewEnum Récupère la version de l’interface IEnumVARIANT de cet énumérateur.
IDiaEnumDebugStreamData::get_Count Récupère le nombre d’enregistrements dans le flux de données de débogage.
IDiaEnumDebugStreamData::get_name Récupère le nom du flux de données de débogage.
IDiaEnumDebugStreamData::Item Récupère l’enregistrement spécifié.
IDiaEnumDebugStreamData::Next Récupère le nombre spécifié d’enregistrements de la séquence énumérée.
IDiaEnumDebugStreamData::Skip Ignore un nombre spécifié d’enregistrements dans une séquence énumérée.
IDiaEnumDebugStreamData::Reset Réinitialise la séquence d'énumération au début.
IDiaEnumDebugStreamData::Clone Crée un énumérateur qui contient la même séquence énumérée que l’énumérateur actuel.

Remarques

Cette interface représente un flux d’enregistrements dans un flux de données de débogage. La taille et l’interprétation de chaque enregistrement varient en fonction du flux de données d’où provient l’enregistrement. Cette interface fournit effectivement l’accès aux octets de données brutes dans le fichier de symboles.

Remarques pour les appelants

Appelez les méthodes IDiaEnumDebugStreams::Item ou IDiaEnumDebugStreams::Next pour obtenir un objet IDiaEnumDebugStreamData.

Exemple

Cet exemple montre comment accéder à un flux de données et à ses enregistrements.

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

Configuration requise

En-tête : Dia2.h

Bibliothèque : diaguids.lib

DLL : msdia80.dll

Voir aussi