1.6 Versioning and Localization

This document covers versioning issues in the following areas:

  • Structure Versions: The PropertySetStream packet supports two versions: version 0 and version 1. Version 0 does not support some of the property types in the PropertyType enumeration and does not support the special Behavior property. These versions are defined in section 2.

  • Localization: The encoding of strings in the CodePageString and PropertyIdentifier packets is dependent on a property set's CodePage property. Property sets optionally have an informational Locale property to identify the language for strings in the property set. Localization-dependent structure content is specified in section 2.

This document specifies two versions for property sets: version 0 and version 1. Version 1 supports additional property types and a special Behavior property. The granularity for versioning is the PropertyIdentifier packet, which usually contains a single property set. Therefore, in general, it is possible for a file to contain both version 0 and version 1 property sets.

For maximum interoperability, it is recommended that implementations write property sets as version 0 unless they make use of features only supported in version 1.