IDiaEnumSymbols
Wylicza różne symbole zawarte w źródle danych.
Składnia
IDiaEnumSymbols : IUnknown
Metody w tabeli Vtable Order
W poniższej tabeli przedstawiono metody .IDiaEnumSymbols
Metoda | opis |
---|---|
IDiaEnumSymbols::get__NewEnum | IEnumVARIANT Interface Pobiera wersję tego modułu wyliczającego. |
IDiaEnumSymbols::get_Count | Pobiera liczbę symboli. |
IDiaEnumSymbols::Item | Pobiera symbol za pomocą indeksu. |
IDiaEnumSymbols::Next | Pobiera określoną liczbę symboli w sekwencji wyliczenia. |
IDiaEnumSymbols::Skip | Pomija określoną liczbę symboli w sekwencji wyliczenia. |
IDiaEnumSymbols::Reset | Resetuje sekwencję wyliczenia na początku. |
IDiaEnumSymbols::Clone | Tworzy moduł wyliczający, który zawiera ten sam stan wyliczenia co bieżący moduł wyliczający. |
Uwagi
Ten interfejs udostępnia symbole pogrupowane według określonego typu symbolu, na przykład SymTagUDT
(typy zdefiniowane przez użytkownika )) lub SymTagBaseClass
. Aby pracować z symbolami pogrupowanych według adresu, użyj interfejsu IDiaEnumSymbolsByAddr .
Uwagi dotyczące wywoływania
Uzyskaj ten interfejs, wywołując następujące metody:
Przykład
W tym przykładzie IDiaEnumSymbols
pokazano, jak uzyskać interfejs, a następnie użyć tego wyliczenia, aby wyświetlić listę typów zdefiniowanych przez użytkownika (UTS).
Uwaga
CDiaBSTR
jest klasą, która opakowuje BSTR
element i automatycznie obsługuje zwalnianie ciągu, gdy wystąpienie wykracza poza zakres.
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;
}
}
}
Wymagania
Nagłówek: Dia2.h
Biblioteka: diaguids.lib
BIBLIOTEKA DLL: msdia80.dll