IDiaEnumSymbols

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

Syntax

IDiaEnumSymbols : IUnknown

Methoden in Vtable-Reihenfolge

In der folgenden Tabelle sind die Methoden von IDiaEnumSymbols aufgeführt.

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 Index ab.
IDiaEnumSymbols::Next Ruft eine angegebene Anzahl von Symbolen in der Enumerationssequenz ab.
IDiaEnumSymbols::Skip Überspringt eine angegebene Anzahl von Symbolen in einer Enumerationssequenz.
IDiaEnumSymbols::Reset Setzt eine Enumerationsfolge auf den Anfang zurück.
IDiaEnumSymbols::Clone Erstellt einen Enumerator mit demselben Enumerationsstatus wie der aktuelle Enumerator.

Bemerkungen

Über diese Schnittstelle werden Symbole bereitgestellt, die nach einem bestimmten Symboltyp gruppiert sind, z. B. SymTagUDT (benutzerdefinierte Typen) oder SymTagBaseClass. Wenn Sie mit nach Adresse gruppierten Symbolen arbeiten möchten, verwenden Sie die Schnittstelle IDiaEnumSymbolsByAddr.

Hinweise für Aufrufer

Rufen Sie diese Schnittstelle ab, indem Sie eine der folgenden Methoden aufrufen:

Beispiel

In diesem Beispiel wird gezeigt, wie Sie die Schnittstelle IDiaEnumSymbols abrufen und dann diese Enumeration verwenden, um benutzerdefinierte Typen (User-defined Type, UDT) aufzulisten.

Hinweis

CDiaBSTR ist eine Klasse, die ein BSTR-Element umschließt und automatisch die Freigabe der Zeichenfolge verarbeitet, wenn die Instanziierung den Gültigkeitsbereich überschreitet.

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

DLL: msdia80.dll

Weitere Informationen