Using Structured StorageManaging Property Sets

プロパティセットの管理

永続的なプロパティセットは、関連する情報の断片をプロパティの形式として格納します。 各々のプロパティセットは、FMTID や、プログラムがプロパティセットを識別し、それにアクセスするためのグローバル一意識別子(GUID) によって識別されます。 この識別子を通して、プログラムはこのセットに含まれているプロパティを解釈します。 プロパティセットの例としては、ワードプロセッサの文字フォーマットや、ドロープログラムの要素のレンダリング属性についてのプロパティなどがあげられます。

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

IPropertyStorage のインスタンスを作成、または開く時は、そのインタフェースを開くときのストレージモードを指定しなければならないため、IStorageIStream をサポートするオブジェクトを開く時と同様になります。 IStorage では、トランザクションモード / 読み込み書き取りモード / 共有モードが含まれます。

IPropertySetStorage.Create() を呼び出してプロパティセットを作成するとき、 プロパティセットをシンプルにするか非シンプルにするかを指定します。 シンプルプロパティセットは、プロパティセットストリームに完全に書き込みが可能な、256キロバイトを超えられないサイズの制限のある型を保存します。 ただし、プロパティセットに大きな情報を格納する必要がある場合、非シンプルなプロパティセットを指定する事ができます。 この場合、ストレージまたはストリームオブジェクトへのポインタだけを指定する型を一つ、または複数使用できます。 これらの型は VT_STREAM / VT_STREAMED_OBJECT / VT_STORAGE / VT_STORED_OBJECT です。 これらのプロパティが保存されたデータには 256KB プロパティセットのサイズ制限はありません。 しかし、名前の様なプロパティに関するデータにはこの制限が適用されます。 また、トランザクション更新を必要とする場合、プロパティセットは非シンプルにしなければなりません。 当然、これらの型を開くには、ポインタを保持しているストリームまたはストレージオブジェクトを開く必要があるため、パフォーマンスにペナルティがあります。

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

各々のプロパティセットは、Managing Properties に記載されているような論理的に接続されたプロパティのグループを主として構成されています。

COM プロパティセットについての詳しい情報は以下を参照して下さい。