Objetos de almacenamiento y secuencia para un conjunto de propiedades

El programador especifica si un conjunto de propiedades se almacena en un almacenamiento o en una secuencia cuando se crea el conjunto de propiedades. El valor de enumeración PROPSETFLAG_NONSIMPLE, pasado el parámetro grfFlags al método IPropertySetStorage::Create , indica esto. Establecer dónde se almacena el conjunto de propiedades proporciona controles de aplicación adecuados para interoperar completamente a través de la interfaz IPropertySetStorage con el conjunto de propiedades COM.

Si se establece la marca PROPSETFLAG_NONSIMPLE, el conjunto de propiedades se almacena en un objeto de almacenamiento y se pueden escribir valores de propiedad nomple en él. Los valores que no son de ejemplo incluyen valores con un VARTYPE de VT_STORAGE, VT_STREAM, VT_STORED_OBJECT o VT_STREAMED_OBJECT. Para obtener más información sobre los valores VARTYPE y cómo usarlos, vea la estructura PROPVARIANT .

Si no se establece la marca PROPSETFLAG_NONSIMPLE, solo se pueden escribir valores simples en el conjunto de propiedades.

En el objeto de almacenamiento de un conjunto de propiedades nomple, se crea una secuencia denominada Contents. Esta es la secuencia principal del conjunto de propiedades y contiene todos los valores de propiedad simples. Los valores de propiedad nosimple (flujos y almacenamientos) se almacenan en el objeto de almacenamiento principal de la propiedad establecida como substreams y almacenamientos. Es decir, estos valores que no son de ejemplo se almacenan como elementos del mismo nivel en la secuencia Contenido. La implementación determina el nombre de los flujos y almacenamientos del mismo nivel y se almacena en la secuencia Contents similar a la forma en que se almacena una propiedad de cadena simple.