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