プロパティとプロパティ セット
Automation および Microsoft ActiveX Controls が提供する実行時プロパティの種類は重要ですが、ファイル システムに永続的に格納されているオブジェクトに関する情報を格納する必要性に直接対処するわけではありません。 これらのエンティティには、ファイル (構造化、複合など)、ディレクトリ、および概要カタログを含めることができます。 COM には、これらの永続的なプロパティに対する標準的なシリアル化された形式と、プロパティ セットとそのプロパティを作成および操作できるインターフェイスと関数のセットの両方が用意されています。
永続的なプロパティはセットとして格納され、1 つ以上のセットがファイル システム エンティティに関連付けられる場合があります。 これらの永続的なプロパティ セットは、きめ細かい値のコレクションとして表されるのに適したデータを格納するために使用することを目的としています。 これらは、大規模なデータ ベースとして使用することを意図したものではありません。 これらは、システム上のオブジェクトに関する概要情報を格納するために使用でき、そのプロパティ セットを解釈する方法を理解している他のオブジェクトからアクセスできます。
以前のバージョンの COM では、プロパティとその使用方法に関してはほとんど指定されていませんでしたが、開発者がプロパティとプロパティ セットを IStorage インスタンスに格納できるシリアル化された形式を定義していました。 ドキュメントに関する概要情報に使用される 1 つのプロパティ セットのプロパティ識別子とセマンティクスも定義されました。 当時は、その構造をデータ ストリームとして直接作成して操作する必要があります。 「 構造化ストレージのシリアル化されたプロパティ セットの形式」を参照してください。
ただし、COM では、プロパティ セットを管理するための 2 つのプライマリ インターフェイスが定義されています。
これらのインターフェイスが IStorage インターフェイス (複合ファイルなど) をサポートするオブジェクトに実装されている場合、シリアル化された形式を直接処理する必要はなくなりました。 IPropertySetStorage および IPropertyStorage を使用してプロパティを書き込むと、IStorage メソッドで表示される COM プロパティ セット形式に正確に準拠するデータが作成されます。 逆も true です。 IStorage を使用して COM プロパティ セット形式に書き込まれたプロパティは 、IPropertySetStorage と IPropertyStorage を通じて表示されます (ただし、 IStream に書き込み、 IPropertyStorage を通じてすぐにプロパティを使用することは期待できません。またはその逆も同様です)。
IPropertySetStorage インターフェイスは、プロパティ セットを作成および管理するメソッドを定義します。 IPropertyStorage インターフェイスは、プロパティ セット内のプロパティを直接操作します。 アプリケーション開発者は、これらのインターフェイスのメソッドを呼び出すことによって、特定のファイル システム エンティティに適したプロパティ セットを管理できます。 これらのインターフェイスを使用すると、各アプリケーションで実装を行うのではなく、プロパティのチューニングされた読み取りと書き込みの実装が 1 つ提供されます。この実装では、絶え間ないシークなどのパフォーマンスのボトルネックが発生する可能性があります。 インターフェイスを実装してパフォーマンスを向上させることができます。そのため、より効率的なキャッシュなどによって、プロパティの読み取りと書き込みをより迅速に行うことができます。 さらに、 IPropertyStorage と IPropertySetStorage を使用すると、 IStorage をサポートしていないエンティティのプロパティを操作できますが、一般に、ほとんどのアプリケーションでは操作されません。
このセクションのトピックは次のとおりです。
関連トピック