次の方法で共有


IDiaEnumSymbols

データ ソースに含まれるさまざまなシンボルを列挙します。

IDiaEnumSymbols : IUnknown

Vtable の順序でメソッド

次の表は IDiaEnumSymbols のメソッドを示します。

メソッド

Description

IDiaEnumSymbols::get__NewEnum

この列挙子の IEnumVARIANT Interface のバージョンを取得します。

IDiaEnumSymbols::get_Count

シンボルの数を取得します。

IDiaEnumSymbols::Item

インデックスでシンボルを取得します。

IDiaEnumSymbols::Next

列挙体シーケンス内の指定したシンボルの数を取得します。

IDiaEnumSymbols::Skip

列挙体シーケンス内のシンボルの指定した数の要素をスキップします。

IDiaEnumSymbols::Reset

列挙体シーケンスを先頭にリセットします。

IDiaEnumSymbols::Clone

現在の列挙子と同じ列挙状態を含む列挙子を作成します。

解説

このインターフェイスは (たとえばSymTagUDT ユーザー定義型 () または SymTagBaseClass の種類にグループ化されたシンボルを提供します。 アドレスにグループ化されたシンボルを使用するには IDiaEnumSymbolsByAddr のインターフェイスを使用します。

呼び出し元のメモ

次のメソッドを呼び出してこのインターフェイスを取得します :

使用例

この例で IDiaEnumSymbols のインターフェイスを取得しユーザー定義型の一覧を表示するには列挙型を使用する方法を (UDTs) 示します。

注意

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

その他の技術情報

インターフェイス (Debug Interface Access SDK)