implémentation de fichier IPropertySetStorage-Compound

L’implémentation de l’objet de stockage de fichiers composé COM inclut une implémentation de IPropertyStorage, l’interface qui gère un jeu de propriétés persistant unique et IPropertySetStorage, l’interface qui gère des 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 de 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 peut également être spécifié 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 à 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 de l’identificateur IID_IStorage comme paramètre riid , ou à utiliser les fonctions StgCreateDocfile ou StgOpenStorage . Cela fournit un pointeur vers l’interface IStorage d’objet. Lorsque vous souhaitez gérer les jeux de propriétés persistants, appelez IStorage::QueryInterface pour l’interface IPropertySetStorage .

Quand utiliser IPropertySetStorage

Appelez les méthodes d’IPropertySetStorage pour créer, ouvrir ou supprimer des ensembles de propriétés dans le stockage des jeux de propriétés composés actuels. Il existe également une méthode, IPropertySetStorage::Enum, qui fournit un pointeur à un énumérateur qui peut être utilisé pour énumérer les jeux de propriétés dans le stockage.

Méthodes

IPropertySetStorage::Create

Crée un jeu de propriétés dans le stockage de fichiers composé actuel et fournit un pointeur d’interface à l’implémentation de fichier composé IPropertyStorage . Dans cette implémentation, les jeux de propriétés peuvent être traités uniquement 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 (le mode STGM_WRITE n’est pas pris en charge).

IPropertySetStorage::Open

Ouvre un jeu de propriétés existant dans le stockage de propriétés actuel. En retour, il fournit un pointeur d’interface à 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).

IPropertySetStorage::D elete

Supprime un jeu de propriétés dans ce stockage de propriétés.

IPropertySetStorage::Enum

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 fichier composé 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 entraîne 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 pouvez uniquement appeler IPropertySetStorage::Create une seule fois. Ensuite, vous devez 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 STGM_SIMPLE et de la requête de l’interface IPropertySetStorage , vous pouvez ouvrir un jeu de propriétés à la fois à l’aide d’IPropertySetStorage::Open. En outre, il peut ne pas être possible d’augmenter la taille totale de la propriété définie pendant l’ouverture de l’ensemble de propriétés.

Les ensembles 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 ensembles de propriétés simples et non simples ne sont pas liés aux ensembles 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 Stockage et Stream Objects pour un jeu de propriétés.

Notes

Les jeux de propriétés DocumentSummaryInformation et UserDefined sont uniques car ils peuvent avoir deux sections de jeux de propriétés. Pour plus d’informations, consultez Les ensembles de propriétés DocumentSummaryInformation et UserDefined.

 

IPropertyStorage - Implémentation de fichier composé

IPropertySetStorage

IPropertyStorage

IStorage::EnumElements

Constantes PROPSETFLAG

STATPROPSETSTG