Méthode IStorage ::OpenStorage (objidl.h)
La méthode OpenStorage ouvre un objet de stockage existant avec le nom spécifié dans le mode d’accès spécifié.
Syntaxe
HRESULT OpenStorage(
[in] const OLECHAR *pwcsName,
[in] IStorage *pstgPriority,
[in] DWORD grfMode,
[in] SNB snbExclude,
[in] DWORD reserved,
[out] IStorage **ppstg
);
Paramètres
[in] pwcsName
Pointeur vers une chaîne Unicode à caractères larges se terminant par null qui contient le nom de l'objet de stockage à ouvrir. Les caractères 000 à 01f qui servent de premier caractère au nom de flux/de stockage, sont réservés pour être utilisés par OLE. Il s'agit d'une restriction de fichier composé, pas d'une restriction de stockage de mémoire. Elle est ignorée si pstgPriority n’a pas la valeur NULL.
[in] pstgPriority
Doit être NULL. Une valeur non NULL retourne STG_E_INVALIDPARAMETER.
[in] grfMode
Spécifie le mode d'accès à utiliser lors de l'ouverture de l'objet de stockage. Pour obtenir une description des valeurs possibles, consultez Constantes STGM. D'autres modes que vous choisissez doivent au moins spécifier STGM_SHARE_EXCLUSIVE en appelant cette méthode.
[in] snbExclude
Doit être NULL. Une valeur non NULL retourne STG_E_INVALIDPARAMETER.
[in] reserved
Réservé pour une future utilisation ; doit être nul.
[out] ppstg
En cas de réussite, pointez vers l’emplacement d’un pointeur IStorage vers l’objet de stockage ouvert. Ce paramètre est défini sur NULL si une erreur se produit.
Valeur retournée
Cette méthode peut retourner l’une de ces valeurs.
Code de retour | Description |
---|---|
S_OK | L’objet de stockage a été ouvert avec succès. |
E_PENDING | Stockage asynchrone uniquement : une partie ou la totalité des données du stockage sont actuellement indisponibles. |
STG_E_ACCESSDENIED | Autorisations insuffisantes pour ouvrir l’objet de stockage. |
STG_E_FILENOTFOUND | L’objet de stockage portant le nom spécifié n’existe pas. |
STG_E_INSUFFICIENTMEMORY | L’objet de stockage n’a pas été ouvert en raison d’un manque de mémoire. |
STG_E_INVALIDFLAG | La valeur spécifiée pour le paramètre grfMode n’est pas une valeur de constantes STGM valide. |
STG_E_INVALIDFUNCTION | La combinaison spécifiée d’indicateurs dans le paramètre grfMode n’est pas prise en charge. |
STG_E_INVALIDNAME | Valeur non valide pour pwcsName. |
STG_E_INVALIDPOINTER | Le pointeur spécifié pour l’objet de stockage n’était pas valide. |
STG_E_INVALIDPARAMETER | L’un des paramètres n’était pas valide. |
STG_E_REVERTED | L’objet de stockage a été invalidé par une opération de rétablissement au-dessus de lui dans l’arborescence des transactions. |
STG_E_TOOMANYOPENFILES | L’objet de stockage n’a pas été créé, car il y a trop de fichiers ouverts. |
STG_S_CONVERTED | Le flux existant portant le nom spécifié a été remplacé par un nouvel objet de stockage contenant un flux unique appelé CONTENTS. En mode direct, le nouveau stockage est immédiatement écrit sur le disque. En mode transactionné, le nouveau stockage est écrit dans un stockage temporaire en mémoire, puis écrit sur le disque lors de sa validation. |
Remarques
Si le paramètre pstgPriority a la valeur NULL, il est ignoré. Si le paramètre pstgPriority n’est pas NULL, il s’agit d’un pointeur IStorage vers une ouverture précédente d’un élément de l’objet de stockage, généralement ouvert en mode priorité. L’objet de stockage doit être fermé et rouvert selon grfMode. Lorsque la méthode IStorage ::OpenStorage est retournée, pstgPriority n’est plus valide. Utilisez la valeur fournie dans le paramètre ppstg .
Les objets de stockage peuvent être ouverts avec STGM_DELETEONRELEASE, auquel cas l’objet est détruit lorsqu’il reçoit sa version finale. Cela est utile pour créer des objets de stockage temporaires.
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 | objidl.h |
Bibliothèque | Uuid.lib |
DLL | Ole32.dll |