Share via


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) を一覧表示する方法を示します。

Note

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

関連項目