Partager via


IModelObject ::SetConcept, méthode (dbgmodel.h)

La méthode SetConcept place un concept spécifié sur l’instance d’objet spécifiée par le pointeur. Si un modèle parent attaché à l’instance d’objet spécifiée par cela prend également en charge le concept, l’implémentation dans l’instance remplace celle-ci dans le modèle parent.

Pour connaître l’ensemble de concepts (interfaces) pris en charge par le modèle de données, consultez Concepts C++ du débogueur C++.

Pour plus d’informations sur l’interface IKeyStore, consultez 'interface IKeyStore.

Syntaxe

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

Paramètres

conceptId

Identificateur unique du concept assigné. Il s’agit également de l’IID de l’interface principale du concept.

conceptInterface

Interface de concept affectée (définie par conceptId).

conceptMetadata

Métadonnées facultatives à associer à ce concept.

Valeur de retour

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

Remarques

Exemple de code

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

Exigences

Exigence Valeur
d’en-tête dbgmodel.h

Voir aussi

concepts du modèle de données C++ du débogueur

interface IKeyStore

interface IModelObject