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