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