Partager via


Identificateurs de propriété réservés

Les identificateurs de propriété réservés 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 toute valeur supérieure ou égale à 0x80000000. Ces valeurs d’identificateur de propriété sont réservées pour une utilisation par les applications.

Le tableau suivant répertorie les ID de propriété réservées et la description de ce que 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 complets property set facultatif. Cela permet aux utilisateurs de définir la 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 codes (Windows) ou 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 codes. 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 codes correspond à une page de codes 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 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 l’événement 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 du jeu de propriétés. Cette valeur d’ID de propriété est un VT_UI4 et commence par un type de données d'DWORD contenant la valeur VT_UI4 suivie d’un DWORD indiquant le comportement du jeu de propriétés.
Actuellement, le seul bit de cette valeur définie est le bit de faible ordre (0x1). Si ce bit est défini, il 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 non sensibles à la casse.
0xFFFFFFFF Réservé à 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 le jeu de bits élevé (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 avec des valeurs d’ID dans la plage 0x80000000 à 0xBFFFFFFF sont considérées comme en lecture seule par les 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 permettre à cette propriété d’être lue, mais pas écrite ou supprimée. Une telle implémentation doit permettre à une propriété de la plage 0xC0000000 de 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.

Paramètres régionaux de l’ensemble de propriétés

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 permettent aux utilisateurs de spécifier des paramètres régionaux de travail. Ces applications doivent écrire l’identificateur de paramètres régionaux spécifié 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.

Note

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 celui où les paramètres régionaux ne sont pas les paramètres régionaux de l’application, les paramètres régionaux de l’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 codes

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 codes et effectuer l’une des actions suivantes :

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

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 codes ; Toutefois, si l’indicateur de page de codes n’est pas présent, la page de codes en vigueur sur l’ordinateur du lecteur doit être supposée.

Note

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

Les valeurs possibles pour la page de codes sont fournies 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 pays.) Par exemple, la page de codes US ANSI est représentée par 0x04E4 (1252 en décimal), tandis que la page de codes pour Unicode est 0x04B0 (1200 en décimale).

Il est recommandé d’utiliser la page de codes Unicode lorsque cela est possible et d’utiliser VT_LPWSTR au lieu de VT_LPSTR pour éviter les <multioctets -> conversions Unicode pendant le stockage et la récupération. L’utilisation de la même page de codes pour tous les ensembles de propriétés est la seule façon d’obtenir des ensembles de propriétés interopérables à l’échelle mondiale. Dans la page de codes Unicode ou non Unicode, n’oubliez pas que le nombre au début d’une VT_LPSTR ou d’un VT_BSTR est un nombre d’octets et non un nombre de caractères . Ce nombre d’octets inclut l’un ou deux octets zéro à la fin de la chaîne (le NULL terminateur 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 suivie d’un SHORT qui indique la page de codes.