Поделиться через


Метод IDebugHostType::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
}

Требования

Требование Значение
Заголовок dbgmodel.h

См. также раздел

Интерфейс IDebugHostType