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