IModelPropertyAccessor::SetValue 메서드(dbgmodel.h)
SetValue 메서드는 속성 접근자의 setter입니다. 클라이언트가 기본 속성에 값을 할당하려고 할 때마다 호출됩니다. 대부분의 속성이 읽기 전용입니다. 이러한 경우 SetValue 메서드를 호출하면 E_NOTIMPL 반환됩니다. 속성 접근자를 직접 가져오는 호출자는 키 이름과 정확한 instance 개체(이 포인터)를 속성 접근자의 SetValue 메서드에 전달해야 합니다.
구문
HRESULT SetValue(
PCWSTR key,
IModelObject *contextObject,
IModelObject *value
);
매개 변수
key
값을 가져올 키의 이름입니다. 속성 접근자를 직접 가져오는 호출자는 이를 정확하게 전달해야 합니다.
contextObject
속성 접근자를 가져온 컨텍스트 개체(이 포인터 instance)입니다.
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;
};
요구 사항
요구 사항 | 값 |
---|---|
헤더 | dbgmodel.h |