Freigeben über


Reservierte Eigenschaftenbezeichner

Reservierte Eigenschaftenbezeichner können nicht als Eigenschaftsbezeichner (ID) verwendet werden. Jeder Eigenschaftsbezeichner (ID) kann mit Ausnahme von 0, 1 und jedem Wert verwendet werden, der größer als oder gleich 0x80000000 ist. Diese Eigenschaftsbezeichnerwerte sind für die Verwendung durch Anwendungen reserviert.

In der folgenden Tabelle sind die reservierten Eigenschaften-IDs und die Beschreibung der reservierten Eigenschafts-ID aufgeführt.

Reservierte Eigenschafts-ID Beschreibung
0 Reserviert für das Erstellen eines optionalen Eigenschaftensatz-Anzeigenamenwörterbuchs. Auf diese Weise können Die Benutzer, die über die vom Typindikator bereitgestellten Eigenschaften verfügen, Eine Bedeutung an Eigenschaften anfügen.
1 Reserviert als Indikator für die Codepage (Windows) oder Skript (Macintosh), die beim Interpretieren der Zeichenfolgen im Eigenschaftensatz verwendet werden soll.
Alle Zeichenfolgenwerte im Eigenschaftensatz müssen mit derselben Codepage gespeichert werden. Der ursprüngliche Betriebssystemwert im Eigenschaftensatzheader (PROPERTYSETHEADER::d wOSVer) bestimmt, ob der Codeseitenindikator einer Windows-Codeseite oder einem Macintosh-Skript entspricht.
0x80000000 Reserviert als Hinweis auf das Gebietsschema, für das der Eigenschaftensatz geschrieben wird.
Das Standardgebietsschema für einen Eigenschaftensatz ist das Systemstandardgebietsschema (LOCALE_SYSTEM_DEFAULT). Weitere Informationen zu LOCALE_SYSTEM_DEFAULT finden Sie in den Win32-APIs. The default is used in the event that the locale indicator does not exist in the property set.
0x80000003 Reserviert als Indikator für Eigenschaftensatzverhalten. Dieser Eigenschafts-ID-Wert ist ein VT_UI4 und beginnt mit einem DWORD- Datentyp, der den Wert enthält, VT_UI4 gefolgt von einer DWORD-, die das Verhalten des Eigenschaftensatzes angibt.
Derzeit ist das einzige Bit in diesem Wert, der definiert ist, das Bit mit niedriger Reihenfolge (0x1). Wenn dieses Bit festgelegt ist, gibt es an, dass Eigenschaftensatznamen, die durch Eigenschafts-ID 0 angegeben sind, als Groß-/Kleinschreibung beachtet werden sollten. Wenn dieses Bit nicht festgelegt ist oder die Verhaltenseigenschaft (ID 0x80000003) nicht vorhanden ist, sollten die Namen als nicht beachtet werden.
0xFFFFFFFF Reserviert für den Komfort der Programmierbarkeit. Sie sollte nie in einem serialisierten Eigenschaftensatz angezeigt werden.

Eigenschaftsbezeichner mit dem hohen Bitsatz (d. h. negativen Werten) sind für die zukünftige Verwendung durch Microsoft reserviert.

Von den reservierten Eigenschaften werden diejenigen mit ID-Werten im Bereich 0x80000000 bis 0xBFFFFFFF durch Implementierungen, die ihre Bedeutung nicht verstehen, als schreibgeschützt betrachtet. Wenn eine Implementierung beispielsweise die Bedeutung von Eigenschaft 0x80000000 nicht versteht, sollte sie zulassen, dass diese Eigenschaft gelesen, aber nicht geschrieben oder gelöscht wird. Eine solche Implementierung sollte zulassen, dass eine Eigenschaft im Bereich 0xC0000000 0xFFFFFFFE gelesen, geschrieben oder gelöscht werden kann. Die Eigenschafts-ID 0xFFFFFFFF ist ein reservierter Wert und sollte nie in einem serialisierten Eigenschaftensatz angezeigt werden.

