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 |