IModelPropertyAccessor::GetValue 方法 (dbgmodel.h)
GetValue 方法是屬性存取子的 getter。 每當用戶端想要擷取 屬性的基礎值時,就會呼叫它。 請注意,任何直接取得屬性存取子的呼叫端,都會負責將索引鍵名稱和精確的實例物件(此指標)傳遞至屬性存取子的 GetValue 方法。
語法
HRESULT GetValue(
PCWSTR key,
IModelObject *contextObject,
IModelObject **value
);
參數
key
要為其取得值的索引鍵名稱。 直接擷取屬性存取子的呼叫端負責正確傳遞這個。
contextObject
從中擷取屬性存取子的內容對象(實例此指標)。
value
屬性的基礎值會在這裡傳回。
傳回值
此方法會傳回表示成功或失敗的 HRESULT。
言論
範例程式代碼
// The full implementation class is shown for clarity.
class MyReadOnlyProperty :
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*/)
{
// We are a read only property.
return E_NOTIMPL;
}
HRESULT RuntimeClassInitialize(_In_ int value)
{
m_value = value;
return S_OK;
}
private:
int m_value;
};
要求
要求 | 價值 |
---|---|
標頭 | dbgmodel.h |