Partilhar 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 (UDTs (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