Características de desempenho
Uma chamada para a implementação de arquivo composto COM da interface IPropertySetStorage para criar um conjunto de propriedades faz com que um fluxo ou armazenamento seja criado por meio de uma chamada para IStorage::CreateStream ou IStorage::CreateStorage. Um conjunto de propriedades padrão é criado na memória, mas não liberado para o disco. Quando há uma chamada para IPropertyStorage::WriteMultiple, ela opera dentro do buffer.
Quando um conjunto de propriedades é aberto, IStorage::OpenStream ou IStorage::OpenStorage é usado. Todo o fluxo do conjunto de propriedades é lido em memória contígua. As operações IPropertyStorage::ReadMultiple operam lendo o buffer de memória. Portanto, o primeiro acesso é caro em termos de tempo (devido a leituras de disco), mas os acessos subsequentes são muito eficientes. As gravações podem ser um pouco mais caras porque as operações SetSize no fluxo subjacente podem ser necessárias para garantir que o espaço em disco esteja disponível se os dados forem adicionados.
Nenhuma garantia é feita sobre se IPropertyStorage::WriteMultiple liberará atualizações. Em geral, o cliente deve assumir que IPropertyStorage::WriteMultiple atualiza apenas o buffer na memória. Para liberar dados, IPropertyStorage::Commit ou IUnknown::Release (última versão) deve ser chamado.
Esse design significa que WriteMultiple pode ter êxito, mas os dados não são realmente gravados persistentemente.
Observação
Esse tamanho do fluxo do conjunto de propriedades não pode exceder 256 K bytes.