IPropertySetStorage インターフェイス (propidl.h)

IPropertySetStorage インターフェイスは、IPropertyStorage インターフェイスのインスタンスをサポートするプロパティ セット ストレージを作成、開き、削除、および列挙します。 IPropertyStorage インターフェイスは、プロパティ ストレージ サブオブジェクト内の 1 つのプロパティ セットを管理します。IPropertySetStorage インターフェイスは、このようなプロパティ セットのグループのストレージを管理します。 どのファイル システム エンティティでも、COM 複合ファイル オブジェクトに現在実装されている IPropertySetStorage をサポートできます。

IPropertySetStorage インターフェイスと IPropertyStorage インターフェイスは、これらのセットが IStorage をサポートするストレージ オブジェクトに存在するかどうかに関係なく、プロパティ セットを作成および管理するための統一された方法を提供します。 IStorage (構造化ファイルや複合ファイルなど) または IStream をサポートするオブジェクトを介して呼び出された場合、作成されるプロパティ セットは COM プロパティ セット形式に準拠します。詳細については、「構造化ストレージ シリアル化されたプロパティ セット形式」を参照してください。 同様に、 IStorage を使用して COM プロパティ セット形式に書き込まれたプロパティは 、IPropertySetStorageIPropertyStorage を通じて表示されます。

IPropertySetStorage メソッドは、書式識別子 (FMTID) と呼ばれるグローバル一意識別子 (GUID) を使用してプロパティ セットを識別します。 プロパティ セットの FMTID は、プロパティ セット内のプロパティ識別子、その意味、および値に対する制約を識別します。 プロパティ セットの FMTID には、そのプロパティ セットを操作する手段も用意されている必要があります。 1 つのプロパティ ストレージ内に一度に存在できるのは、特定の FMTID のインスタンスが 1 つだけです。

継承

IPropertySetStorage インターフェイスは、IUnknown インターフェイスから継承されます。 IPropertySetStorage には、次の種類のメンバーもあります。

メソッド

IPropertySetStorage インターフェイスには、これらのメソッドがあります。

 
IPropertySetStorage::Create

プロパティ セットのストレージ オブジェクトに新しいプロパティ セットを作成して開きます。
IPropertySetStorage::D elete

Delete メソッドは、プロパティ セット ストレージ オブジェクトに含まれるプロパティ セットの 1 つを削除します。
IPropertySetStorage::Enum

Enum メソッドは、このプロパティ セット ストレージに格納されているプロパティ セットに関する情報を含む列挙子オブジェクトを作成します。 戻り値の場合、このメソッドは列挙子オブジェクトの IEnumSTATPROPSETSTG ポインターへのポインターを提供します。
IPropertySetStorage::Open

プロパティ セット ストレージ オブジェクトに含まれるプロパティ セットを開きます。

注釈

メモ 上記の DocumentSummaryInformation および UserDefined プロパティ セットには例外があります。 このプロパティ セットは、1 つの基になるストリームに 2 つのプロパティ セット セクションがある可能性がある点で一意です。 このプロパティ セットについては、「 DocumentSummaryInformation および UserDefined プロパティ セット」を参照してください。 最初のセクションは DocumentSummaryInformation プロパティ セットです。 2 番目のセクションは、UserDefined プロパティ セットです。 各セクションは、一意の書式識別子 (FMTID) によって識別されます。 たとえば、プロパティ セットFMTID_DocSummaryInformation FMTID_UserDefinedします。 これら 2 つのプロパティ セットが 1 つのストリームに存在できることは、 IPropertySetStorage インターフェイスの動作に影響します。

UserDefined プロパティ セットを作成するために IPropertySetStorage::Create が呼び出されると、最初のセクションが自動的に作成されます。 FMTID_UserDefinedPropertiesが作成されたら、FMTID_DocSummaryInformationを作成する必要はありませんが、 IPropertySetStorage::Open を呼び出して開くことができます。 最初のセクションを作成しても、2 番目のセクションは自動的に作成されず、両方のセクションを同時に開くことはできません。

IPropertySetStorage::D elete を呼び出して最初のセクションを削除すると、両方のセクションが削除されます。 つまり、 IPropertySetStorage::D elete を FMTID_DocSummaryInformation で呼び出すと、そのセクションと FMTID_UserDefinedProperties セクションの両方が削除されます。 ただし、2 番目のセクションを削除しても、最初のセクションは自動的に削除されません。

IPropertySetStorage::Enum を使用してプロパティ セットを列挙する場合、UserDefined プロパティ セットは列挙されません。

 

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー propidl.h (Objbase.h を含む)

こちらもご覧ください

EnumAll サンプル

IEnumSTATPROPSETSTG

IPropertySetStorage-Compound ファイルの実装

IPropertySetStorage-NTFS ファイル システムの実装

IPropertySetStorage-スタンドアロン実装

IPropertyStorage

PROPVARIANT

STATPROPSETSTG

サンプル