永続的なプロパティ セットを使用する可能性は十分にありませんが、現在、主に次の 2 つの用途があります。
- ドキュメントなどのオブジェクトを使用して概要情報を格納する
- オブジェクト間でのプロパティ データの転送
COM プロパティ セットは、粒度の細かい値の中程度のサイズのコレクションとして表現するのに適したデータを格納するように設計されました。 これを実現するには大きすぎるデータ セットは、個別のストリーム、ストレージ、プロパティ セットに分割する必要があります。 COM プロパティ セットのデータ形式は、多数の小さなオブジェクトのデータベースの代わりに使用するためのものではありません。
COM には、さまざまなオブジェクトのプロパティ セット インターフェイスの実装と、3 つのヘルパー関数が用意されています。 次のセクションでは、これらの実装のパフォーマンス特性について説明します。 特定のインターフェイスの詳細と、これらのインターフェイスへのポインターを取得する方法については、COM リファレンス セクションの以下を参照してください。
IPropertySetStorage– 複合ファイルの実装
IStorageおよび IStreamインターフェイスを提供する複合ファイルの実装では、IPropertySetStorageおよび IPropertyStorageインターフェイスも提供されます。 IStorageの複合ファイルの実装を考えると、IPropertySetStorage インターフェイス は、IUnknown::QueryInterfaceを呼び出すことによって取得できます。
IPropertySetStorage–NTFS ファイル システムの実装
IPropertySetStorage および IPropertyStorage インターフェイスは、複合ファイルではない NTFS ファイルでも取得できます。 そのため、NTFS ボリューム上のすべてのファイルに対してこれらのインターフェイスを取得できます。
IPropertySetStorage– スタンドアロン実装
IPropertySetStorage と IPropertyStorage のこの実装がインスタンス化されると、IStorage インターフェイスをサポートするオブジェクトへのポインターが与えられる。 その後、そのストレージ オブジェクト内のプロパティ セット ストレージを操作します。 したがって、サポートする任意のオブジェクトのプロパティ セットにアクセスして操作することができます。
IPropertySetStorage の実装に関する考慮事項
IPropertySetStorage インターフェイスの実装を提供する際に考慮すべきいくつかの問題があります。 COM リファレンス セクションの「実装に関する考慮事項」 を参照してください。
さらに、メモリに設定されたプロパティから (PROPVARIANT 構造体に) 読み取られたプロパティの処理を支援するように設計された 4 つのヘルパー関数があります。
- PropVariantInit
- PropVariantClear
- FreePropVariantArrayをする
- PropVariantCopy
以降のセクションでは、COM でのプロパティ セットの実装について詳しく説明します。
- プロパティ セットの管理 の
- プロパティ セットに関する考慮事項
- プロパティ セットの格納 の
- パフォーマンス特性の
- 概要情報プロパティ セットの実装
- IPropertySetStorage の実装に関する考慮事項