Eigenschaftssatzgebietsschema

Anwendungen können entweder das Gebietsschema unterstützen oder das Standardverhalten verwenden. Es wird empfohlen, dass Anwendungen Benutzern das Angeben eines funktionierenden Gebietsschemas ermöglichen. Solche Anwendungen sollten den vom Benutzer angegebenen Gebietsschemabezeichner in die Eigenschaft schreiben. Anwendungen, die das Standardgebietsschema (LOCALE_USER_DEFAULT) des Benutzers verwenden, sollten den Standardgebietsschemabezeichner des Benutzers in die Eigenschaft schreiben. Weitere Informationen zu LOCALE_USER_DEFAULT finden Sie in der Win32-API.

Anmerkung

Wenn die IPropertySetStorage Schnittstelle verwendet wird, um einen Eigenschaftensatz zu erstellen, wird das Standardgebietsschema des Benutzers automatisch als Gebietsschemaindikator geschrieben.

Anwendungen sollten auch den Fall eines fremdobjekts behandeln, bei dem das Gebietsschema nicht das Anwendungsgebietsschema, das Gebietsschema des Benutzers oder das Systemgebietsschema ist.

Die Gebietsschemaindikatoreigenschaft ist vom Typ VT_U14 und besteht daher aus einem DWORD-, das VT_U14 enthält, gefolgt von einer DWORD- mit dem Gebietsschemabezeichner (Locale Identifier, LCID), wie in der Win32-API definiert.

Codepageindikator

Wenn eine Anwendung, die nicht der Autor eines Eigenschaftensatzes ist, eine Eigenschaft vom Typ Zeichenfolge im Satz ändert, sollte sie den Codeseitenindikator untersuchen und eine der folgenden Aktionen ausführen:

  • Schreiben Sie die Zeichenfolge in das format, das durch den Codeseitenindikator angegeben wird.
  • Ersetzen Sie die Codeseite, und schreiben Sie sie neu, um die Codeseite zu ändern.

Wenn eine Anwendung diesen Indikator nicht erkennen kann, sollte sie die Eigenschaft nicht ändern. Alle Ersteller von Eigenschaftensätzen müssen einen Codeseitenindikator schreiben; Wenn der Codeseitenindikator jedoch nicht vorhanden ist, muss die vorherrschende Codeseite auf dem Computer des Lesers angenommen werden.

Anmerkung

Wenn die IPropertySetStorage Schnittstelle verwendet wird, um einen Eigenschaftensatz zu erstellen, wird der Codeseitenindikator automatisch geschrieben.

Mögliche Werte für die Codeseite werden in der Win32-API angegeben (weitere Informationen finden Sie in der GetACP--Funktion) und Inside Macintosh Volume VI, Seiten 14-111. (Diese Ressourcen sind in einigen Sprachen und Ländern möglicherweise nicht verfügbar.) Beispielsweise wird die Codepage US ANSI durch 0x04E4 (1252 in dezimal) dargestellt, während die Codepage für Unicode 0x04B0 ist (1200 in dezimal).

Es wird empfohlen, die Unicode-Codeseite nach Möglichkeit zu verwenden und VT_LPWSTR anstelle von VT_LPSTR zu verwenden, um Multibyte-<zu vermeiden –> Unicode-Konvertierungen während des Speichers und Abrufs. Die Verwendung derselben Codeseite für alle Eigenschaftensätze ist die einzige Möglichkeit, interoperable Eigenschaftensätze weltweit zu erreichen. Beachten Sie auf der Unicode- oder Nicht-Unicode-Codeseite, dass die Anzahl am Anfang eines VT_LPSTR oder VT_BSTR eine Byte anzahl und kein Zeichen Anzahl ist. Diese Byteanzahl enthält die ein- oder zwei Byte am Ende der Zeichenfolge (der NULL Endator der Zeichenfolge).

Eigenschafts-ID 1 ist ein VT_I2 Typ und beginnt mit einem DWORD-, das den Wert VT_I2 gefolgt von einer SHORT- enthält, die die Codeseite angibt.