Поделиться через


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

См. также