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


Метод 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