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


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

Метод SetKey — это метод, на который клиент будет обращаться, чтобы создать ключ для объекта (и потенциально связать метаданные с созданным ключом). Если заданный объект уже имеет ключ с заданным именем, произойдет одно из двух действий. Если ключ находится в экземпляре, заданном этим, значение этого ключа будет заменено, как если бы исходный ключ не существовал. Если, с другой стороны, ключ находится в цепочке родительских моделей данных экземпляра, заданного этим, новый ключ с заданным именем будет создан на экземпляре, заданном этим. Это приведет к тому, что объект имеет два ключа одного и того же имени (аналогично производному классу, тенируя член того же имени, что и базовый класс).

Синтаксис

HRESULT SetKey(
  PCWSTR       key,
  IModelObject *object,
  IKeyStore    *metadata
);

Параметры

key

Имя ключа для задания значения.

object

Значение ключа будет задано для объекта, содержащегося в этом аргументе.

metadata

Необязательные метаданные, связанные с новым ключом.

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

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

Замечания

Пример кода

ComPtr<IDataModelManager> spManager; /* get the data model manager */

// Create a new object with a property called "Test" with a value of 42.
ComPtr<IModelObject> spNewObject;
if (SUCCEEDED(spManager->CreateSyntheticObject(nullptr, &spNewObject)))
{
    VARIANT vtVal;
    vtVal.vt = VT_I4;
    vtVal.lVal = 42;

    ComPtr<IModelObject> sp42;
    if (SUCCEEDED(spManager->CreateIntrinsicObject(ObjectIntrinsic, &vtVal, &sp42)))
    {
        if (SUCCEEDED(spNewObject->SetKey(L"Test", sp42.Get(), nullptr)))
        {
            // We have placed a static "42" on the new object under the key "Test"
        }
    }
}

Требования

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

См. также

интерфейс IModelObject