Erstellen von benutzerdefinierten Eigenschaften

Eigenschaften, die im Eigenschaftensystem von Windows Vista und höher verwendet werden, werden in Eigenschaftenschemas deklariert. Diese Eigenschaftenschemas werden in XML-Dateien definiert und beschreiben verschiedene Aspekte einer Eigenschaft, einschließlich des Typs (einschließlich Informationen über den grundtyp und ob es mehrwertige Werte sind), wie sie auf der Windows-Benutzeroberfläche angezeigt werden können, welche Art von Bezeichnungen (benutzerfreundliche Bearbeitungszeichenfolgen) damit verwendet werden soll und wie sie im Suchspeicher zwischengespeichert wird, um schnelleren Zugriff zu ermöglichen. Eigenschaften werden durch den kanonischen Namen oder den Eigenschaftenschlüssel (Property Key, PKEY) identifiziert.

Ein kanonischer Name ist der leserfreundliche Name der Eigenschaft und verwendet eine Namespacekonvention, die dem in Microsoft .NET verwendeten entspricht. Für systemdefinierte Eigenschaften (die in Windows enthalten sind), ist System.GroupName.PropertyNamedie Konvention . Beachten Sie, dass das Pascal-Groß-/Kleinschreibungsschema, bei dem Buchstaben am Anfang jedes Worts großgeschrieben werden, in diesen Namen verwendet wird. Kanonische Namen werden an verschiedenen Stellen verwendet, einschließlich Eigenschaftenlisten und Spaltennamen im Eigenschaftencache. Sie werden daher in sql-Abfragen (strukturierte Abfragesprache) verwendet, um einen Eigenschaftswert abzurufen.

Ein PKEY ist ein Wertepaar, das aus einer GUID und einem DWORD besteht, das bzw. die als formatID bzw . propID bezeichnet wird. Sie wird durch eine PROPERTYKEY-Struktur dargestellt. Die meisten Eigenschaftensystem-APIs akzeptieren diese Eigenschaftenschlüssel. Das Windows Software Development Kit (SDK) enthält die Headerdatei Propkey.h, die eine Makrodefinition der einzelnen Eigenschaftsschlüssel mit der Konvention enthält System PKEY_GroupName_PropertyName. Ist z. B PKEY_Photo_DateTaken . der Eigenschaftsschlüssel für die Eigenschaft mit kanonischem Namen System.Photo.DateTaken. Eigenschaftswerte werden in Form einer PROPVARIANT-Struktur gespeichert, bei der es sich um eine Erweiterung der OLE VARIANT-Typen handelt.

Dieser Abschnitt enthält das folgende Thema, das für die Erstellung benutzerdefinierter Eigenschaften integral ist:

Hinweis

Aufgrund potenzieller Schwierigkeiten, die der Indexer bei der Verwendung des Schemas des Eigenschaftensystems haben kann, ist es wichtig, dass Sie Attribute sorgfältig und strategisch für die erste Version des Schemas definieren. Alle Änderungen an Attributen (Typ, Spaltenbreite, indexierbar) werden nach der Registrierung eines Schemas nicht in der Datenbank widerzuspiegeln. Die einzigen Methoden, um diese Änderungen erkannt zu haben, nachdem das Schema einmal auf einem System registriert wurde, wäre entweder die Neuerstellung des Indexes und anschließendes Registrieren des neuen Schemas oder das Registrieren des Schemas und anschließendes Erstellen einer neuen Eigenschaft für jede nachfolgende Version; z. BPKEY_GroupName_PropertyNameV2PKEY_GroupName_PropertyNameV3. , usw. Es wird nicht empfohlen, neue Eigenschaften auf diese Weise zu erstellen, da sich mehrere überflüssige Spalten auf die Systemleistung auswirken können.

 

Implementieren von Eigenschaftenhandlern

Eigenschaftenbeschreibungsschema