Método IStorage::OpenStorage (objidl.h)
El método OpenStorage abre un objeto de almacenamiento existente con el nombre especificado en el modo de acceso especificado.
Sintaxis
HRESULT OpenStorage(
[in] const OLECHAR *pwcsName,
[in] IStorage *pstgPriority,
[in] DWORD grfMode,
[in] SNB snbExclude,
[in] DWORD reserved,
[out] IStorage **ppstg
);
Parámetros
[in] pwcsName
Un puntero a una cadena Unicode terminada en Null de carácter ancho que contiene el nombre del objeto de almacenamiento que se va a abrir. Los caracteres 000 a 01f, que actúan como el primer carácter del nombre de la secuencia/almacenamiento, se reservan para uso de OLE. Es una restricción de archivo compuesto, no una restricción de almacenamiento estructurado. Se omite si pstgPriority no es NULL.
[in] pstgPriority
Debe ser NULL. Un valor distinto de NULL devolverá STG_E_INVALIDPARAMETER.
[in] grfMode
Especifica el modo de acceso que se va a usar al abrir el objeto de almacenamiento. Para obtener descripciones de los valores posibles, vea Constantes STGM. Otros modos que elija deben por lo menos especificar STGM_SHARE_EXCLUSIVE al llamar a este método.
[in] snbExclude
Debe ser NULL. Un valor distinto de NULL devolverá STG_E_INVALIDPARAMETER.
[in] reserved
Reservado para uso futuro; debe ser cero.
[out] ppstg
Cuando se ejecuta correctamente, puntero a la ubicación de un puntero de IStorage al objeto de almacenamiento abierto. Este parámetro se establece en NULL si se produce un error.
Valor devuelto
Este método puede devolver uno de estos valores.
Código devuelto | Descripción |
---|---|
S_OK | El objeto de almacenamiento se abrió correctamente. |
E_PENDING | Solo almacenamiento asincrónico: la parte o todos los datos del almacenamiento no están disponibles actualmente. |
STG_E_ACCESSDENIED | No hay suficientes permisos para abrir el objeto de almacenamiento. |
STG_E_FILENOTFOUND | El objeto de almacenamiento con el nombre especificado no existe. |
STG_E_INSUFFICIENTMEMORY | No se abrió el objeto de almacenamiento debido a una falta de memoria. |
STG_E_INVALIDFLAG | El valor especificado para el parámetro grfMode no es un valor de constantes STGM válido. |
STG_E_INVALIDFUNCTION | No se admite la combinación especificada de marcas en el parámetro grfMode . |
STG_E_INVALIDNAME | No es un valor válido para pwcsName. |
STG_E_INVALIDPOINTER | El puntero especificado para el objeto de almacenamiento no era válido. |
STG_E_INVALIDPARAMETER | Uno de los parámetros no era válido. |
STG_E_REVERTED | El objeto de almacenamiento se ha invalidado mediante una operación de reversión encima de él en el árbol de transacciones. |
STG_E_TOOMANYOPENFILES | El objeto de almacenamiento no se creó porque hay demasiados archivos abiertos. |
STG_S_CONVERTED | La secuencia existente con el nombre especificado se reemplazó por un nuevo objeto de almacenamiento que contiene una única secuencia denominada CONTENTS. En modo directo, el nuevo almacenamiento se escribe inmediatamente en el disco. En el modo de transacción, el nuevo almacenamiento se escribe en un almacenamiento temporal en memoria y, posteriormente, se escribe en el disco cuando se confirma. |
Comentarios
Si el parámetro pstgPriority es NULL, se omite. Si el parámetro pstgPriority no es NULL, es un puntero IStorage a una apertura anterior de un elemento del objeto de almacenamiento, normalmente uno que se abrió en modo de prioridad. El objeto de almacenamiento debe cerrarse y volver a abrirse según grfMode. Cuando se devuelve el método IStorage::OpenStorage , pstgPriority ya no es válido. Use el valor proporcionado en el parámetro ppstg .
Los objetos de almacenamiento se pueden abrir con STGM_DELETEONRELEASE, en cuyo caso el objeto se destruye cuando recibe su versión final. Esto es útil para crear objetos de almacenamiento temporales.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 Professional [aplicaciones de escritorio | Aplicaciones para UWP] |
Servidor mínimo compatible | Windows 2000 Server [aplicaciones de escritorio | Aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | objidl.h |
Library | Uuid.lib |
Archivo DLL | Ole32.dll |