Partager via


IDiaEnumSymbols

énumère les différents symboles contenus dans la source de données.

IDiaEnumSymbols : IUnknown

méthodes en commande de Vtable

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

Méthode

Description

IDiaEnumSymbols::get__NewEnum

Récupère la version d' IEnumVARIANT Interface de cet énumérateur.

IDiaEnumSymbols::get_Count

Récupère le nombre de symboles.

IDiaEnumSymbols::Item

Récupère un symbole au moyen d'un index.

IDiaEnumSymbols::Next

Récupère un nombre spécifié de symboles dans la séquence d'énumération.

IDiaEnumSymbols::Skip

Ignore un nombre spécifié de symboles dans une séquence d'énumération.

IDiaEnumSymbols::Reset

réinitialise une séquence d'énumération au début.

IDiaEnumSymbols::Clone

crée un énumérateur qui contient le même état d'énumération que l'énumérateur actuel.

Notes

Cette interface fournit les symboles regroupés par un type spécifique de symbole, par exemple, d' SymTagUDT (types définis par l'utilisateur) ou d' SymTagBaseClass. Pour utiliser des symboles regroupés par l'adresse, utilisez l'interface d' IDiaEnumSymbolsByAddr .

Remarques pour les appelants

obtenez cette interface en appelant les méthodes suivantes :

Exemple

Cet exemple montre comment obtenir l'interface d' IDiaEnumSymbols puis utiliser cette énumération pour répertorier les types définis par l'utilisateur (UDTs).

Notes

CDiaBSTR est une classe qui encapsule BSTR et automatiquement les handles libérant la chaîne lorsque l'instanciation est hors de portée.

void ShowUDTs(IDiaSymbol *pGlobals)
{
    CComPtr<IDiaEnumSymbols> pEnum;
    CComPtr<IDiaSymbol> pSymbol;
    HRESULT hr;

    hr = pGlobals->findChildren(SymTagUDT,
                                NULL,
                                nsfCaseInsensitive | nsfUndecoratedName,
                                &pEnum);
    if (hr == S_OK)
    {
        while ( SUCCEEDED( hr = pEnum->Next( 1, &pSymbol, &celt ) ) &&
                celt == 1 )
        {
            CDiaBSTR name;
            if ( pSymbol->get_name( &name ) != S_OK )
                Fatal( "get_name" );
            printf( "Found UDT: %ws\n", name );
            pSymbol = 0;
        }
    }
}

Configuration requise

en-tête : Dia2.h

bibliothèque : diaguids.lib

DLL : msdia80.dll

Voir aussi

Référence

IDiaSession::findChildren

IDiaSourceFile::get_compilands

IDiaSymbol::findChildren

Autres ressources

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