Freigeben über


IModelPropertyAccessor::GetValue-Methode (dbgmodel.h)

Die GetValue-Methode ist der Getter für den Eigenschaftenaccessor. Er wird aufgerufen, wenn ein Client den zugrunde liegenden Wert der Eigenschaft abrufen möchte. Beachten Sie, dass jeder Aufrufer, der direkt einen Eigenschaftsaccessor abruft, dafür verantwortlich ist, den Schlüsselnamen und das genaue Instanzobjekt (diesen Zeiger) an die GetValue-Methode des Eigenschaftsaccessors zu übergeben.

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 dafür verantwortlich, dies genau zu übergeben.

contextObject

Das Kontextobjekt (Instanz dieses Zeigers), 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 Erfolg oder Fehler angibt.

Bemerkungen

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

Siehe auch

IModelPropertyAcessor-Schnittstelle