IDebugHostPublic::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

另请参阅

IDebugHostPublic 接口