プロパティ セットの管理

永続的なプロパティ セットには、関連するデータがプロパティとして含まれています。 各プロパティ セットは、FMTID と、アプリケーションがプロパティ セットにアクセスしてプロパティ セットを識別できるようにするグローバル一意識別子 (GUID) で識別されます。 この識別により、アプリケーションはセットに含まれるプロパティを解釈します。

たとえば、ワード プロセッサの文字書式プロパティや、描画プログラム内の要素のレンダリング属性はプロパティ セットです。

COM は、プロパティ セットの管理を容易にするために IPropertySetStorage インターフェイスを定義します。 このインターフェイスのメソッドを使用して、新しいプロパティ セットを作成したり、既存のプロパティ セットを開いたり削除したりすることができます。 さらに、列挙子を作成し、その IEnumSTATPROPSETSTG インターフェイスへのポインターを提供するメソッドも提供します。 このインターフェイスのメソッドを呼び出して、オブジェクトの STATPROPSETSTG 構造体を列挙できます。これにより、オブジェクト上のすべてのプロパティ セットに関する情報が提供されます。

IPropertyStorage のインスタンスを作成または開くときは、インターフェイスを開くストレージ モードを指定する必要があるため、IStorage または IStream をサポートするオブジェクトを開くのと似ています。 IStorage の場合、これにはトランザクション モード、読み取り/書き込みモード、共有モードが含まれます。

IPropertySetStorage::Create を呼び出してプロパティ セットを作成する場合は、プロパティ セットを単純にするか、非単純にするかを指定します。 単純なプロパティ セットには、プロパティ セット ストリーム内で完全に書き込むことができる型が含まれています。これはサイズの制限を意図したもので、Windows NT 4.0 以前では 256 KB 以下、Windows 2000、Windows XP、Windows Server 2003 では 1 MB です。 ただし、プロパティ セットに大量の情報を格納する必要がある場合は、プロパティ セットを非シンプルに指定できます。 これにより、ストレージまたはストリーム オブジェクトへのポインターのみを指定する 1 つ以上の型を使用できます。 これらの型は、VT_STREAM、VT_STREAMED OBJECT、VT_STORAGE、VT_STORED_OBJECTです。

これらのプロパティに格納されているデータは、4.0 以前の 256 KB のプロパティ セット サイズ Windows NT制限、または Windows 2000、Windows XP、および Windows Server 2003 の 1 MB の制限に対してカウントされません。 ただし、プロパティに関するデータ (名前など) は適用されます。 また、トランザクション更新が必要な場合は、プロパティ セットが非シンプルである必要があります。 もちろん、これらの型を開くには、ポインターを持つストリームまたはストレージ オブジェクトを開く必要があるため、特定のパフォーマンス低下があります。

アプリケーションで複合ファイルを使用する場合は、COM で提供されるこれらのインターフェイスの実装を使用できます。これらのインターフェイスは、COM 複合ファイル ストレージ オブジェクトに実装されます。

各プロパティ セットは、「 プロパティの管理」で説明されているように、主に論理的に接続されたプロパティのグループで構成されます。

COM のプロパティ セットの詳細については、次を参照してください。