Implementación de archivos IPropertySetStorage-Compound
La implementación del objeto de almacenamiento de archivos compuesto COM incluye una implementa ción de IPropertyStorage , la interfaz que administra un único conjunto de propiedades persistentes y IPropertySetStorage, la interfaz que administra grupos de conjuntos de propiedades persistentes.
Para obtener un puntero a la implementación de archivos compuestos de IPropertySetStorage, especifique el nombre definido por el encabezado para el identificador IID_IStorage como parámetro riid, o use el StgCreateStorageEx o funciones stgOpenStorageEx. En ambos casos, especifique STGFMT_STORAGE como parámetro stgfmt . (STGFMT_ANY también se puede especificar 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 al objeto interfaz IPropertySetStorage.
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 al objeto interfaz IStorage. Cuando quiera tratar con conjuntos de propiedades persistentes, llame a IStorage::QueryInterface para la interfazdeIPropertySetStorage.
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
Crea una nueva propiedad establecida en el almacenamiento de archivos compuesto actual y, a cambio, proporciona un puntero de interfaz al IPropertyStorage implementación de archivos compuestos. 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).
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).
Elimina un conjunto de propiedades en este almacenamiento de propiedades.
Crea un objeto utilizado para enumerar estructuras de STATPROPSETSTG. Cada estructura de STATPROPSETSTG proporciona datos sobre un único conjunto de propiedades.
Observaciones
A partir de Windows 2000, la implementación de archivos compuestos 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, el IPropertySetStorage asociado implementación se limita de la siguiente manera:
- Solo se pueden crear conjuntos de propiedades simples. Es decir, especificar el valor de PROPSETFLAG_NONSIMPLE en el parámetro grfFlags para el método IPropertySetStorage::Create produce un error.
- Después de crear un archivo compuesto con StgCreateStorageEx mediante STGM_SIMPLE y consultar la interfazIPropertySetStorage, solo puede llamar a IPropertySetStorage::Create una vez. A continuación, debe liberar la interfaz IPropertyStorage antes de llamar al método Create de nuevo. Para obtener más información sobre el modo simple, vea constantes STGM.
- No puede usar el método IPropertySetStorage::Open para abrir un conjunto de propiedades después de usar StgCreateStorageEx para crear el objeto de almacenamiento. En su lugar, debe usar stgOpenStorageEx antes de consultar IPropertySetStorage y llamar al método open .
- Después de abrir un archivo compuesto con stgOpenStorageEx mediante la marca STGM_SIMPLE y la consulta de la interfazIPropertySetStorage, puede abrir un conjunto de propiedades a la vez mediante IPropertySetStorage::Open. Además, es posible que no sea posible aumentar el tamaño total de la propiedad establecida mientras el conjunto de propiedades está abierto.
Los conjuntos de propiedades simples no se pueden realizar transacciones. No se puede especificar STGM_TRANSACTED en el parámetro grfmode del Create y métodos 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 de modo simple descritos anteriormente. Para obtener más información sobre los conjuntos de propiedades simples y nomples, vea Storage and Stream Objects for a Property Set.
Nota
Los conjuntos de propiedades DocumentSummaryInformation y UserDefined son únicos en que pueden tener dos secciones establecidas de propiedades. Para obtener más información, vea Los conjuntos de propiedades DocumentSummaryInformation y UserDefined.
Temas relacionados