Метод IModelPropertyAccessor::GetValue (dbgmodel.h)
Метод GetValue — это метод получения для метода доступа к свойству. Он вызывается всякий раз, когда клиент хочет получить базовое значение свойства. Обратите внимание, что любой вызывающий объект, который напрямую получает метод доступа к свойству, отвечает за передачу имени ключа и точного объекта экземпляра (этот указатель) методу 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 |