IModelPropertyAccessor::GetValue 메서드(dbgmodel.h)

GetValue 메서드는 속성 접근자에 대한 getter입니다. 클라이언트가 속성의 기본 값을 가져오려고 할 때마다 호출됩니다. 속성 접근자를 직접 가져오는 호출자는 키 이름과 정확한 instance 개체(이 포인터)를 속성 접근자의 GetValue 메서드에 전달해야 합니다.

구문

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

매개 변수

key

값을 가져올 키의 이름입니다. 속성 접근자를 직접 가져오는 호출자는 이를 정확하게 전달해야 합니다.

contextObject

속성 접근자를 가져온 컨텍스트 개체(이 포인터를 instance)입니다.

value

속성의 기본 값이 여기에 반환됩니다.

반환 값

이 메서드는 성공 또는 실패를 나타내는 HRESULT를 반환합니다.

설명

예제 코드

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

요구 사항

요구 사항
헤더 dbgmodel.h

추가 정보

IModelPropertyAcessor 인터페이스