Freigeben über


BindProperty-Funktion (dbgmodel.h)

Ein Binder, der zwei instance Methoden für eine Klasse in einen Lese-/Schreibzugriff auf Eigenschaften konvertiert. Die Klasse muss IUnknown abgeleitet sein. Der zurückgegebene Binder enthält einen Verweis auf das Klassenobjekt.

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

Syntax

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
);

Parameter

classObject

Die instance einer bestimmten Klasse, an die der neu erstellte Eigenschaftsaccessor gebunden wird.

getMethod

Ein Zeiger-auf-Member-Funktionszeiger der Signatur (PCWSTR, IModelObject *, IModelObject**), der als Getter für den neu erstellten Eigenschaftenaccessor fungiert.

setMethod

Eine Zeiger-zu-Member-Funktion der Signatur (PCWSTR, IModelObject *, IModelObject *), die als Setter für den neu erstellten Eigenschaftenaccessor fungiert.

Rückgabewert

Diese Funktion gibt Microsoft::WRL::ComPtr<IModelPropertyAccessor> zurück.

Hinweise

In diesem Beispielcode wird die Verwendung der BindProperty-Funktion veranschaulicht.

Hinweis

Das Codebeispiel verwendet den empfohlenen DbgModelClientEx.h-Bibliotheksheader, der auf GitHub verfügbar ist. Weitere Informationen finden Sie unter Verwenden der DbgModelClientEx-Bibliothek.

Informationen zur Verwendung der DbgModelClientEx-Bibliothek, z. B. beim Angeben der Debugger::D ataModel-Namespaces, finden Sie im Data Model HelloWorld C++-Beispiel: 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.

Anforderungen

Anforderung Wert
Header dbgmodel.h

Weitere Informationen

Übersicht über das Debuggerdatenmodell in C++