Freigeben über


IModelObject::SetConcept-Methode (dbgmodel.h)

Die SetConcept-Methode platziert ein angegebenes Konzept auf der objektinstanz, die durch diesen Zeiger angegeben wird. Wenn ein übergeordnetes Modell, das an die von dieser angegebene Objektinstanz angefügt ist, auch das Konzept unterstützt, überschreibt die Implementierung in der Instanz dies im übergeordneten Modell.

Eine Reihe von Konzepten (Schnittstellen), die vom Datenmodell unterstützt werden, finden Sie unter Debugger Data Model C++-Konzepte.

Informationen zur IKeyStore--Schnittstelle finden Sie unter IKeyStore-Schnittstelle.

Syntax

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

Parameter

conceptId

Der eindeutige Bezeichner des zugewiesenen Konzepts. Dies ist auch der IID der Kernschnittstelle des Konzepts.

conceptInterface

Die Konzeptschnittstelle, die zugewiesen wird (definiert durch conceptId).

conceptMetadata

Optionale Metadaten, die diesem Konzept zugeordnet werden sollen.

Rückgabewert

Diese Methode gibt HRESULT zurück, das Erfolg oder Fehler angibt.

Bemerkungen

Codebeispiel

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! 
    }
}

Anforderungen

Anforderung Wert
Header- dbgmodel.h

Siehe auch

Debuggerdatenmodell-C++-Konzepte

IKeyStore-Schnittstelle

IModelObject-Schnittstelle