Partager via


IModelObject ::EnumerateKeyValues, méthode (dbgmodel.h)

La méthode EnumerateKeyValues est la première méthode qu’un client va se tourner pour énumérer toutes les clés d’un objet (cela inclut toutes les clés implémentées n’importe où dans l’arborescence des modèles parents). Il est important de noter que EnumerateKeyValues énumère les clés définies par des noms en double dans l’arborescence d’objets ; toutefois, les méthodes telles que GetKeyValue et SetKeyValue manipulent uniquement la première instance d’une clé avec le nom donné tel que découvert par la profondeur-first-traversal.

Syntaxe

HRESULT EnumerateKeyValues(
  IKeyEnumerator **enumerator
);

Paramètres

enumerator

Un énumérateur pour toutes les clés de l’objet (et de tous ses modèles parents) et leurs valeurs et métadonnées sont retournées dans cet argument en tant que IKeyEnumerator.

Valeur de retour

Cette méthode retourne HRESULT qui indique la réussite ou l’échec.

Remarques

Exemple de code

ComPtr<IModelObject> spObject; /* get the object you want to enumerate */

ComPtr<IKeyEnumerator> spEnum;
if (SUCCEEDED(spObject->EnumerateKeyValues(&spEnum)))
{
    HRESULT hr = S_OK;
    while (SUCCEEDED(hr))
    {
        BSTR keyName;
        ComPtr<IModelObject> spKeyValue;
        hr = spEnum->GetNext(&keyName, &spKeyValue, nullptr);
        if (SUCCEEDED(hr))
        {
            // keyName contains the name of the key
            // spKeyValue contains the value of the key

            SysFreeString(keyName);
        }
    }

    // hr == E_BOUNDS  : We hit the end of the enumerator
    // hr == E_ABORT   : User is requesting interruption of the 
    // operation / stop immediately and flow the error
}

Exigences

Exigence Valeur
d’en-tête dbgmodel.h

Voir aussi

interface IModelObject