Partager via


IDiaEnumDebugStreamData

permet d'accéder aux enregistrements dans un flux de données de débogage.

IDiaEnumDebugStreamData : IUnknown

méthodes en commande de Vtable

Le tableau suivant répertorie les méthodes d' IDiaEnumDebugStreamData.

Méthode

Description

IDiaEnumDebugStreamData::get__NewEnum

Récupère la version d' IEnumVARIANT Interface 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

extrait le nom du flux de données de débogage.

IDiaEnumDebugStreamData::Item

extrait l'enregistrement spécifié.

IDiaEnumDebugStreamData::Next

Récupère le nombre d'enregistrements spécifié de la séquence énumérée.

IDiaEnumDebugStreamData::Skip

Ignore un nombre d'enregistrements spécifié dans une séquence énumérée.

IDiaEnumDebugStreamData::Reset

réinitialise la séquence énumérée 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.

Notes

cette interface représente un flux de données des enregistrements dans un flux de données de débogage. La taille et la traduction de chaque enregistrement dépend du flux de données que l'enregistrement provient de. Cette interface permet d'accéder efficacement à des octets de données brutes dans le fichier de symboles.

Remarques pour les appelants

appelez les méthodes d' IDiaEnumDebugStreams::Item ou d' IDiaEnumDebugStreams::Next pour obtenir un objet d' IDiaEnumDebugStreamData .

Exemple

Cet exemple montre comment accéder à un flux unique 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

Référence

IDiaEnumDebugStreams::Item

IDiaEnumDebugStreams::Next

Autres ressources

Interfaces (Kit de développement logiciel de Debug Interface Access)