Metode IModelPropertyAccessor::GetValue (dbgmodel.h)

Metode GetValue adalah getter untuk aksesor properti. Ini dipanggil setiap kali klien ingin mengambil nilai yang mendasar dari properti . Perhatikan bahwa setiap penelepon yang secara langsung mendapatkan aksesor properti bertanggung jawab untuk meneruskan nama kunci dan objek instans yang akurat (penunjuk ini) ke metode GetValue aksesor properti.

Sintaks

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

Parameter

key

Nama kunci untuk mendapatkan nilai. Penelepon yang mengambil pengakses properti secara langsung bertanggung jawab untuk melewati ini secara akurat.

contextObject

Objek konteks (instans penunjuk ini) tempat pengaktor properti diambil.

value

Nilai yang mendasar dari properti dikembalikan di sini.

Mengembalikan nilai

Metode ini mengembalikan HRESULT yang menunjukkan keberhasilan atau kegagalan.

Keterangan

Kode Sampel

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

Persyaratan

   
Header dbgmodel.h

Lihat juga

Antarmuka IModelPropertyAcessor