Поделиться через


Метод IModelObject::EnumerateKeyValues (dbgmodel.h)

Метод EnumerateKeyValues — это первый метод, на который клиент будет обращаться, чтобы перечислить все ключи объекта (это включает все ключи, реализованные в любом месте дерева родительских моделей). Важно отметить, что EnumerateKeyValues перечисляет все ключи, определенные повторяющимися именами в дереве объектов; однако методы, такие как GetKeyValue и SetKeyValue, будут управлять только первым экземпляром ключа с заданным именем, как обнаружено глубиной первого обхода.

Синтаксис

HRESULT EnumerateKeyValues(
  IKeyEnumerator **enumerator
);

Параметры

enumerator

Перечислитель для всех ключей объекта (и всех его родительских моделей) и их значения и метаданные возвращаются в этом аргументе как IKeyEnumerator.

Возвращаемое значение

Этот метод возвращает HRESULT, указывающий на успех или сбой.

Замечания

Пример кода

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
}

Требования

Требование Ценность
заголовка dbgmodel.h

См. также

интерфейс IModelObject