Compartilhar via


IDiaEnumSymbols

Enumera os vários símbolos contidos na fonte de dados.

Syntax

IDiaEnumSymbols : IUnknown

Métodos na ordem VTable

A tabela a seguir mostra os métodos de IDiaEnumSymbols.

Método Descrição
IDiaEnumSymbols::get__NewEnum Recupera a versão IEnumVARIANT Interface desse enumerador.
IDiaEnumSymbols::get_Count Recupera o número de símbolos.
IDiaEnumSymbols::Item Recupera um símbolo por meio de um índice.
IDiaEnumSymbols::Next Recupera um número especificado de símbolos na sequência de enumeração.
IDiaEnumSymbols::Skip Ignora um número especificado de símbolos em uma sequência de enumeração.
IDiaEnumSymbols::Reset Redefine uma sequência de enumeração para o início.
IDiaEnumSymbols::Clone Cria um enumerador que contém o mesmo estado de enumeração que o enumerador atual.

Comentários

Essa interface fornece símbolos agrupados por um tipo específico de símbolo; por exemplo, SymTagUDT (tipos definidos pelo usuário) ou SymTagBaseClass. Para trabalhar com símbolos agrupados por endereço, use a interface IDiaEnumSymbolsByAddr.

Observações para chamadores

Obtenha essa interface chamando os seguintes métodos:

Exemplo

Esse exemplo mostra como obter a interface IDiaEnumSymbols e, depois, usar essa enumeração para listar UDTs (tipos definidos pelo usuário).

Observação

CDiaBSTR é uma classe que encapsula um BSTR e manipula automaticamente a liberação da cadeia de caracteres quando a instanciação sai do escopo.

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

Requisitos

Cabeçalho: Dia2.h

Biblioteca: diaguids.lib

DLL: msdia80.dll

Confira também