implémentation de fichier IPropertySetStorage-Compound
L’implémentation de l’objet de stockage de fichiers composés COM inclut une implémentation d’IPropertyStorage, l’interface qui gère un jeu de propriétés persistant unique, et IPropertySetStorage, l’interface qui gère les groupes de jeux de propriétés persistants.
Pour obtenir un pointeur vers l’implémentation de fichier composé d’IPropertySetStorage, spécifiez le nom défini par l’en-tête pour l’identificateur IID_IStorage comme paramètre riid , ou utilisez les fonctions StgCreateStorageEx ou StgOpenStorageEx . Dans les deux cas, spécifiez STGFMT_STORAGE comme paramètre stgfmt . (STGFMT_ANY pouvez également être spécifiés dans le cas de StgOpenStorageEx.) Spécifiez également le nom défini par l’en-tête pour l’identificateur d’interface (IID) IID_IPropertySetStorage comme paramètre riid . Les deux fonctions fournissent un pointeur vers l’interface IPropertySetStorage de l’objet .
Une autre façon d’obtenir un pointeur vers l’implémentation de fichier composé consiste à spécifier le nom défini par l’en-tête pour l’identificateur IID_IStorage comme paramètre riid , ou à utiliser les fonctions StgCreateDocfile ou StgOpenStorage . Cela fournit un pointeur vers l’interface IStorage de l’objet . Lorsque vous souhaitez traiter des jeux de propriétés persistants, appelez IStorage::QueryInterface pour l’interface IPropertySetStorage .
Quand utiliser IPropertySetStorage
Appelez les méthodes de IPropertySetStorage pour créer, ouvrir ou supprimer des jeux de propriétés dans le stockage actuel de l’ensemble de propriétés de fichier composé. Il existe également une méthode, IPropertySetStorage::Enum, qui fournit un pointeur vers un énumérateur qui peut être utilisé pour énumérer les jeux de propriétés dans le stockage.
Méthodes
Crée un nouveau jeu de propriétés dans le stockage de fichiers composés actuel et, au retour, fournit un pointeur d’interface vers l’implémentation du fichier composé IPropertyStorage . Dans cette implémentation, les jeux de propriétés ne peuvent être traités que si PROPSETFLAG_NONSIMPLE est spécifié. Cette méthode nécessite que le mode de partage spécifié dans le paramètre grfMode soit STGM_SHARE_EXCLUSIVE et que le mode d’accès soit STGM_READ ou STGM_READWRITE (STGM_WRITE mode n’est pas pris en charge).
Ouvre un jeu de propriétés existant dans le stockage de propriétés actuel. Au retour, il fournit un pointeur d’interface vers l’implémentation de fichier composé d’IPropertyStorage. Cette méthode nécessite que le mode de partage spécifié dans le paramètre grfMode soit STGM_SHARE_EXCLUSIVE et que le mode d’accès soit STGM_READ ou STGM_READWRITE (STGM_WRITE n’est pas pris en charge).
Supprime un ensemble de propriétés dans ce stockage de propriétés.
Crée un objet utilisé pour énumérer les structures STATPROPSETSTG . Chaque structure STATPROPSETSTG fournit des données sur un jeu de propriétés unique.
Notes
À compter de Windows 2000, l’implémentation de fichiers composés d’IPropertySetStorage prend en charge le mode simple. Le mode simple est indiqué en spécifiant l’indicateur STGM_SIMPLE pour les fonctions StgCreateStorageEx et StgOpenStorageEx . Si le fichier composé est ouvert en mode simple, l’implémentation IPropertySetStorage associée est limitée comme suit :
- Seuls les ensembles de propriétés simples peuvent être créés. Autrement dit, la spécification de la valeur PROPSETFLAG_NONSIMPLE dans le paramètre grfFlags pour la méthode IPropertySetStorage::Create génère une erreur.
- Après avoir créé un fichier composé avec StgCreateStorageEx à l’aide de STGM_SIMPLE et d’une requête pour l’interface IPropertySetStorage , vous ne pouvez appeler IPropertySetStorage::Create qu’une seule fois. Vous devez ensuite libérer l’interface IPropertyStorage avant d’appeler à nouveau la méthode Create . Pour plus d’informations sur le mode simple, consultez Constantes STGM.
- Vous ne pouvez pas utiliser la méthode IPropertySetStorage::Open pour ouvrir un jeu de propriétés après avoir utilisé StgCreateStorageEx pour créer l’objet de stockage. Au lieu de cela, vous devez utiliser StgOpenStorageEx avant d’interroger IPropertySetStorage et d’appeler la méthode Open .
- Après avoir ouvert un fichier composé avec StgOpenStorageEx à l’aide de l’indicateur et de la requête STGM_SIMPLE pour l’interface IPropertySetStorage , vous pouvez ouvrir un jeu de propriétés à la fois à l’aide de IPropertySetStorage::Open. En outre, il n’est peut-être pas possible d’augmenter la taille totale du jeu de propriétés lorsque le jeu de propriétés est ouvert.
Les jeux de propriétés simples ne peuvent pas être traités. Vous ne pouvez pas spécifier STGM_TRANSACTED dans le paramètre grfmode des méthodes Create et Open , sauf si vous spécifiez également PROPSETFLAG_NONSIMPLE dans le paramètre grfFlags . N’oubliez pas que les jeux de propriétés simples et non simples ne sont pas liés aux jeux de propriétés en mode simple décrits ci-dessus. Pour plus d’informations sur les ensembles de propriétés simples et non simples, consultez Storage and Stream Objects for a Property Set.
Notes
Les jeux de propriétés DocumentSummaryInformation et UserDefined sont uniques en ce qu’ils peuvent avoir deux sections de jeu de propriétés. Pour plus d’informations, consultez Les ensembles de propriétés DocumentSummaryInformation et UserDefined.
Rubriques connexes