IDiaEnumSymbols
Перечисляет различные символы, содержащиеся в источнике данных.
Синтаксис
IDiaEnumSymbols : IUnknown
Методы в порядке таблицы Vtable
В следующей таблице показаны методы IDiaEnumSymbols
.
Метод | Description |
---|---|
IDiaEnumSymbols::get__NewEnum | Извлекает IEnumVARIANT Interface версию этого перечислителя. |
IDiaEnumSymbols::get_Count | Извлекает количество символов. |
IDiaEnumSymbols::Item | Извлекает символ с помощью индекса. |
IDiaEnumSymbols::Next | Извлекает указанное число символов в последовательности перечисления. |
IDiaEnumSymbols::Skip | Пропускает указанное число символов в последовательности перечисления. |
IDiaEnumSymbols::Reset | Сбрасывает последовательность перечисления в начало. |
IDiaEnumSymbols::Clone | Создает перечислитель, содержащий то же состояние перечисления, что и текущий перечислитель. |
Замечания
Этот интерфейс предоставляет символы, сгруппированные по определенному типу символов, например SymTagUDT
(определяемые пользователем типы (определяемые пользователем типы)) или SymTagBaseClass
. Чтобы работать с символами, сгруппированных по адресу, используйте интерфейс IDiaEnumSymbolsByAddr .
Заметки для вызывающих абонентов
Получите этот интерфейс, вызвав следующие методы:
Пример
В этом примере показано, как получить IDiaEnumSymbols
интерфейс, а затем использовать это перечисление для перечисления определяемых пользователем типов (определяемых пользователем типов).
Примечание.
CDiaBSTR
— это класс, который выполняет оболочку BSTR
и автоматически обрабатывает освобождение строки при выходе экземпляра из области.
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;
}
}
}
Требования
Заголовок: Dia2.h
Библиотека: diaguids.lib
DLL: msdia80.dll