Partager via


IModelPropertyAccessor ::GetValue, méthode (dbgmodel.h)

La méthode GetValue est le getter de l’accesseur de propriété. Il est appelé chaque fois qu’un client souhaite extraire la valeur sous-jacente de la propriété. Notez que tout appelant qui obtient directement un accesseur de propriété est responsable de la transmission du nom de clé et de l’objet de instance précis (ce pointeur) à la méthode GetValue de l’accesseur de propriété.

Syntaxe

HRESULT GetValue(
  PCWSTR       key,
  IModelObject *contextObject,
  IModelObject **value
);

Paramètres

key

Nom de la clé pour laquelle obtenir une valeur. Un appelant qui extrait directement un accesseur de propriété est responsable de la transmission de cette opération avec précision.

contextObject

Objet de contexte (instance ce pointeur) à partir duquel l’accesseur de propriété a été extrait.

value

La valeur sous-jacente de la propriété est retournée ici.

Valeur retournée

Cette méthode retourne HRESULT qui indique la réussite ou l’échec.

Remarques

Exemple de Code

// 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;
};

Configuration requise

Condition requise Valeur
En-tête dbgmodel.h

Voir aussi

Interface IModelPropertyAcessor