Gerenciando conjuntos de propriedades

Um conjunto de propriedades persistente contém dados relacionados como propriedades. Cada conjunto de propriedades é identificado com um FMTID e um GUID (identificador global exclusivo) que permite que aplicativos, acessando o conjunto de propriedades, identifiquem o conjunto de propriedades. Por meio dessa identificação, o aplicativo interpreta as propriedades que o conjunto contém.

Por exemplo, as propriedades de formatação de caracteres em um processador de palavras ou os atributos de renderização de um elemento em um programa de desenho são conjuntos de propriedades.

COM define a interface IPropertySetStorage para facilitar o gerenciamento de conjuntos de propriedades. Por meio dos métodos dessa interface, você pode criar um novo conjunto de propriedades ou abrir ou excluir um conjunto de propriedades existente. Além disso, ele fornece um método que cria um enumerador e fornece um ponteiro para sua interface IEnumSTATPROPSETSTG . Você pode chamar os métodos dessa interface para enumerar estruturas STATPROPSETSTG em seu objeto, o que fornecerá informações sobre todos os conjuntos de propriedades no objeto .

Quando você cria ou abre uma instância de IPropertyStorage, é semelhante a abrir um objeto que dá suporte a IStorage ou IStream, pois você precisa especificar o modo de armazenamento no qual você está abrindo a interface. Para IStorage, eles incluem o modo de transação, o modo de leitura/gravação e o modo de compartilhamento.

Quando você cria um conjunto de propriedades com uma chamada para IPropertySetStorage::Create, especifique se o conjunto de propriedades deve ser simples ou não. Um conjunto de propriedades simples contém tipos que podem ser gravados totalmente dentro do fluxo do conjunto de propriedades, que se destina a ser limitado em tamanho e não pode ser maior que 256 KB em Windows NT 4.0 e anterior, ou 1 MB no Windows 2000, Windows XP e Windows Server 2003. No entanto, quando você precisar armazenar uma quantidade maior de informações no conjunto de propriedades, poderá especificar que o conjunto de propriedades seja não simples. Isso permite que você use um ou mais dos tipos que especificam apenas um ponteiro para um objeto de armazenamento ou fluxo. Esses tipos são VT_STREAM, VT_STREAMED OBJECT, VT_STORAGE e VT_STORED_OBJECT.

Os dados armazenados nessas propriedades não são contados em relação ao limite de tamanho do conjunto de propriedades de 256 KB em Windows NT 4,0 ou anterior, ou o limite de 1 MB no Windows 2000, Windows XP e Windows Server 2003. No entanto, os dados sobre a propriedade, como seu nome, se aplicam. Além disso, se você precisar de uma atualização transacionada, o conjunto de propriedades deverá ser não simples. Há, é claro, uma determinada penalidade de desempenho para abrir esses tipos, pois requer a abertura do fluxo ou do objeto de armazenamento para o qual você tem o ponteiro.

Se o aplicativo usar arquivos compostos, você poderá usar a implementação fornecida por COM dessas interfaces, que são implementadas no objeto de armazenamento de arquivos compostos COM.

Cada conjunto de propriedades consiste principalmente em um grupo de propriedades logicamente conectado, conforme descrito em Gerenciando propriedades.

Para obter mais informações sobre conjuntos de propriedades em COM, consulte: