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é určitým typem symbolu, SymTagUDT
například (uživatelsky definované typy (UDT) 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