IDiaEnumSymbols

Énumère les divers symboles contenus dans la source de données.

Syntaxe

IDiaEnumSymbols : IUnknown

Méthodes dans l'ordre Vtable

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

Méthode Description
IDiaEnumSymbols::get__NewEnum Récupère la version 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 Récupère un nombre spécifié de symboles dans une séquence d’énumération.
IDiaEnumSymbols::Reset Réinitialise une séquence d'énumération.
IDiaEnumSymbols::Clone Crée un énumérateur qui contient le même état d’énumération que l’énumérateur actuel.

Notes

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

Remarques pour les appelants

Obtenez cette interface en appelant les méthodes suivantes :

Exemple

Cet exemple montre comment obtenir l’interface IDiaEnumSymbols et comment se servir de cette énumération pour lister les types définis par l’utilisateur (UDT).

Notes

CDiaBSTR est une classe qui encapsule un BSTR et qui gère automatiquement la libération de la chaîne quand l’instanciation sort de l’étendue.

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