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

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

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

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 affecté. 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 retournée

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

Configuration requise

Condition requise Valeur
En-tête dbgmodel.h

Voir aussi

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

Interface IKeyStore

Interface IModelObject