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 |