Partager via


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

La méthode EnumerateKeyValues est la première méthode vers laquelle un client doit 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 toutes les clés définies par des noms en double dans l’arborescence des objets ; toutefois , les méthodes telles que GetKeyValue et SetKeyValue ne manipulent que la première instance d’une clé portant le nom donné, comme découvert par la traversée en profondeur.

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) ainsi que leurs valeurs et métadonnées est retourné dans cet argument en tant que IKeyEnumerator.

Valeur retournée

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
}

Configuration requise

Condition requise Valeur
En-tête dbgmodel.h

Voir aussi

Interface IModelObject