Structured StorageFundamentalsProperties and Property Sets

プロパティとプロパティセット

オートメーションや Microsoft ActiveX コントロールが実行時プロパティを必要とする場合、オブジェクトを永続的に保存する時に必要な保存情報を、ファイルシステムに直接配置しません。 それらの要素は、時に構造化や複合化されているファイルやディレクトリ、概要を内包しています。 COM は、これら永続化されるプロパティの標準的な格納形式と、プロパティセットやこれらのプロパティを作成、操作するためのインタフェースや関数の集合を提供します。

永続化されるプロパティはまとめられ、単独、または集合としてファイルシステム要素に関連付けられます。 永続化されるプロパティセットは、詳細な値の羅列として表現されるデータのまとまりを保存する方法に代わります。 これらは大きなデータベースの代用にはなりません。 これらはオブジェクトに関する概要情報をシステム上に保存するために使用され、また、これらのプロパティセットの扱い方を知らないいかなるオブジェクトからでもアクセスできます。

以前のバージョンの COM はプロパティに関する用途をごくわずかに指定していましたが、開発者がプロパティやプロパティセットを IStorage インスタンスに保存できるシリアル化形式を定めていました。 また、文書の概要情報に使用されるプロパティ識別子や単一プロパティセットの構文も定義されていました。 その頃は、その構造体を直接データストリームとして作成し、操作する必要がありました。 構造化ストレージでのプロパティセットシリアル化形式を参照して下さい。

しかし、現在 COM は、プロパティセットを扱う二つの主なインタフェースを定義しています。

これらのインタフェースが、複合ファイルのような IStorage インタフェースをサポートするオブジェクトで実装されていれば、いずれシリアル化形式を直接操作する必要はなくなります。 IPropertySetStorage や IPropertyStorage を通してプロパティを書き込むと、データは IStorage メソッドを通して見る COM プロパティセット形式と完全に互換性のある形で作成されます。 逆もまた真なりで、IStorage を使用して COM プロパティセット形式で書き込まれたプロパティは、IPropertySetStorage や IPropertyStorage を通して見る事ができます。 (ですが、IStream に書き込んだり、IPropertyStorage を通して取得したプロパティを即座に利用する事はできず、その逆もできません。)

IPropertySetStorage インタフェースはプロパティセットを作成したり操作するメソッドを定義します。 IPropertyStorage インタフェースはプロパティセット内のプロパティを直接操作します。 これらのインタフェースメソッドを呼び出す事で、提供されたファイルシステム要素に対して適切であるかにかかわらず、アプリケーション開発者はプロパティセットを操作できます。 これらのインタフェースを使用すると、頻繁なシークといった性能上のボトルネックの点で、個々のアプリケーションが実装するより優れたプロパティの読み書きを行えます。 例えば、さらに効率的なキャッシュを利用して、より高速なプロパティの読み書きを行える性能の良いインタフェースを実装する事ができます。 さらに、IPropertyStorage や IPropertySetStorage は IStorage をサポートしないエンティティのプロパティさえ操作できますが、一般にほとんどのアプリケーションはそうしていません。

このセクションは以下のトピックを含んでいます。

関連トピック

プロパティセットの COM 実装
プロパティセットの考察
プロパティの扱い
プロパティセットの扱い
プロパティセットの保存
性能と特徴