パフォーマンス特性
プロパティ セットを作成する IPropertySetStorage インターフェイスの COM 複合ファイル実装を呼び出すと、IStorage::CreateStreamまたは IStorage::CreateStorage呼び出しによってストリームまたはストレージが作成されます。 既定のプロパティ セットはメモリ内に作成されますが、ディスクにフラッシュされません。 IPropertyStorage::WriteMultipleを呼び出すと、バッファー内で動作します。
プロパティ セットを開くと、IStorage::OpenStream または IStorage::OpenStorage を します。 プロパティ セット ストリーム全体が連続したメモリに読み取られます。 IPropertyStorage::ReadMultiple 操作は、メモリ バッファーを読み取ることによって動作します。 そのため、最初のアクセスは時間の観点からコストがかかりますが (ディスク読み取りのため)、後続のアクセスは非常に効率的です。 基になるストリームに対する SetSize 操作は、データが追加された場合にディスク領域が使用可能であることを保証するために必要な場合があるため、書き込みのコストが若干高くなる可能性があります。
IPropertyStorage::WriteMultiple更新プログラムがフラッシュされるかどうかについては保証されません。 一般に、クライアントは IPropertyStorage::WriteMultiple メモリ内バッファーのみを更新すると想定する必要があります。 データをフラッシュするには、IPropertyStorage::Commitまたは IUnknown::Release (最終リリース) をする必要があります。
この設計は、WriteMultiple成功する可能性がありますが、データが実際には永続的に書き込まれていないことを意味します。
手記
プロパティ セット ストリームのこのサイズは、256K バイトを超えることはできません。