Compartilhar via


Objetos de armazenamento e fluxo para um conjunto de propriedades

O programador especifica se um conjunto de propriedades é armazenado em um armazenamento ou em um fluxo quando o conjunto de propriedades é criado. O valor de enumeração PROPSETFLAG_NONSIMPLE, passado no parâmetro grfFlags para o método IPropertySetStorage::Create, indica isso. A configuração em que o conjunto de propriedades é armazenado fornece controles de aplicativo adequados para interoperar totalmente por meio da interfaceIPropertySetStoragecom o conjunto de propriedades COM.

Se o sinalizador PROPSETFLAG_NONSIMPLE estiver definido, o conjunto de propriedades será armazenado em um objeto de armazenamento e os valores de propriedade não simplificados poderão ser gravados nele. Os valores não simplificados incluem valores com uma VARTYPE de VT_STORAGE, VT_STREAM, VT_STORED_OBJECT ou VT_STREAMED_OBJECT. Para obter mais informações sobre valores VARTYPE e como usá-los, consulte a estruturaPROPVARIANT.

Se o sinalizador de PROPSETFLAG_NONSIMPLE não estiver definido, somente valores simples poderão ser gravados no conjunto de propriedades.

No objeto de armazenamento de um conjunto de propriedades não simplificado, um fluxo é criado chamado Contents. Esse é o fluxo primário do conjunto de propriedades e contém todos os valores de propriedade simples. Valores de propriedade não simplificados (fluxos e armazenamentos) são armazenados sob o objeto de armazenamento principal da propriedade definida como substreams e armazenamentos. Ou seja, esses valores não simplificados são armazenados como irmãos para o fluxo de Conteúdo. O nome dos fluxos e armazenamentos irmãos é determinado pela implementação e armazenado no fluxo de conteúdo semelhante à maneira como uma propriedade de cadeia de caracteres simples é armazenada.