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