IDiaEnumSymbols
枚举数据源中包含的各种符号。
语法
IDiaEnumSymbols : IUnknown
Vtable 顺序中的方法
下表显示了 IDiaEnumSymbols
方法。
方法 | 说明 |
---|---|
IDiaEnumSymbols::get__NewEnum | 检索该枚举器的 IEnumVARIANT Interface 版本。 |
IDiaEnumSymbols::get_Count | 检索符号的数量。 |
IDiaEnumSymbols::Item | 通过索引检索符号。 |
IDiaEnumSymbols::Next | 检索枚举序列中指定数量的符号。 |
IDiaEnumSymbols::Skip | 跳过枚举序列中指定数量的符号。 |
IDiaEnumSymbols::Reset | 将枚举序列重置到开头。 |
IDiaEnumSymbols::Clone | 创建一个枚举器,其中包含与当前枚举器相同的枚举状态。 |
注解
此接口提供按特定类型的符号分组的符号, SymTagUDT
例如(用户定义的类型(UDT)或 SymTagBaseClass
。 若要使用按地址分组的符号,请使用 IDiaEnumSymbolsByAddr 接口。
对调用者的说明
通过调用以下方法获取此接口:
示例
此示例演示如何获取 IDiaEnumSymbols
接口,然后使用该枚举列出用户定义类型 (UDT)。
注意
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