Stockage et Stream Objects 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 lorsque le jeu de propriétés est créé. La valeur d’énumération PROPSETFLAG_NONSIMPLE, passée dans le paramètre grfFlags à la méthode IPropertySetStorage::Create , indique cela. Le paramètre où le jeu de propriétés est stocké fournit des contrôles d’application appropriés pour 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 les valeurs de propriété non simples peuvent être écrites dans celui-ci. 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 les valeurs simples peuvent être écrites dans le jeu de propriétés.
Dans l’objet de stockage d’un jeu de propriétés non simple, un flux est créé sous le nom Contenu. 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 principal 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 de contenu. Le nom des flux et des 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.