IDebugHostData::EnumerateChildren 方法 (dbgmodel.h)
EnumerateChildren 方法返回枚举器,该枚举器将枚举给定符号的所有子级。 例如,对于 C++ 类型,基类、字段、成员函数等都被视为类型符号的子级。
语法
HRESULT EnumerateChildren(
SymbolKind kind,
PCWSTR name,
IDebugHostSymbolEnumerator **ppEnum
);
参数
kind
指示调用方希望枚举哪些类型的子符号。 如果传递了平面值 Symbol,则将枚举所有类型的子符号。
name
如果指定,将仅枚举具有此参数中给定的名称的子符号。
ppEnum
此处将返回枚举指定类型和名称的子符号的枚举器。
返回值
此方法返回指示成功或失败的 HRESULT。
注解
代码示例
ComPtr<IDebugHostType> spType; /* get the type of an object */
// Enumerate every field of this type. Note that this *WILL NOT* enumerate
// fields of base classes!
ComPtr<IDebugHostSymbolEnumerator> spEnum;
if (SUCCEEDED(spType->EnumerateChildren(SymbolField, nullptr, &spEnum)))
{
ComPtr<IDebugHostSymbol> spFieldSymbol;
HRESULT hr = S_OK;
while (SUCCEEDED(hr))
{
hr = spEnum->GetNext(&spFieldSymbol);
if (SUCCEEDED(hr))
{
ComPtr<IDebugHostField> spField;
if (SUCCEEDED(spFieldSymbol.As(&spField))) /* should always succeed */
{
// spField is each field of the type in turn
}
}
}
// hr == E_BOUNDS : we hit the end of the enumerator
// hr == E_ABORT : user requested interruption, propagate upwards immediately
}
要求
要求 | 值 |
---|---|
Header | dbgmodel.h |