Grundlegendes zum Schema der Eigenschaftenbeschreibung

In diesem Thema wird das Eigenschaftenbeschreibungsschema beschrieben, das vom Shell-Eigenschaftensystem verwendet wird.

Die Einführung neuer Features für Windows Vista und höher erforderte, dass das vorhandene Shell-Eigenschaftensystem auf die folgenden Elemente erweitert wurde:

  • Unterstützen Sie ein umfassendes und erweiterbares Eigenschaftenbeschreibungssystem, das Informationen zu Eigenschaften wie Anzeigenamen, Typ, Anzeigetyp, Sortierungs- und Gruppenverhalten sowie andere Attribute enthält, die zum Präsentieren und Bearbeiten der Eigenschaften erforderlich sind.
  • Unterstützen Sie eine Vorratliste von Eigenschaftentypen (in Kombination mit der Benutzeroberfläche, die diese Typen in verschiedenen Ansichten wie listview, preview pane, property dialogs und so weiter bearbeiten kann), die verschiedenen Eigenschaften zugeordnet werden können.
  • Geben Sie Eigenschaftenbeschreibungslisten an, die den Satz von Eigenschaften definieren, die in verschiedenen Ansichten angezeigt werden.
  • Stellen Sie die vereinfachte Schnittstelle IPropertyStorebereit, damit Eigenschaftenhandler einfacher geschrieben werden können und Eigenschaften in Dateien beibehalten werden können.
  • Unterstützung für Eigenschaftenhandler, die keine Dateien sind, um Eigenschaften in der Ansicht verfügbar zu machen.

Diese Features werden in einer Architektur erreicht, die abstrakten Zugriff auf die Eigenschaften eines Shellelements bietet. Diese Abstraktion wird als Shell-Eigenschaftensystem bezeichnet.

Was ist das Schema der Eigenschaftenbeschreibung?

Das Schemasubsystem besteht aus folgendem:

  • Mindestens eine PROPDESC-Schemadatei, die Eigenschaftenbeschreibungen definiert. Das Eigenschaftenbeschreibungsschema wird zur Laufzeit auf dem System in einer Auflistung von XML-Schemadateien (mithilfe der Dateierweiterung PROPDESC) definiert. Diese Dateien werden verzögert geladen, wenn sie von einem Teil des Eigenschaftensystems benötigt werden.
  • Ein In-Memory-Schemacache, der zum Speichern der analysierten Schemadateien verwendet wird, die alle Eigenschaftenbeschreibungen enthalten, die in das Subsystem eingeführt wurden. Die PROPDESC-Konfigurationsdateien, die das Schema beschreiben, müssen nicht neu erstellt werden. Weitere Informationen finden Sie unter PSRegisterPropertySchema, PSUnregisterPropertySchemaund PSRefreshPropertySchema.
  • Ein Subsystemobjekt, das IPropertySystem implementiert,das zum Abrufen oder Arbeiten mit Eigenschaftenbeschreibungen verwendet wird.
  • Ein Subsystemobjekt, das IPropertyDescriptionimplementiert, das verwendet wird, um basierend auf einer Eigenschaftenbeschreibung zu informieren und zu arbeiten.
  • Ein Subsystemobjekt, das IPropertyDescriptionListimplementiert, das als Auflistung von Eigenschaftenbeschreibungen verwendet wird.

Hinweis

Sie müssen dem xmlns=http://schemas.microsoft.com/windows/2006/propertydescription Stammschemaelement Ihrer PROPDESC-Dateien hinzufügen.

Gründe für die Verwendung eines Schemas

Eigenschaften selbst sind nicht typsicher. Eine Komponente kann der System.Author-Eigenschaft einen numerischen Wert oder dem System einen FILETIME-Datumsstempel zuweisen. Musik. Die AlbumTitle-Eigenschaft und ohne weitere Erzwingung oder Anleitung werden die Eigenschaftenspeicher dies zulassen. Daher mussten wir die Eigenschaften "schematisieren", was uns zum Schemasubsystem führt.

Was sind die wichtigsten Schemateile?

Das vom Shell-Eigenschaftensystem verwendete Eigenschaftenbeschreibungsschema besteht aus einem einzelnen propertyDescriptionList-Element sowie einem schemaVersion-Attribut, das die Version dieses Schemadefinitionsformats angibt. Hinweis: Der Wert muss "1.0" sein.

<!-- schema -->
    <xs:element name="schema">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="propertyDescriptionList" minOccurs="1" maxOccurs="1"/>
        </xs:sequence>
        <xs:attribute name="schemaVersion"  type="xs:string"/>
      </xs:complexType>
    </xs:element>

PropertyDescriptionList besteht aus mindestens einem propertyDescription-Element sowie aus Herausgeber- und Produktattributen.

<!-- propertyDescriptionList -->
    <xs:element name="propertyDescriptionList">
      <xs:complexType>
        <xs:sequence>
          <xs:element ref="propertyDescription" minOccurs="1" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="publisher" type="xs:string"/>
        <xs:attribute name="product"   type="xs:string"/>
      </xs:complexType>
    </xs:element>

Eine propertyDescription besteht aus einem searchInfo- und null- oder einem labelInfo-, typeInfo-und displayInfo-Element sowie aus formatID-, propID-, propstr- und name-Attributen.

Es sollte ein propertyDescription-Element für jeden eindeutigen kanonischen Eigenschaftennamen vorhanden sein, der im System verfügbar sein soll. Die Zeichenfolgenattribute sind auf 512 Zeichen begrenzt. Werte, die länger als 512 Zeichen sind, werden abgeschnitten.

<!-- propertyDescription -->
    <xs:element name="propertyDescription">
      <xs:complexType>
        <xs:all>
          <xs:element name="description"    type="xs:string" minOccurs="0" maxOccurs="1"/>
          <xs:element ref="searchInfo"   minOccurs="1" maxOccurs="1"/>
          <xs:element ref="labelInfo"    minOccurs="0" maxOccurs="1"/>
          <xs:element ref="typeInfo"     minOccurs="0" maxOccurs="1"/>
          <xs:element ref="displayInfo"  minOccurs="0" maxOccurs="1"/>
        </xs:all>
        <xs:attribute name="formatID"  type="upcase-uuid" use="required""/>
        <xs:attribute name="propID"    type="xs:nonNegativeInteger" use="required""/>
        <xs:attribute name="name"      type="canonical-name" use="required"/>
      </xs:complexType>
    </xs:element>

Änderungen für Windows 7

Das Eigenschaftenbeschreibungsschema wurde für Windows 7 geändert. Dabei handelt es sich um nicht breaking Changes. Wenn ein Eigenschaftenelement oder Attribut in Windows 7 nicht mehr unterstützt wird, ignoriert das Windows 7-Betriebssystem die Windows Vista-Elemente oder -Attribute. Ebenso ignoriert Windows Vista neue Windows 7-Eigenschaftselemente oder -Attribute.

Es wird jedoch empfohlen, benutzerdefinierte Eigenschaften für Windows 7 zu aktualisieren, um eine bessere und konsistentere Benutzererfahrung zu gewährleisten.

Im Folgenden finden Sie neue Elemente und Attribute:

Die folgenden Elemente und Attribute haben sich geändert:

Die folgenden Elemente und Attribute wurden entfernt:

propertyDescription

searchInfo

labelInfo

Typeinfo

displayInfo

Stringformat

booleanFormat

Numberformat

dateTimeFormat

enumeratedList

drawControl

editControl

Filtercontrol

queryControl

image