Partager via


Méthode IDebugHostSymbol ::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 transmise, tous les types de symboles enfants sont énumérés.

name

S’ils sont spécifiés, seuls les symboles enfants portant un nom donné dans cet argument seront é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

Voir aussi

Interface IDebugHostSymbol