IPropertySetStorage ::Open, méthode (propidl.h)

La méthode Open ouvre un jeu de propriétés contenu dans l’objet de stockage du jeu de propriétés.

Syntaxe

HRESULT Open(
  [in]  REFFMTID         rfmtid,
  [in]  DWORD            grfMode,
  [out] IPropertyStorage **ppprstg
);

Paramètres

[in] rfmtid

Identificateur de format (FMTID) de la propriété définie à ouvrir. Pour plus d’informations sur les FMTID connus et prédéfinis dans le Kit de développement logiciel (SDK) de plateforme, consultez Identificateurs de format de jeu de propriétés prédéfinis.

[in] grfMode

Mode d’accès dans lequel le jeu de propriétés nouvellement créé doit être ouvert. Ces indicateurs sont extraits des constantes STGM. Les indicateurs qui peuvent être utilisés et leurs significations dans le contexte de cette méthode sont décrits dans la section Remarques suivante.

[out] ppprstg

Pointeur vers la variable de pointeur IPropertyStorage qui reçoit le pointeur d’interface vers le sous-objet de stockage de propriété demandé.

Valeur retournée

Cette méthode prend en charge la valeur de retour standard E_UNEXPECTED, en plus des éléments suivants :

Remarques

Le mode dans lequel le jeu de propriétés doit être ouvert est spécifié dans le paramètre grfMode. Ces indicateurs sont extraits des constantes STGM, mais, pour cette méthode, les valeurs légales et leurs significations sont les suivantes (seules certaines combinaisons de ces valeurs d’indicateur sont légales).

Valeur Signification
STGM_DIRECT Ouvre le jeu de propriétés sans un niveau supplémentaire d’imbrication des transactions. Il s’agit de la valeur par défaut (comportement si ni STGM_DIRECT ni STGM_TRANSACTED n’est spécifié).
STGM_TRANSACTED Ouvre le jeu de propriétés avec un niveau supplémentaire d’imbrication des transactions (au-delà de la transaction, le cas échéant, sur cet objet de stockage de jeu de propriétés). Le mode traité est disponible uniquement pour les jeux de propriétés non simples. Les modifications apportées au jeu de propriétés doivent être validées avec un appel à IPropertyStorage ::Commit avant d’être visibles par la transaction sur ce stockage de jeu de propriétés.
STGM_READ Ouvre le jeu de propriétés avec accès en lecture. L’autorisation lecture est requise sur le stockage du jeu de propriétés.
STGM_WRITE Ouvre le jeu de propriétés avec accès en écriture. Toutes les implémentations d’IPropertyStorage ne prennent pas en charge ce mode.
STGM_READWRITE Ouvre le jeu de propriétés avec accès en lecture et en écriture. N’oubliez pas que cet indicateur n’est pas le binaire OR des valeurs STGM_READ et STGM_WRITE.
STGM_SHARE_DENY_NONE Les ouvertures suivantes du jeu de propriétés à partir de ce stockage de jeu de propriétés ne sont pas refusées l’accès en lecture ou en écriture. (Non disponible dans toutes les implémentations.)
STGM_SHARE_DENY_READ Les ouvertures suivantes du jeu de propriétés de ce stockage de jeu de propriétés sont refusées en lecture. Non disponible dans toutes les implémentations.
STGM_SHARE_DENY_WRITE Les ouvertures suivantes du jeu de propriétés à partir de ce stockage de jeu de propriétés sont l’accès en écriture refusé. Cette valeur est généralement utilisée en mode transactionné pour éviter d’effectuer des copies inutiles d’un objet ouvert par plusieurs utilisateurs. Autrement dit, si STGM_TRANSACTED est spécifié, mais que cette valeur n’est pas spécifiée, une instantané est effectuée, qu’il y ait des ouvertures ultérieures ou non. Ainsi, vous pouvez améliorer les performances en spécifiant cette valeur. Non disponible dans toutes les implémentations.
STGM_SHARE_EXCLUSIVE Les ouvertures ultérieures du jeu de propriétés à partir de ce stockage de jeu de propriétés ne sont pas possibles. N’oubliez pas que cette valeur n’est pas une simple or binaire des éléments STGM_SHARE_DENY_READ et STGM_SHARE_DENY_WRITE.
 

Cette méthode est soumise aux contraintes des éléments IStorage ::OpenStream sous-jacents (pour les ensembles de propriétés simples) ou IStorage ::OpenStorage (pour les jeux de propriétés non simples). Pour plus d’informations sur les ensembles de propriétés simples et non simples, consultez Storage and Stream Objects for a Property Set. Par exemple, lorsque vous utilisez l’implémentation de fichier composé IPropertySetStorage, vous devez spécifier STGM_SHARE_EXCLUSIVE dans le paramètre grfMode sur IPropertySetStorage ::Open. À l’inverse, si vous utilisez l’implémentation autonome IPropertySetStorage, IPropertySetStorage ::Open est soumis à des contraintes qui s’appliquent à l’IStorage spécifié par l’appelant.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête propidl.h (inclure Objbase.h)
Bibliothèque Uuid.lib
DLL Ole32.dll

Voir aussi

Exemple EnumAll

IPropertySetStorage

IPropertySetStorage ::Create

PROPVARIANT

Exemples

Exemple WriteRead