Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Une autre considération dans l’implémentation de IPropertySetStorage est la façon dont les noms de propriétés Unicode sont stockés dans l’ID de propriété 0 (dictionnaire de noms de propriété), qui n’utilise pas de chaînes Unicode.
Unicode a officiellement une valeur de page de codes de 1200. Pour stocker des valeurs Unicode dans le dictionnaire du nom de propriété, utilisez une valeur de page de codes de 1200 pour l’ensemble de propriétés définie (dans l’ID de propriété 1), spécifiée par l’absence de l’indicateur PROPSETFLAG_ANSI dans IPropertySetStorage ::Create. N’oubliez pas que cela a l’effet secondaire du stockage de toutes les valeurs de chaîne dans la propriété définie dans Unicode. Dans toutes les pages de codes, le nombre trouvé au début d’un VT_LPSTR est un nombre d’octets, et non un nombre de caractères. Cela est nécessaire pour assurer la compatibilité avec les clients de version antérieure.
L’implémentation de fichier composé de IPropertySetStorage crée tous les ensembles de propriétés entièrement en Unicode (page de codes 1200) ou dans la page de codes ANSI système actuelle. Ceci est contrôlé par l’absence ou la présence de l’indicateur de PROPSETFLAG_ANSI dans le paramètre grfFlags de IPropertySetStorage ::Create.
Créez et ouvrez des jeux de propriétés en tant qu’Unicode. Pour l’implémenter, ne définissez pas l’indicateur de PROPSETFLAG_ANSI dans le paramètre grfFlags de IPropertySetStorage ::Create. Évitez d’utiliser des valeurs VT_LPSTR et utilisez plutôt des valeurs VT_LPWSTR. Lorsque la page de codes du jeu de propriétés est Unicode, VT_LPSTR valeurs de chaîne sont converties en Unicode lors du stockage, puis revenez aux valeurs de chaîne multioctets lors de la récupération.
La définition de l’indicateur PROPSETFLAG_ANSI comme indiqué par le biais d’un appel à IPropertyStorage ::Stat indique si la page de codes sous-jacente est ou non Unicode. N’oubliez pas que l’ID de propriété 1 peut être lu explicitement pour apprendre la page de codes.
Vous pouvez accéder à l’ID de propriété 1 via un appel à IPropertyStorage ::ReadMultiple. Toutefois, il est en lecture seule et peut ne pas être mis à jour avec WriteMultiple. En outre, il ne peut pas être supprimé avec DeleteMultiple.