IModelObject::SetConcept 메서드(dbgmodel.h)

SetConcept 메서드는 이 포인터에서 지정한 개체 instance 지정된 개념을 배치합니다. 이 에 의해 지정된 개체 instance 연결된 부모 모델도 개념을 지원하는 경우 instance 구현은 부모 모델에서 이를 재정의합니다.

데이터 모델에서 지원하는 개념(인터페이스) 집합은 디버거 데이터 모델 C++ 개념을 참조하세요.

IKeyStore 인터페이스에 대한 자세한 내용은 IKeyStore 인터페이스를 참조하세요.

구문

HRESULT SetConcept(
  REFIID    conceptId,
  IUnknown  *conceptInterface,
  IKeyStore *conceptMetadata
);

매개 변수

conceptId

할당되는 개념의 고유 식별자입니다. 이는 개념의 핵심 인터페이스의 IID이기도 합니다.

conceptInterface

할당되는 개념 인터페이스입니다(conceptId로 정의됨).

conceptMetadata

이 개념과 연결할 선택적 메타데이터입니다.

반환 값

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

설명

코드 예제

ComPtr<IModelObject> spObject; /* get an object: say a new one from CreateSyntheticObject */

// Implement IStringDisplayableConcept for the object.  Return a static "Hello World" string.
class MyStringConversion :
    public Microsoft::WRL::RuntimeClass<
        Microsoft::WRL::RuntimeClassFlags<Microsoft::WRL::RuntimeClassType::ClassicCom>,
        IStringDisplayableConcept
        >
{
public:

    IFACEMETHOD(ToDisplayString)(_In_ IModelObject * /*pContextObject*/, 
                                 _In_opt_ IKeyStore * /*pMetadata*/, 
                                 _Out_ BSTR *pDisplayString)
    {
        *pDisplayString = SysAllocString(L"Hello World");
        return *pDisplayString == nullptr ? E_OUTOFMEMORY : S_OK;
    }
};

// Add the implementation as a concept
ComPtr<MyStringConversion> spStringConverter = Microsoft::WRL::Make<MyStringConversion>();
if (spStringConverter != nullptr)
{
    if (SUCCEEDED(spObject->SetConcept(__uuidof(IStringDisplayableConcept),
                                       static_cast<IStringDisplayableConcept *>
                                           (spStringConverter.Get()), nullptr)))
    {
        // The new object can be converted to a string! 
    }
}

요구 사항

요구 사항
헤더 dbgmodel.h

추가 정보

디버거 데이터 모델 C++ 개념

IKeyStore 인터페이스

IModelObject 인터페이스