Udostępnij przez


Identyfikatory właściwości zarezerwowanych

Identyfikatory właściwości zarezerwowanych nie mogą być używane jako identyfikatory właściwości (ID). Dowolnego identyfikatora właściwości (ID) można użyć z wyjątkiem 0, 1 i dowolnej wartości większej lub równej 0x80000000. Te wartości identyfikatora właściwości są zarezerwowane do użytku przez aplikacje.

W poniższej tabeli wymieniono identyfikatory właściwości zarezerwowanych i opis tego, dla czego jest zarezerwowany identyfikator właściwości.

Identyfikator właściwości zarezerwowanej Opis
0 Zarezerwowane do utworzenia opcjonalnego słownika nazwy wyświetlanej zestawu właściwości . Dzięki temu użytkownicy mogą dołączać znaczenie do właściwości, poza tymi dostarczonymi przez wskaźnik typu.
1 Zarezerwowane jako wskaźnik strony kodowej (Windows) lub Skrypt (Macintosh) do użycia podczas interpretowania ciągów w zestawie właściwości.
Wszystkie wartości ciągów w zestawie właściwości muszą być przechowywane z tą samą stroną kodową. Źródłowa wartość systemu operacyjnego w nagłówku zestawu właściwości (PROPERTYSETHEADER::d wOSVer) określa, czy wskaźnik strony kodowej odpowiada stronie kodowej systemu Windows lub skryptowi macintosha.
0x80000000 Zarezerwowane jako wskazanie ustawień regionalnych, dla których jest zapisywany zestaw właściwości.
Domyślne ustawienia regionalne dla zestawu właściwości to domyślne ustawienia regionalne systemu (LOCALE_SYSTEM_DEFAULT). Aby uzyskać więcej informacji na temat LOCALE_SYSTEM_DEFAULT, zobacz interfejsy API Win32. Wartość domyślna jest używana w przypadku, gdy wskaźnik ustawień regionalnych nie istnieje w zestawie właściwości.
0x80000003 Zarezerwowane jako wskaźnik zachowań zestawu właściwości. Ta wartość identyfikatora właściwości jest VT_UI4 i rozpoczyna się od DWORD typu danych zawierającego VT_UI4 wartości, a następnie DWORD wskazujące zachowanie zestawu właściwości.
Obecnie jedynym bitem w tej zdefiniowanej wartości jest bit o niskiej kolejności (0x1). Jeśli ten bit jest ustawiony, wskazuje, że nazwy zestawu właściwości, wskazywane przez identyfikator właściwości 0, powinny być traktowane jako uwzględniane wielkość liter. Jeśli ten bit nie jest ustawiony lub właściwość zachowania (identyfikator 0x80000003) nie istnieje, nazwy powinny być traktowane jako niewrażliwe na wielkość liter.
0xFFFFFFFF Zarezerwowane dla wygody programowej. Nigdy nie powinna być wyświetlana w zestawie właściwości serializowanych.

Identyfikatory właściwości z zestawem o wysokim bitzie (czyli wartości ujemne) są zarezerwowane do użytku w przyszłości przez firmę Microsoft.

Z właściwości zarezerwowanych te z wartościami identyfikatorów w zakresie 0x80000000 do 0xBFFFFFFF są uznawane za tylko do odczytu przez implementacje, które nie rozumieją ich znaczenia. Jeśli na przykład implementacja nie rozumie znaczenia właściwości 0x80000000, powinna zezwalać na odczyt tej właściwości, ale nie jest zapisywana ani usuwana. Taka implementacja powinna zezwalać na odczytywanie, zapisanie lub usunięcie właściwości w zakresie 0xC0000000 0xFFFFFFFE. Identyfikator właściwości 0xFFFFFFFF jest wartością zarezerwowaną i nigdy nie powinien być wyświetlany w serializowanym zestawie właściwości.

Ustawienia regionalne zestawu właściwości

Aplikacje mogą wybrać obsługę ustawień regionalnych lub użyć domyślnego zachowania. Zaleca się, aby aplikacje zezwalały użytkownikom na określanie działających ustawień regionalnych. Takie aplikacje powinny zapisywać identyfikator ustawień regionalnych określony przez użytkownika do właściwości . Aplikacje korzystające z domyślnych ustawień regionalnych użytkownika (LOCALE_USER_DEFAULT) powinny zapisywać domyślny identyfikator ustawień regionalnych użytkownika do właściwości . Aby uzyskać więcej informacji na temat LOCALE_USER_DEFAULT, zobacz interfejs API Win32.

Nuta

Jeśli interfejs IPropertySetStorage jest używany do tworzenia zestawu właściwości, domyślne ustawienia regionalne użytkownika są automatycznie zapisywane jako wskaźnik ustawień regionalnych.

Aplikacje powinny również obsługiwać przypadek obiektu obcego, który jest taki, w którym ustawienia regionalne nie są ustawieniami regionalnymi aplikacji, ustawieniami regionalnymi użytkownika lub ustawieniami regionalnymi systemu.

Właściwość wskaźnika ustawień regionalnych jest typu VT_U14, a zatem składa się z DWORD, który zawiera VT_U14, a następnie DWORD zawierający identyfikator ustawień regionalnych (LCID), zgodnie z definicją w interfejsie API Win32.

Wskaźnik strony kodu

Gdy aplikacja, która nie jest autorem zestawu właściwości, zmienia właściwość ciągu typu w zestawie, powinna zbadać wskaźnik strony kodu i wykonać jedną z następujących akcji:

  • Zapisz ciąg w formacie określonym przez wskaźnik strony kodowej.
  • Zastąp i zapisz ponownie, aby zmienić stronę kodu.

Jeśli aplikacja nie rozpozna tego wskaźnika, nie powinna modyfikować właściwości. Wszyscy twórcy zestawów właściwości muszą napisać wskaźnik strony kodowej; jeśli jednak wskaźnik strony kodowej nie jest obecny, należy założyć dominującą stronę kodu na komputerze czytnika.

Nuta

Jeśli interfejs IPropertySetStorage jest używany do tworzenia zestawu właściwości, wskaźnik strony kodu jest automatycznie zapisywany.

Możliwe wartości strony kodowej są podane w interfejsie API Win32 (aby uzyskać więcej informacji, zobacz funkcję GetACP) i Inside Macintosh Volume VI, strony 14-111. (Te zasoby mogą nie być dostępne w niektórych językach i krajach). Na przykład strona kodowa US ANSI jest reprezentowana przez 0x04E4 (1252 w liczbach dziesiętnych), podczas gdy strona kodowa unicode jest 0x04B0 (1200 w przecinku).

Zaleca się, aby strona kodowa Unicode była używana w miarę możliwości i używać VT_LPWSTR zamiast VT_LPSTR, aby uniknąć wielobajtowych <—> konwersji Unicode podczas przechowywania i pobierania. Użycie tej samej strony kodowej dla wszystkich zestawów właściwości jest jedynym sposobem osiągnięcia współdziałania zestawów właściwości na całym świecie. Na stronie kodowej Unicode lub innej niż Unicode należy pamiętać, że liczba na początku VT_LPSTR lub VT_BSTR jest liczbą bajtów bajtów, a nie liczbą znaków . Ta liczba bajtów zawiera jeden lub dwa bajty zerowe na końcu ciągu (null terminator ciągu).

Identyfikator właściwości 1 jest typem VT_I2 i rozpoczyna się od DWORD zawierającej wartość VT_I2 a następnie SHORT wskazującą stronę kodową.