IDiaEnumSymbols
データ ソースに含まれるさまざまなシンボルを列挙します。
IDiaEnumSymbols : IUnknown
Vtable の順序でメソッド
次の表は IDiaEnumSymbols のメソッドを示します。
メソッド |
Description |
---|---|
この列挙子の IEnumVARIANT Interface のバージョンを取得します。 |
|
シンボルの数を取得します。 |
|
インデックスでシンボルを取得します。 |
|
列挙体シーケンス内の指定したシンボルの数を取得します。 |
|
列挙体シーケンス内のシンボルの指定した数の要素をスキップします。 |
|
列挙体シーケンスを先頭にリセットします。 |
|
現在の列挙子と同じ列挙状態を含む列挙子を作成します。 |
解説
このインターフェイスは (たとえば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
参照
関連項目
IDiaSourceFile::get_compilands