Bezeichner für reservierte Eigenschaften

Reservierte Eigenschaftsbezeichner 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 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 aufgeführt, wofür die Eigenschafts-ID reserviert ist.

Id der reservierten Eigenschaft BESCHREIBUNG
0 Reserviert zum Erstellen eines optionalen Eigenschaftensatzanzeigenamenwörterbuchs. Dadurch können Eigenschaftensatzbenutzer über die vom Typindikator bereitgestellten Eigenschaften hinaus Bedeutung anfügen.
1 Reserviert als Indikator der Codepage (Windows) oder des Skripts (Macintosh), das 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 Codepageindikator einer Windows-Codepage oder einem Macintosh-Skript entspricht.
0x80000000 Reserviert als Angabe des Gebietsschemas, für das der Eigenschaftssatz geschrieben wird.
Das Standardgebietsschema für einen Eigenschaftensatz ist das Standardgebietsschema des Systems (LOCALE_SYSTEM_DEFAULT). Weitere Informationen zu LOCALE_SYSTEM_DEFAULT finden Sie unter Win32-APIs. Die Standardeinstellung wird verwendet, wenn der Gebietsschemaindikator im Eigenschaftensatz nicht vorhanden ist.
0x80000003 Reserviert als Indikator für Eigenschaftensatzverhalten. Dieser Eigenschafts-ID-Wert ist ein VT_UI4 und beginnt mit einem DWORD-Datentyp , der den Wert VT_UI4 gefolgt von einem DWORD-Wert enthält, der das Verhalten des Eigenschaftensatzes angibt.
Derzeit ist das einzige Bit in diesem Wert, das definiert ist, das Bit mit niedriger Reihenfolge (0x1). Wenn dieses Bit festgelegt ist, gibt dies an, dass bei Eigenschaftensatznamen, die durch eigenschafts-ID 0 angegeben werden, die Groß-/Kleinschreibung beachtet werden sollte. Wenn dieses Bit nicht festgelegt ist oder die Verhaltenseigenschaft (ID 0x80000003) nicht vorhanden ist, sollte bei den Namen die Groß-/Kleinschreibung nicht beachtet werden.
0xFFFFFFFF Reserviert, um die Programmierbarkeit zu vereinfachen. Sie sollte niemals in einem serialisierten Eigenschaftensatz angezeigt werden.

Eigenschaftenbezeichner 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 von Implementierungen, die ihre Bedeutung nicht verstehen, als schreibgeschützt betrachtet. Wenn eine Implementierung z. B. die Bedeutung der Eigenschaft 0x80000000 nicht versteht, sollte diese Eigenschaft gelesen, aber nicht geschrieben oder gelöscht werden. Eine solche Implementierung sollte es einer Eigenschaft im Bereich 0xC0000000 0xFFFFFFFE ermöglichen, gelesen, geschrieben oder gelöscht zu werden. Die Eigenschafts-ID 0xFFFFFFFF ist ein reservierter Wert und sollte niemals 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 erlauben, ein funktionierendes Gebietsschema anzugeben. Solche Anwendungen sollten den vom Benutzer angegebenen Gebietsschemabezeichner in die -Eigenschaft schreiben. Anwendungen, die das Standardgebietsschema des Benutzers (LOCALE_USER_DEFAULT) verwenden, sollten den Standardgebietsschemabezeichner des Benutzers in die -Eigenschaft schreiben. Weitere Informationen zu LOCALE_USER_DEFAULT finden Sie in der Win32-API.

Hinweis

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 fremden Objekts behandeln, bei dem das Gebietsschema nicht das Anwendungsgebietsschema, das Benutzergebietsschema oder das Systemgebietsschema ist.

Die Eigenschaft des Gebietsschemaindikators ist vom Typ VT_U14 und besteht daher aus einem DWORD , das VT_U14 enthält, gefolgt von einem DWORD , das den Gebietsschemabezeichner (LCID) enthält, wie in der Win32-API definiert.

Codepage-Indikator

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

  • Schreiben Sie die Zeichenfolge in dem format, das vom Codepageindikator angegeben wird.
  • Ersetzen Und umschreiben, um die Codepage zu ändern.

Wenn eine Anwendung diesen Indikator nicht erkennen kann, sollte sie die -Eigenschaft nicht ändern. Alle Ersteller von Eigenschaftensätzen müssen einen Codepageindikator schreiben. Wenn der Codepageindikator jedoch nicht vorhanden ist, muss von der vorherrschenden Codepage auf dem Computer des Lesers ausgegangen werden.

Hinweis

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

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

Es wird empfohlen, die Unicode-Codepage nach Möglichkeit zu verwenden und VT_LPWSTR anstelle von VT_LPSTR zu verwenden, um Multibyte <> -Unicode-Konvertierungen während des Speicherns und Abrufens zu vermeiden. Die Verwendung derselben Codepage für alle Eigenschaftensätze ist die einzige Möglichkeit, um weltweit interoperable Eigenschaftssätze zu erreichen. Beachten Sie in der Unicode- oder Nicht-Unicode-Codepage, dass die Anzahl am Anfang einer VT_LPSTR oder VT_BSTR eine Byteanzahl und keine Zeichenanzahl ist. Diese Byteanzahl enthält ein oder zwei Nullbytes am Ende der Zeichenfolge (der NULL-Abschluss der Zeichenfolge).

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