Gestion des jeux de propriétés
Un jeu de propriétés persistant contient des données associées en tant que propriétés. Chaque jeu de propriétés est identifié avec un FMTID et un identificateur global unique (GUID) qui permet aux applications, accédant au jeu de propriétés, d’identifier le jeu de propriétés. Par le biais de cette identification, l’application interprète les propriétés que contient l’ensemble.
Par exemple, les propriétés de mise en forme des caractères dans un traitement de texte ou les attributs de rendu d’un élément dans un programme de dessin sont des jeux de propriétés.
COM définit l’interface IPropertySetStorage pour faciliter la gestion des jeux de propriétés. Grâce aux méthodes de cette interface, vous pouvez créer un jeu de propriétés ou ouvrir ou supprimer un jeu de propriétés existant. En outre, il fournit une méthode qui crée un énumérateur et fournit un pointeur vers son interface IEnumSTATPROPSETSTG . Vous pouvez appeler les méthodes de cette interface pour énumérer les structures STATPROPSETSTG sur votre objet, ce qui fournira des informations sur tous les jeux de propriétés sur l’objet.
Lorsque vous créez ou ouvrez un instance d’IPropertyStorage, cela ressemble à l’ouverture d’un objet qui prend en charge IStorage ou IStream, car vous devez spécifier le mode de stockage dans lequel vous ouvrez l’interface. Pour IStorage, ceux-ci incluent le mode transaction, le mode lecture/écriture et le mode partage.
Lorsque vous créez un jeu de propriétés avec un appel à IPropertySetStorage::Create, spécifiez si le jeu de propriétés doit être simple ou non simple. Un jeu de propriétés simple contient des types qui peuvent être écrits entièrement dans le flux de jeu de propriétés, qui est destiné à être limité en taille et ne peut pas dépasser 256 Ko dans Windows NT 4.0 et versions antérieures, ou 1 Mo dans Windows 2000, Windows XP et Windows Server 2003. Toutefois, lorsque vous devez stocker une plus grande quantité d’informations dans le jeu de propriétés, vous pouvez spécifier que le jeu de propriétés n’est pas simple. Cela vous permet d’utiliser un ou plusieurs des types qui spécifient uniquement un pointeur vers un objet de stockage ou de flux. Ces types sont VT_STREAM, VT_STREAMED OBJECT, VT_STORAGE et VT_STORED_OBJECT.
Les données stockées dans ces propriétés ne sont pas comptabilisées dans la limite de taille du jeu de propriétés de 256 Ko dans Windows NT 4.0 ou version antérieure, ni dans la limite de 1 Mo dans Windows 2000, Windows XP et Windows Server 2003. Toutefois, les données relatives à la propriété, telles que son nom, s’appliquent. En outre, si vous avez besoin d’une mise à jour traitée, l’ensemble de propriétés doit être non simple. Il existe bien sûr une certaine pénalité de performances pour l’ouverture de ces types, car cela nécessite l’ouverture du flux ou de l’objet de stockage vers lequel vous avez le pointeur.
Si votre application utilise des fichiers composés, vous pouvez utiliser l’implémentation fournie par COM de ces interfaces, qui sont implémentées sur l’objet de stockage de fichiers composés COM.
Chaque jeu de propriétés se compose principalement d’un groupe de propriétés connecté logiquement, comme décrit dans Gestion des propriétés.
Pour plus d’informations sur les jeux de propriétés dans COM, consultez :
- Implémentations des ensembles de propriétés dans COM
- Considérations relatives au jeu de propriétés
- Considérations relatives à l’implémentation D’IPropertySetStorage
- Stockage de jeux de propriétés
- Caractéristiques de performances
- Implémentation du jeu de propriétés d’informations récapitulatives