共用方式為


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

另請參閱