IModelPropertyAccessor::SetValue-Methode (dbgmodel.h)
Die SetValue-Methode ist der Setter für den Eigenschaftenzugriffsor. Er wird immer dann aufgerufen, wenn ein Client der zugrunde liegenden Eigenschaft einen Wert zuweisen möchte. Viele Eigenschaften sind schreibgeschützt. In solchen Fällen gibt das Aufrufen der SetValue-Methode E_NOTIMPL zurück. Beachten Sie, dass jeder Aufrufer, der direkt einen Eigenschaftszugriffsor abruft, für die Übergabe des Schlüsselnamens und der genauen instance -Objekts (dieser Zeiger) an die SetValue-Methode des Eigenschaftenzugriffers verantwortlich ist.
Syntax
HRESULT SetValue(
PCWSTR key,
IModelObject *contextObject,
IModelObject *value
);
Parameter
key
Der Name des Schlüssels, für den ein Wert abgerufen werden soll. Ein Aufrufer, der einen Eigenschaftenzugriffsor direkt abruft, ist für die genaue Übergabe verantwortlich.
contextObject
Das Kontextobjekt (instance diesem Zeiger), aus dem der Eigenschaftszugriffsor abgerufen wurde.
value
Der Wert, der der Eigenschaft zugewiesen werden soll.
Rückgabewert
Diese Methode gibt HRESULT zurück, das auf Erfolg oder Fehler hinweist.
Hinweise
Beispielcode
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;
};
Anforderungen
Anforderung | Wert |
---|---|
Header | dbgmodel.h |