Método IPropertySetStorage::Open (propidl.h)

El método Open abre un conjunto de propiedades contenido en el objeto de almacenamiento del conjunto de propiedades.

Sintaxis

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

Parámetros

[in] rfmtid

Identificador de formato (FMTID) de la propiedad que se va a abrir. Para obtener más información sobre fmtiD conocidos y predefinidos en el SDK de plataforma, consulte Identificadores de formato de conjunto de propiedades predefinidos.

[in] grfMode

Modo de acceso en el que se va a abrir el conjunto de propiedades recién creado. Estas marcas se toman de constantes STGM. Las marcas que se pueden usar y sus significados en el contexto de este método se describen en la sección Comentarios siguiente.

[out] ppprstg

Puntero a la variable de puntero IPropertyStorage que recibe el puntero de interfaz al subobjeto de almacenamiento de propiedades solicitado.

Valor devuelto

Este método admite el valor devuelto estándar E_UNEXPECTED, además de lo siguiente:

Comentarios

El modo en el que se va a abrir el conjunto de propiedades se especifica en el parámetro grfMode. Estas marcas se toman de constantes STGM, pero, para este método, los valores legales y sus significados son los siguientes (solo ciertas combinaciones de estos valores de marca son legales).

Valor Significado
STGM_DIRECT Abre el conjunto de propiedades sin un nivel adicional de anidamiento de transacciones. Este es el valor predeterminado (el comportamiento si no se especifica ni STGM_DIRECT ni STGM_TRANSACTED).
STGM_TRANSACTED Abre el conjunto de propiedades con un nivel adicional de anidamiento de transacciones (más allá de la transacción, si existe, en este objeto de almacenamiento del conjunto de propiedades). El modo de transacción solo está disponible para conjuntos de propiedades nomple. Los cambios en el conjunto de propiedades deben confirmarse con una llamada a IPropertyStorage::Commit antes de que sean visibles para la transacción en este almacenamiento del conjunto de propiedades.
STGM_READ Abre el conjunto de propiedades con acceso de lectura. El permiso de lectura es necesario en el almacenamiento del conjunto de propiedades.
STGM_WRITE Abre el conjunto de propiedades con acceso de escritura. No todas las implementaciones de IPropertyStorage admiten este modo.
STGM_READWRITE Abre el conjunto de propiedades con acceso de lectura y escritura. Tenga en cuenta que esta marca no es el or binario de los valores STGM_READ y STGM_WRITE.
STGM_SHARE_DENY_NONE Las aperturas posteriores del conjunto de propiedades de este almacenamiento del conjunto de propiedades no se deniegan el acceso de lectura o escritura. (No está disponible en todas las implementaciones).
STGM_SHARE_DENY_READ Se deniega el acceso de lectura a las aperturas posteriores del conjunto de propiedades del conjunto de propiedades. No está disponible en todas las implementaciones.
STGM_SHARE_DENY_WRITE Se deniega el acceso de escritura a las aperturas posteriores del conjunto de propiedades del conjunto de propiedades. Este valor se usa normalmente en el modo de transacción para evitar que varios usuarios abran copias innecesarias de un objeto. Es decir, si se especifica STGM_TRANSACTED, pero no se especifica este valor, se realiza una instantánea, tanto si hay aperturas posteriores como si no. Por lo tanto, puede mejorar el rendimiento especificando este valor. No está disponible en todas las implementaciones.
STGM_SHARE_EXCLUSIVE Las aperturas posteriores del conjunto de propiedades de este almacenamiento del conjunto de propiedades no son posibles. Tenga en cuenta que este valor no es un or binario simple de los elementos STGM_SHARE_DENY_READ y STGM_SHARE_DENY_WRITE.
 

Este método está sujeto a las restricciones del IStorage::OpenStream subyacente (para conjuntos de propiedades simples) o IStorage::OpenStorage (para conjuntos de propiedades nomple). Para obtener más información sobre los conjuntos de propiedades simples y nomples, vea Storage and Stream Objects for a Property Set. Por ejemplo, al usar la implementación IPropertySetStorage-Compound File, debe especificar STGM_SHARE_EXCLUSIVE en el parámetro grfMode en IPropertySetStorage::Open. Por el contrario, si usa la implementación independiente de IPropertySetStorage,IPropertySetStorage::Open está sujeta a restricciones que se aplican al IStorage especificado por el autor de la llamada.

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 propidl.h (include Objbase.h)
Library Uuid.lib
Archivo DLL Ole32.dll

Consulte también

Ejemplo EnumAll

IPropertySetStorage

IPropertySetStorage::Create

PROPVARIANT

Muestras

Ejemplo writeRead