IModelPropertyAccessor::GetValue-Methode (dbgmodel.h)
Die GetValue-Methode ist der Getter für den Eigenschaftenaccessor. Er wird immer dann aufgerufen, wenn ein Client den zugrunde liegenden Wert der Eigenschaft abrufen möchte. Beachten Sie, dass jeder Aufrufer, der direkt einen Eigenschaftsaccessor abruft, für die Übergabe des Schlüsselnamens und der genauen instance -Objekts (dieser Zeiger) an die GetValue-Methode des Eigenschaftsaccessors verantwortlich ist.
Syntax
HRESULT GetValue(
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 Eigenschaftsaccessor direkt abruft, ist für die genaue Übergabe verantwortlich.
contextObject
Das Kontextobjekt (instance diesem Zeiger), aus dem der Eigenschaftsaccessor abgerufen wurde.
value
Der zugrunde liegende Wert der Eigenschaft wird hier zurückgegeben.
Rückgabewert
Diese Methode gibt HRESULT zurück, das den Erfolg oder Fehler angibt.
Hinweise
Beispielcode
// 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;
};
Anforderungen
Anforderung | Wert |
---|---|
Header | dbgmodel.h |