Share via


Implementación de archivos IPropertySetStorage-Compound

La implementación del objeto de almacenamiento de archivos compuestos COM incluye una implementación de IPropertyStorage, la interfaz que administra un único conjunto de propiedades persistentes e IPropertySetStorage, la interfaz que administra grupos de conjuntos de propiedades persistentes.

Para obtener un puntero a la implementación de archivo compuesto de IPropertySetStorage, especifique el nombre definido por el encabezado para el identificador IID_IStorage como parámetro riid o use las funciones StgCreateStorageEx o StgOpenStorageEx . En ambos casos, especifique STGFMT_STORAGE como parámetro stgfmt . (STGFMT_ANY se puede especificar alternativamente en el caso de StgOpenStorageEx). Además, especifique el nombre definido por el encabezado para el identificador de interfaz (IID) IID_IPropertySetStorage como parámetro riid . Ambas funciones proporcionan un puntero a la interfaz IPropertySetStorage del objeto.

Otra manera de obtener un puntero a la implementación del archivo compuesto es especificar el nombre definido por el encabezado para el identificador IID_IStorage como parámetro riid o usar las funciones StgCreateDocfile o StgOpenStorage . Esto proporcionará un puntero a la interfaz IStorage del objeto. Cuando quiera tratar con conjuntos de propiedades persistentes, llame a IStorage::QueryInterface para la interfaz IPropertySetStorage .

Cuándo usar IPropertySetStorage

Llame a los métodos de IPropertySetStorage para crear, abrir o eliminar conjuntos de propiedades en el almacenamiento actual de la propiedad compound-file. También hay un método, IPropertySetStorage::Enum, que proporciona un puntero a un enumerador que se puede usar para enumerar los conjuntos de propiedades en el almacenamiento.

Métodos

IPropertySetStorage::Create

Crea una nueva propiedad establecida en el almacenamiento de archivos compuesto actual y, de vuelta, proporciona un puntero de interfaz a la implementación del archivo compuesto IPropertyStorage . En esta implementación, los conjuntos de propiedades solo se pueden realizar transacciones si se especifica PROPSETFLAG_NONSIMPLE. Este método requiere que el modo de uso compartido especificado en el parámetro grfMode sea STGM_SHARE_EXCLUSIVE y que el modo de acceso sea STGM_READ o STGM_READWRITE (no se admite el modo de STGM_WRITE).

IPropertySetStorage::Open

Abre un conjunto de propiedades existente en el almacenamiento de propiedades actual. A cambio, proporciona un puntero de interfaz a la implementación de archivo compuesto de IPropertyStorage. Este método requiere que el modo de uso compartido especificado en el parámetro grfMode sea STGM_SHARE_EXCLUSIVE y que el modo de acceso sea STGM_READ o STGM_READWRITE (no se admite STGM_WRITE).

IPropertySetStorage::D elete

Elimina una propiedad establecida en este almacenamiento de propiedades.

IPropertySetStorage::Enum

Crea un objeto utilizado para enumerar estructuras STATPROPSETSTG . Cada estructura STATPROPSETSTG proporciona datos sobre un único conjunto de propiedades.

Comentarios

A partir de Windows 2000, la implementación de archivo compuesto de IPropertySetStorage admite el modo simple. El modo simple se indica especificando la marca STGM_SIMPLE para las funciones StgCreateStorageEx y StgOpenStorageEx . Si el archivo compuesto se abre en modo simple, la implementación de IPropertySetStorage asociada está limitada de la siguiente manera:

Los conjuntos de propiedades simples no se pueden realizar transacciones. No se puede especificar STGM_TRANSACTED en el parámetro grfmode de los métodos Create y Open a menos que también especifique PROPSETFLAG_NONSIMPLE en el parámetro grfFlags . Tenga en cuenta que los conjuntos de propiedades simples y no simples no están relacionados con los conjuntos de propiedades en modo simple descritos anteriormente. Para obtener más información sobre los conjuntos de propiedades simples y nomples, vea Objetos de almacenamiento y secuencia para un conjunto de propiedades.

Nota

Los conjuntos de propiedades DocumentSummaryInformation y UserDefined son únicos en que pueden tener dos secciones de conjunto de propiedades. Para obtener más información, vea Los conjuntos de propiedades DocumentSummaryInformation y UserDefined.

 

IPropertyStorage: implementación de archivos compuestos

IPropertySetStorage

IPropertyStorage

IStorage::EnumElements

Constantes PROPSETFLAG

STATPROPSETSTG