Compartir a través de


Método IModelPropertyAccessor::GetValue (dbgmodel.h)

El método GetValue es el captador del descriptor de acceso de la propiedad. Se llama cada vez que un cliente desea capturar el valor subyacente de la propiedad . Tenga en cuenta que cualquier llamador que obtenga directamente un descriptor de acceso de propiedad es responsable de pasar el nombre de clave y el objeto de instancia preciso (este puntero) al método GetValue del descriptor de acceso de propiedad.

Sintaxis

HRESULT GetValue(
  PCWSTR       key,
  IModelObject *contextObject,
  IModelObject **value
);

Parámetros

key

Nombre de la clave para la que se va a obtener un valor. Un llamador que captura directamente un descriptor de acceso de propiedad es responsable de pasar esto con precisión.

contextObject

Objeto de contexto (instancia de este puntero) desde el que se capturó el descriptor de acceso de propiedad.

value

El valor subyacente de la propiedad se devuelve aquí.

Valor devuelto

Este método devuelve HRESULT que indica éxito o error.

Comentarios

Código de ejemplo

// 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;
};

Requisitos

Requisito Valor
Header dbgmodel.h

Consulte también

Interfaz IModelPropertyAcessor