Partager via


Fonction BindProperty (dbgmodel.h)

Classeur qui convertit deux méthodes instance sur une classe en accesseur de propriété en lecture/écriture. La classe doit être dérivée de IUnknown. Le classeur retourné contient la référence sur l’objet de classe.

Utilisation : BindProperty(this, &MyClass ::GetMyProperty, &MyClass ::SetMyProperty)

Syntaxe

Microsoft::WRL::ComPtr<IModelPropertyAccessor> BindProperty(
  T                                                                           *classObject,
  HRESULT(T::* )(PCWSTR key,IModelObject *contextObject,IModelObject **value) getMethod,
  HRESULT(T::* )(PCWSTR key,IModelObject *contextObject,IModelObject **value) setMethod
);

Paramètres

classObject

Instance d’une classe donnée à laquelle l’accesseur de propriété nouvellement créé sera lié.

getMethod

Pointeur de la fonction de membre de signature (PCWSTR, IModelObject *, IModelObject**) qui servira de getter pour l’accesseur de propriété nouvellement créé.

setMethod

Fonction pointeur vers membre de signature (PCWSTR, IModelObject *, IModelObject *) qui servira de setter pour l’accesseur de propriété nouvellement créé.

Valeur retournée

Cette fonction retourne Microsoft ::WRL ::ComPtr<IModelPropertyAccessor>.

Remarques

Cet exemple de code montre l’utilisation de la fonction BindProperty.

Notes

L’exemple de code utilise l’en-tête de bibliothèque DbgModelClientEx.h recommandé disponible à partir de GitHub. Pour plus d’informations, consultez Utilisation de la bibliothèque DbgModelClientEx.

Pour voir comment la bibliothèque DbgModelClientEx est utilisée, par exemple, en spécifiant les espaces de noms Debugger ::D ataModel, passez en revue l’exemple C++ du modèle de données HelloWorld : https://github.com/microsoft/WinDbg-Samples/tree/master/DataModelHelloWorld/Cpp

// Define a native type that we wish to project into the data model
struct MyNativeType
{
    std::wstring Name;
    int Id;
    int WriteableValue;
};

// Declare a type factory for the type
class MyNativeTypeFactory : public TypedInstanceModel<MyNativeType>
{
public:
    MyNativeTypeFactory()
    {
        BindReadOnlyProperty(L"Name", &MyNativeType::Name);
        BindReadOnlyProperty(L"Id", &MyNativeType::Id);
        BindProperty(L"WriteableValue", &MyNativeType::WriteableValue);
    }
};

// Create the type factory and make an instance
MyNativeTypeFactory factory;
Object instance = factory.CreateInstance(MyNativeType { L"Foo", 42, 37 });

// There are "Name/Id" read-only properties on instance and a "WriteableValue" property.

Configuration requise

Condition requise Valeur
En-tête dbgmodel.h

Voir aussi

Vue d’ensemble du modèle de données C++ du débogueur