Implementação de arquivo IPropertySetStorage-Compound

A implementação do objeto de armazenamento de arquivos compostos COM inclui uma implementação de IPropertyStorage, a interface que gerencia um único conjunto de propriedades persistentes e IPropertySetStorage, a interface que gerencia grupos de conjuntos de propriedades persistentes.

Para obter um ponteiro para a implementação de arquivo composto de IPropertySetStorage, especifique o nome definido pelo cabeçalho para o identificador IID_IStorage como o parâmetro riid ou use as funções StgCreateStorageEx ou StgOpenStorageEx . Em ambos os casos, especifique STGFMT_STORAGE como o parâmetro stgfmt . (STGFMT_ANY pode ser especificado no caso de StgOpenStorageEx.) Além disso, especifique o nome definido pelo cabeçalho para o IID (identificador de interface) IID_IPropertySetStorage como o parâmetro riid . Ambas as funções fornecem um ponteiro para a interface IPropertySetStorage do objeto.

Outra maneira de obter um ponteiro para a implementação do arquivo composto é especificar o nome definido pelo cabeçalho para o identificador IID_IStorage como o parâmetro riid ou usar as funções StgCreateDocfile ou StgOpenStorage . Isso fornecerá um ponteiro para a interface IStorage do objeto. Quando quiser lidar com conjuntos de propriedades persistentes, chame IStorage::QueryInterface para a interface IPropertySetStorage .

Quando usar IPropertySetStorage

Chame os métodos de IPropertySetStorage para criar, abrir ou excluir conjuntos de propriedades no armazenamento atual do conjunto de propriedades de arquivos compostos. Há também um método , IPropertySetStorage::Enum, que fornece um ponteiro para um enumerador que pode ser usado para enumerar os conjuntos de propriedades no armazenamento.

Métodos

IPropertySetStorage::Create

Cria um novo conjunto de propriedades no armazenamento de arquivos compostos atual e, no retorno, fornece um ponteiro de interface para a implementação de arquivo composto IPropertyStorage . Nessa implementação, os conjuntos de propriedades só poderão ser transacionados se PROPSETFLAG_NONSIMPLE for especificado. Esse método exige que o modo de compartilhamento especificado no parâmetro grfMode seja STGM_SHARE_EXCLUSIVE e que o modo de acesso seja STGM_READ ou STGM_READWRITE (não há suporte para o modo STGM_WRITE).

IPropertySetStorage::Open

Abre um conjunto de propriedades existente no armazenamento de propriedades atual. No retorno, ele fornece um ponteiro de interface para a implementação de arquivo composto de IPropertyStorage. Esse método exige que o modo de compartilhamento especificado no parâmetro grfMode seja STGM_SHARE_EXCLUSIVE e que o modo de acesso seja STGM_READ ou STGM_READWRITE (não há suporte para STGM_WRITE).

IPropertySetStorage::D elete

Exclui um conjunto de propriedades neste armazenamento de propriedades.

IPropertySetStorage::Enum

Cria um objeto usado para enumerar estruturas STATPROPSETSTG . Cada estrutura STATPROPSETSTG fornece dados sobre um único conjunto de propriedades.

Comentários

A partir do Windows 2000, a implementação de arquivo composto de IPropertySetStorage dá suporte ao modo simples. O modo simples é indicado especificando o sinalizador STGM_SIMPLE para as funções StgCreateStorageEx e StgOpenStorageEx . Se o arquivo composto for aberto no modo simples, a implementação IPropertySetStorage associada será limitada da seguinte maneira:

Conjuntos de propriedades simples não podem ser transacionados. Não é possível especificar STGM_TRANSACTED no parâmetro grfmode dos métodos Create e Open , a menos que você também especifique PROPSETFLAG_NONSIMPLE no parâmetro grfFlags . Lembre-se de que conjuntos de propriedades simples e não simples não estão relacionados aos conjuntos de propriedades de modo simples descritos acima. Para obter mais informações sobre conjuntos de propriedades simples e não simples, consulte Objetos de Armazenamento e Stream para um Conjunto de Propriedades.

Observação

Os conjuntos de propriedades DocumentSummaryInformation e UserDefined são exclusivos, pois podem ter duas seções de conjunto de propriedades. Para obter mais informações, consulte Os conjuntos de propriedades DocumentSummaryInformation e UserDefined.

 

IPropertyStorage – Implementação de arquivo composto

IPropertySetStorage

IPropertyStorage

IStorage::EnumElements

Constantes PROPSETFLAG

STATPROPSETSTG