IPropertyStorage

概要

IPropertyStorage インタフェースは、シングルプロパティセットの永続的なプロパティを管理します。 永続的なプロパティは、プロパティセット内に永続的に格納可能な情報で構成されており、ファイルに関連付けられたサマリ情報のようなものです。 これは、Controls や Automation に関連付けられたランタイムプロパティとは対照的で、システム動作に作用させるために使用することができます。 永続的なプロパティセットを作成または開くには、IPropertySetStorage インタフェースのメソッドを使用します。 IPropertySetStorage インタフェースのインスタンスは、0 個以上の IPropertyStorage インスタンスを管理することができます。

プロパティセット内のそれぞれのプロパティは、プロパティ識別子 (ID) で識別され、4バイトの ULONG 値で設定されます。 また、IPropertyStorage インタフェースを通して、プロパティ名を文字列で割り当てることもできます。

プロパティ ID は、 自動的に割り当てられたディスパッチ識別子( DISPID )の名前タグとは異なります。 汎用プロパティ ID 値として IPropertyStorageは、0 や 1 を使用する事を禁止されていますが、IDispatch では制限が存在しないことが、違いの一つです。 さらに、IPropertyStorageIDispatch によって使用される可能性があるプロパティ値のデータ型の間には意味のある重複はありますが、このプロパティセットは同一でありません。 IPropertyStorage メソッドで使用される永続的なプロパティデータ型は、PROPVARIANT 構造体で定義されています。

C#



メンバ

Commit()

IStorage.Commit() のように、プロパティストレージオブジェクトへの変更を破棄または確定します。

DeleteMultiple()

プロパティセット内のプロパティを削除します。

DeletePropertyNames()

プロパティ識別子を使用して名前文字列を削除します。

Enum()

プロパティセット内にプロパティ列挙体へのポインタを作成し取得します。

ReadMultiple()

プロパティセットのプロパティ値を読み取ります。

ReadPropertyNames()

指定されたプロパティ識別子に対応する文字列名を取得します。

Revert()

プロパティストレージがトランザクションモードで開かれている場合、最終コミット以降のすべての変更を破棄します。

SetClass()

プロパティセットに、CLSID を割り振ります。

SetTimes()

変更時刻、作成時刻、アクセス時刻をプロパティセットに設定します。

Stat()

プロパティセットについての統計情報を回収します。

WriteMultiple()

プロパティセット内にプロパティ値を書き込みます。

WritePropertyNames()

プロパティ識別子対応する文字列名を作成または変更します。

詳細

When to implement

オブジェクト内にプロパティを格納したい場合、IPropertyStorage を実装します。 COM 複合ファイル実装を使用する場合、複合ファイルオブジェクトは、IPropertySetStorage 実装に内包されている StgCreateDocfile() の呼び出しを通して生成され、 この複合ファイルオブジェクトは、IPropertyStorageの実装によってアクセスが許可されます。 あるインタフェース実装のポインタ( たとえば IStorage )を取得している場合、IPropertySetStorage インタフェース実装へのポインタを取得するための QueryInterface を呼び出すことができ、 それから、指定されたプロパティセットを管理する IPropertyStorage インタフェースへのポインタを取得するのに適切な、Open() または Create() メソッドを呼び出すことができます。

IPropertyStorage インスタンスは、IUnknown インタフェースから継承されます。

さらに

指定されたプロパティセット内に格納されているプロパティを作成と管理をするために IPropertyStorage を使用します。

必要環境

クライアント Windows 2000 Professional [desktop apps | Windows Store apps]
サーバー Windows 2000 Server [desktop apps | Windows Store apps]
ヘッダ Propidl.h (include Objbase.h)
IDL Propidl.idl
LIB Uuid.lib
DLL Ole32.dll
IID IID_IPropertyStorage = 00000138-0000-0000-C000-000000000046

参照

公式の情報は aa379968 を参照して下さい。