Método IStorage::OpenStream (objidl.h)

El método OpenStream abre un objeto de secuencia existente dentro de este objeto de almacenamiento en el modo de acceso especificado.

Sintaxis

HRESULT OpenStream(
  [in]  const OLECHAR *pwcsName,
  [in]  void          *reserved1,
  [in]  DWORD         grfMode,
  [in]  DWORD         reserved2,
  [out] IStream       **ppstm
);

Parámetros

[in] pwcsName

Puntero a una cadena Unicode terminada en null de caracteres anchos que contiene el nombre de la secuencia 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.

[in] reserved1

Reservado para uso futuro; debe ser NULL.

[in] grfMode

Especifica el modo de acceso que se va a asignar a la secuencia abierta. Para obtener más información y descripciones de los valores posibles, vea StGM Constants. Otros modos que elija deben especificar al menos STGM_SHARE_EXCLUSIVE al llamar a este método en la implementación de archivo compuesto.

[in] reserved2

Reservado para uso futuro; debe ser cero.

[out] ppstm

Puntero a la variable de puntero IStream que recibe el puntero de interfaz al objeto de secuencia recién abierto. Si se produce un error, *ppstm debe establecerse en NULL.

Valor devuelto

Este método puede devolver uno de estos valores.

Código devuelto Descripción
S_OK La secuencia se abrió correctamente.
E_PENDING Solo almacenamiento asincrónico: la parte o todos los datos del flujo no están disponibles actualmente.
STG_E_ACCESSDENIED No hay permisos suficientes para abrir el flujo.
STG_E_FILENOTFOUND La secuencia con el nombre especificado no existe.
STG_E_INSUFFICIENTMEMORY La secuencia no se abrió 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 ; Por ejemplo, cuando se llama a este método sin la marca STGM_SHARE_EXCLUSIVE.
STG_E_INVALIDNAME Valor no válido para pwcsName.
STG_E_INVALIDPOINTER El puntero especificado para el objeto de secuencia no era válido.
STG_E_INVALIDPARAMETER Uno de los parámetros no era válido.
STG_E_REVERTED Una operación de reversión por encima de él ha invalidado el objeto de almacenamiento en el árbol de transacciones.
STG_E_TOOMANYOPENFILES La secuencia no se abrió porque hay demasiados archivos abiertos.

Comentarios

IStorage::OpenStream abre un objeto de secuencia existente dentro de este objeto de almacenamiento en el modo de acceso especificado en grfMode. Existen restricciones en los permisos que se pueden proporcionar en grfMode. Por ejemplo, los permisos de este objeto de almacenamiento restringen los permisos en sus secuencias. En general, las restricciones de acceso en los flujos deben ser más estrictas que las de sus almacenamientos primarios. Las secuencias de archivos compuestos deben abrirse con STGM_SHARE_EXCLUSIVE.

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

Consulte también

IStorage: implementación de archivos compuestos

IStorage::CreateStream

Istream