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

另请参阅