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

Weitere Informationen

IModelPropertyAcessor-Schnittstelle