Partilhar 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 onde o conjunto de propriedades é armazenado fornece controles de aplicativo adequados para interoperar totalmente através da interface IPropertySetStorage com o conjunto de propriedades COM.

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

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

No objeto de armazenamento de um conjunto de propriedades não simples, um fluxo é criado chamado Contents. Este é o fluxo primário do conjunto de propriedades e contém todos os valores de propriedade simples. Os valores de propriedade não simples (fluxos e armazenamentos) são armazenados no objeto de armazenamento principal da propriedade definida como subfluxos e armazenamentos. Ou seja, esses valores não simples 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.