IDiaEnumSymbols

列舉各種資料來源中所包含的符號。

IDiaEnumSymbols : IUnknown

方法 Vtable 順序

下表顯示的方法IDiaEnumSymbols

方法

描述

IDiaEnumSymbols::get__NewEnum

擷取IEnumVARIANT Interface版的這個列舉值。

IDiaEnumSymbols::get_Count

擷取符號的數目。

IDiaEnumSymbols::Item

擷取的索引的符號。

IDiaEnumSymbols::Next

擷取指定的列舉型別序列中的符號數目。

IDiaEnumSymbols::Skip

略過指定的數目的列舉型別序列中的符號。

IDiaEnumSymbols::Reset

將列舉型別序列重設至開頭。

IDiaEnumSymbols::Clone

建立列舉值,包含目前的列舉值的列舉型別狀態。

備註

這個介面會提供透過特定類型的符號,例如,分組的符號SymTagUDT (使用者定義的型別) 或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

請參閱

參考

IDiaSession::findChildren

IDiaSourceFile::get_compilands

IDiaSymbol::findChildren

其他資源

介面 (偵錯介面存取 SDK)