Condividi tramite


Metodo IModelObject::SetConcept (dbgmodel.h)

Il metodo SetConcept inserisce un concetto specificato nell'istanza dell'oggetto specificata dal puntatore. Se un modello padre associato all'istanza dell'oggetto specificato da supporta anche il concetto, l'implementazione nell'istanza eseguirà l'override di quella nel modello padre.

Per il set di concetti (interfacce) supportati dal modello di dati, vedere Debugger Data Model C++ Concepts.

Per informazioni sull'interfaccia IKeyStore, vedere interfaccia IKeyStore.

Sintassi

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

Parametri

conceptId

Identificatore univoco del concetto assegnato. Questo è anche l'IID dell'interfaccia principale del concetto.

conceptInterface

Interfaccia del concetto assegnata (definita da conceptId).

conceptMetadata

Metadati facoltativi da associare a questo concetto.

Valore restituito

Questo metodo restituisce HRESULT che indica l'esito positivo o negativo.

Osservazioni

esempio di codice

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

Fabbisogno

Requisito Valore
intestazione dbgmodel.h

Vedere anche

concetti relativi al modello di dati del debugger C++

interfaccia IKeyStore

dell'interfaccia IModelObject