Freigeben über


IDiaEnumSymbols

Listet die verschiedenen Symbole auf, die in der Datenquelle enthalten sind.

IDiaEnumSymbols : IUnknown

Methoden in die Vtable-Reihenfolge

In der folgenden Tabelle werden die Methoden von IDiaEnumSymbolsan.

Methode

Beschreibung

IDiaEnumSymbols::get__NewEnum

Ruft die IEnumVARIANT Interface-Version dieses Enumerators ab.

IDiaEnumSymbols::get_Count

Ruft die Anzahl der Symbole ab.

IDiaEnumSymbols::Item

Ruft ein Symbol mithilfe eines Indexes ab.

IDiaEnumSymbols::Next

Ruft eine angegebene Anzahl von Symbolen in der Enumerationsfolge ab.

IDiaEnumSymbols::Skip

Überspringt eine angegebene Anzahl von Symbolen in der Enumerationsfolge.

IDiaEnumSymbols::Reset

Setzt die Enumerationsfolge auf den Anfang zurück.

IDiaEnumSymbols::Clone

Erstellt einen Enumerator, der den gleichen Enumerationszustand wie der aktuelle Enumerator enthält.

Hinweise

Diese Schnittstelle stellt die Symbole, die von einem bestimmten Symboltyp, z. B. gruppiert werden, SymTagUDT ) oder benutzerdefinierte Typen ( SymTagBaseClass.Um mit den Symbolen, die durch Adresse gruppiert werden, verwenden Sie die IDiaEnumSymbolsByAddr-Schnittstelle.

Hinweise für Aufrufer

Rufen Sie diese Schnittstelle, indem sie die folgenden Methoden aufgerufen:

Beispiel

Dieses Beispiel zeigt, wie die IDiaEnumSymbols-Schnittstelle abruft und dann diese Enumeration verwendet, um benutzerdefinierte Typen (UDT) aufzulisten.

HinweisHinweis

CDiaBSTR ist eine Klasse, die BSTR behandelt und automatisch durchgeführt wird, die die Zeichenfolge freigeben, wenn die Instanziierung den Gültigkeitsbereich verlässt.

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

Anforderungen

Header: Dia2.h

Bibliothek: diaguids.lib

DLLs: msdia80.dll

Siehe auch

Referenz

IDiaSession::findChildren

IDiaSourceFile::get_compilands

IDiaSymbol::findChildren

Weitere Ressourcen

Schnittstellen (Debug Interface Access SDK)