Méthode IDebugHostField ::EnumerateChildren (dbgmodel.h)
La méthode EnumerateChildren retourne un énumérateur qui énumère tous les enfants d’un symbole donné. Pour un type C++, par exemple, les classes de base, les champs, les fonctions membres et autres sont tous considérés comme des enfants du symbole de type.
Syntaxe
HRESULT EnumerateChildren(
SymbolKind kind,
PCWSTR name,
IDebugHostSymbolEnumerator **ppEnum
);
Paramètres
kind
Indique les types de symboles enfants que l’appelant souhaite énumérer. Si la valeur plate Symbole est passée, tous les types de symboles enfants sont énumérés.
name
S’il est spécifié, seuls les symboles enfants portant un nom tel qu’indiqué dans cet argument sont énumérés.
ppEnum
Un énumérateur qui énumère les symboles enfants du type et du nom spécifiés sera retourné ici.
Valeur retournée
Cette méthode retourne HRESULT qui indique la réussite ou l’échec.
Remarques
Exemple de code
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
}
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | dbgmodel.h |