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

См. также раздел

Интерфейс IModelPropertyAcessor