Sdílet prostřednictvím


IDiaEnumSymbols

Vytvoří výčet různých symbolů obsažených ve zdroji dat.

Syntaxe

IDiaEnumSymbols : IUnknown

Metody v pořadí Vtable

Následující tabulka ukazuje metody IDiaEnumSymbols.

metoda Popis
IDiaEnumSymbols::get__NewEnum Načte IEnumVARIANT Interface verzi tohoto enumerátoru.
IDiaEnumSymbols::get_Count Načte počet symbolů.
IDiaEnumSymbols::Item Načte symbol pomocí indexu.
IDiaEnumSymbols::Next Načte zadaný počet symbolů v sekvenci výčtu.
IDiaEnumSymbols::Skip Přeskočí zadaný počet symbolů v sekvenci výčtu.
IDiaEnumSymbols::Reset Obnoví sekvenci výčtu na začátek.
IDiaEnumSymbols::Clone Vytvoří enumerátor, který obsahuje stejný stav výčtu jako aktuální výčet.

Poznámky

Toto rozhraní poskytuje symboly seskupené podle konkrétního typu symbolu, SymTagUDT například (uživatelem definované typy) nebo SymTagBaseClass. Pokud chcete pracovat se symboly seskupenými podle adresy, použijte rozhraní IDiaEnumSymbolsByAddr .

Poznámky pro volající

Získejte toto rozhraní voláním následujících metod:

Příklad

Tento příklad ukazuje, jak získat rozhraní a pak pomocí tohoto výčtu IDiaEnumSymbols vypsat uživatelem definované typy (UDT).

Poznámka:

CDiaBSTR je třída, která zabalí BSTR řetězec a automaticky zpracuje uvolnění řetězce při vytvoření instance mimo rozsah.

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

Požadavky

Hlavička: Dia2.h

Knihovna: diaguids.lib

DLL: msdia80.dll

Viz také