Identificateurs de propriétés réservées

Les identificateurs de propriétés réservées ne peuvent pas être utilisés comme identificateurs de propriété (ID). N’importe quel identificateur de propriété (ID) peut être utilisé à l’exception de 0, 1 et de toute valeur supérieure ou égale à 0x80000000. Ces valeurs d’identificateur de propriété sont réservées à l’utilisation par les applications.

Le tableau suivant répertorie les ID de propriété réservés et la description de ce pour quoi l’ID de propriété est réservé.

ID de propriété réservée Description
0 Réservé à la création d’un dictionnaire de noms d’affichage de l’ensemble de propriétés facultatif. Cela permet aux utilisateurs du jeu de propriétés d’attacher une signification aux propriétés, au-delà de celles fournies par l’indicateur de type.
1 Réservé en tant qu’indicateur de la page de code (Windows) ou du script (Macintosh) à utiliser lors de l’interprétation des chaînes dans le jeu de propriétés.
Toutes les valeurs de chaîne du jeu de propriétés doivent être stockées avec la même page de code. La valeur du système d’exploitation d’origine dans l’en-tête du jeu de propriétés (PROPERTYSETHEADER::d wOSVer) détermine si l’indicateur de page de code correspond à une page de code Windows ou à un script Macintosh.
0x80000000 Réservé comme indication des paramètres régionaux pour lesquels le jeu de propriétés est écrit.
Les paramètres régionaux par défaut d’un jeu de propriétés sont les paramètres régionaux par défaut du système (LOCALE_SYSTEM_DEFAULT). Pour plus d’informations sur LOCALE_SYSTEM_DEFAULT, consultez les API Win32. La valeur par défaut est utilisée dans le cas où l’indicateur de paramètres régionaux n’existe pas dans le jeu de propriétés.
0x80000003 Réservé en tant qu’indicateur des comportements des ensembles de propriétés. Cette valeur d’ID de propriété est une VT_UI4 et commence par un type de données DWORD contenant la valeur VT_UI4 suivi d’un DWORD indiquant le comportement du jeu de propriétés.
Actuellement, le seul bit de cette valeur qui est défini est le bit d’ordre faible (0x1). Si ce bit est défini, cela indique que les noms des ensembles de propriétés, indiqués par l’ID de propriété 0, doivent être considérés comme respectant la casse. Si ce bit n’est pas défini ou si la propriété de comportement (ID 0x80000003) n’existe pas, les noms doivent être considérés comme ne respectant pas la casse.
0xFFFFFFFF Réservé pour la commodité de la programmabilité. Il ne doit jamais apparaître dans un jeu de propriétés sérialisées.

Les identificateurs de propriété avec l’ensemble de bits élevés (c’est-à-dire les valeurs négatives) sont réservés à une utilisation ultérieure par Microsoft.

Parmi les propriétés réservées, celles qui ont des valeurs d’ID dans la plage 0x80000000 à 0xBFFFFFFF sont considérées comme en lecture seule par des implémentations qui ne comprennent pas leur signification. Par exemple, si une implémentation ne comprend pas la signification de la propriété 0x80000000, elle doit autoriser cette propriété à être lue, mais pas écrite ou supprimée. Une telle implémentation doit permettre à une propriété de la plage 0xC0000000 d'0xFFFFFFFE d’être lue, écrite ou supprimée. L’ID de propriété 0xFFFFFFFF est une valeur réservée et ne doit jamais apparaître dans un jeu de propriétés sérialisées.

Propriété Définir les paramètres régionaux

Les applications peuvent choisir de prendre en charge les paramètres régionaux ou d’utiliser le comportement par défaut. Il est recommandé que les applications autorisent les utilisateurs à spécifier des paramètres régionaux de travail. Ces applications doivent écrire l’identificateur de paramètres régionaux spécifiés par l’utilisateur dans la propriété . Les applications qui utilisent les paramètres régionaux par défaut de l’utilisateur (LOCALE_USER_DEFAULT) doivent écrire l’identificateur de paramètres régionaux par défaut de l’utilisateur dans la propriété . Pour plus d’informations sur LOCALE_USER_DEFAULT, consultez l’API Win32.

Notes

Si l’interface IPropertySetStorage est utilisée pour créer un jeu de propriétés, les paramètres régionaux par défaut de l’utilisateur sont automatiquement écrits en tant qu’indicateur de paramètres régionaux.

Les applications doivent également gérer le cas d’un objet étranger, qui est un objet où les paramètres régionaux ne sont pas les paramètres régionaux de l’application, les paramètres régionaux utilisateur ou les paramètres régionaux système.

La propriété d’indicateur de paramètres régionaux est de type VT_U14 et se compose donc d’un DWORD qui contient VT_U14, suivi d’un DWORD contenant l’identificateur de paramètres régionaux (LCID), tel que défini dans l’API Win32.

Indicateur de page de code

Lorsqu’une application qui n’est pas l’auteur d’un jeu de propriétés modifie une propriété de type chaîne dans l’ensemble, elle doit examiner l’indicateur de page de code et effectuer l’une des actions suivantes :

  • Écrivez la chaîne au format spécifié par l’indicateur de page de code.
  • Remplacez et réécrire pour modifier la page de code.

Si une application ne peut pas reconnaître cet indicateur, elle ne doit pas modifier la propriété. Tous les créateurs de jeux de propriétés doivent écrire un indicateur de page de code ; Toutefois, si l’indicateur de page de code n’est pas présent, la page de code prédominante sur l’ordinateur du lecteur doit être supposée.

Notes

Si l’interface IPropertySetStorage est utilisée pour créer un jeu de propriétés, l’indicateur de page de code est automatiquement écrit.

Les valeurs possibles pour la page de code sont indiquées dans l’API Win32 (pour plus d’informations, consultez la fonction GetACP ) et Inside Macintosh Volume VI, pages 14-111. (Ces ressources peuvent ne pas être disponibles dans certaines langues et certains pays.) Par exemple, la page de code US ANSI est représentée par 0x04E4 (1252 en décimal), tandis que la page de code pour Unicode est 0x04B0 (1200 en décimal).

Il est recommandé d’utiliser la page de code Unicode lorsque cela est possible et d’utiliser VT_LPWSTR au lieu de VT_LPSTR pour éviter les conversions multioctets <-> Unicode pendant le stockage et la récupération. L’utilisation de la même page de code pour tous les jeux de propriétés est la seule façon d’obtenir des jeux de propriétés interopérables dans le monde entier. Dans la page de code Unicode ou non Unicode, n’oubliez pas que le nombre au début d’un VT_LPSTR ou d’un VT_BSTR est un nombre d’octets et non un nombre de caractères . Ce nombre d’octets inclut un ou deux octets zéro à la fin de la chaîne (la terminaison NULL de la chaîne).

L’ID de propriété 1 est un type VT_I2 et commence par un DWORD qui contient la valeur VT_I2 suivi d’un SHORT qui indique la page de code.