Método IModelPropertyAccessor::SetValue (dbgmodel.h)
El método SetValue es el establecedor para el descriptor de acceso de propiedad. Se llama cada vez que un cliente desea asignar un valor a la propiedad subyacente. Muchas propiedades son de solo lectura. En tales casos, llamar al método SetValue devolverá E_NOTIMPL. 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 SetValue del descriptor de acceso de propiedad.
Sintaxis
HRESULT SetValue(
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
Valor que se asigna a la propiedad.
Valor devuelto
Este método devuelve HRESULT que indica éxito o error.
Comentarios
Código de ejemplo
class MyReadWriteProperty :
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)
{
VARIANT vtValue;
HRESULT hr = pValue->GetIntrinsicValueAs(VT_I4, &vtValue);
if (SUCCEEDED(hr))
{
m_value = vtValue.lVal;
}
return S_OK;
}
HRESULT RuntimeClassInitialize(_In_ int value)
{
m_value = value;
return S_OK;
}
private:
int m_value;
};
Requisitos
Requisito | Valor |
---|---|
Header | dbgmodel.h |