IModelPropertyAccessor::SetValue 方法 (dbgmodel.h)
SetValue 方法是属性访问器的 setter。 每当客户端希望将值赋给基础属性时,将调用它。 许多属性是只读属性。 在这种情况下,调用 SetValue 方法将返回E_NOTIMPL。 请注意,任何直接获取属性访问器的调用方都负责将此指针 (密钥名称和准确的实例对象) 传递给属性访问器的 SetValue 方法。
语法
HRESULT SetValue(
PCWSTR key,
IModelObject *contextObject,
IModelObject *value
);
参数
key
要获取其值的键的名称。 直接提取属性访问器的调用方负责准确传递此访问器。
contextObject
上下文对象 (从中获取属性访问器) 实例此指针。
value
要分配给属性的值。
返回值
此方法返回指示成功或失败的 HRESULT。
注解
示例代码
class MyReadWriteProperty :
public Microsoft::WRL::RuntimeClass<
Microsoft::WRL::RuntimeClassFlags<
Microsoft::WRL::RuntimeClassType::ClassicCom
>,
IModelPropertyAccessor
>
{
public:
IFACEMETHOD(GetValue)(_In_ PCWSTR /*pwszKey*/,
_In_ IModelObject * /*pContextObject*/,
_COM_Errorptr_ IModelObject **ppValue)
{
HRESULT hr = S_OK;
*ppValue = nullptr;
VARIANT vtValue;
vtValue.vt = VT_I4;
vtValue.lVal = m_value;
ComPtr<IModelObject> spValue;
hr = GetManager()->CreateIntrinsicObject(ObjectIntrinsic, &vtValue, &spValue);
if (SUCCEEDED(hr))
{
*ppValue = spValue.Detach();
}
return hr;
}
IFACEMETHOD(SetValue)(_In_ PCWSTR /*pwszKey*/,
_In_ IModelObject * /*pContextObject*/,
_In_ IModelObject *pValue)
{
VARIANT vtValue;
HRESULT hr = pValue->GetIntrinsicValueAs(VT_I4, &vtValue);
if (SUCCEEDED(hr))
{
m_value = vtValue.lVal;
}
return S_OK;
}
HRESULT RuntimeClassInitialize(_In_ int value)
{
m_value = value;
return S_OK;
}
private:
int m_value;
};
要求
要求 | 值 |
---|---|
Header | dbgmodel.h |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