Objets de stockage et de flux pour un jeu de propriétés

Le programmeur spécifie si un jeu de propriétés est stocké dans un stockage ou un flux lors de la création du jeu de propriétés. La valeur d’énumération PROPSETFLAG_NONSIMPLE, passée dans le paramètre grfFlags à la méthode IPropertySetStorage::Create , l’indique. La définition de l’emplacement de stockage du jeu de propriétés permet aux contrôles d’application appropriés d’interagir entièrement via l’interface IPropertySetStorage avec le jeu de propriétés COM.

Si l’indicateur PROPSETFLAG_NONSIMPLE est défini, le jeu de propriétés est stocké dans un objet de stockage et des valeurs de propriété non simples peuvent y être écrites. Les valeurs non simples incluent des valeurs avec un VARTYPE de VT_STORAGE, VT_STREAM, VT_STORED_OBJECT ou VT_STREAMED_OBJECT. Pour plus d’informations sur les valeurs VARTYPE et leur utilisation, consultez la structure PROPVARIANT .

Si l’indicateur PROPSETFLAG_NONSIMPLE n’est pas défini, seules des valeurs simples peuvent être écrites dans le jeu de propriétés.

Dans l’objet de stockage d’un ensemble de propriétés non simples, un flux est créé nommé Contents. Il s’agit du flux principal du jeu de propriétés et contient toutes les valeurs de propriété simples. Les valeurs de propriété non simples (flux et stockages) sont stockées sous l’objet de stockage main de la propriété définie en tant que sous-flux et stockages. Autrement dit, ces valeurs non simples sont stockées en tant que frères dans le flux Contenu. Le nom des flux et stockages frères est déterminé par l’implémentation et stocké dans le flux De contenu similaire à la façon dont une propriété de chaîne simple est stockée.