IPropertySetStorage::Open メソッド (propidl.h)

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

構文

HRESULT Open(
  [in]  REFFMTID         rfmtid,
  [in]  DWORD            grfMode,
  [out] IPropertyStorage **ppprstg
);

パラメーター

[in] rfmtid

開くプロパティ セットの書式識別子 (FMTID)。 プラットフォーム SDK の既知の FMTID と定義済みの FMTID の詳細については、「 定義済みのプロパティ セット形式識別子」を参照してください。

[in] grfMode

新しく作成されたプロパティ セットを開くアクセス モード。 これらのフラグは STGM 定数から取得されます。 このメソッドのコンテキストで使用できるフラグとその意味については、次の「解説」セクションで説明します。

[out] ppprstg

要求されたプロパティ ストレージ サブオブジェクトへのインターフェイス ポインターを受け取る IPropertyStorage ポインター変数へのポインター。

戻り値

このメソッドは、次に加えて、標準の戻り値E_UNEXPECTEDをサポートしています。

注釈

プロパティ セットを開くモードは、パラメーター grfMode で指定します。 これらのフラグは STGM 定数から取得されますが、この方法では、有効な値とその意味は次のようになります (これらのフラグ値の特定の組み合わせのみが有効です)。

意味
STGM_DIRECT 追加レベルのトランザクション入れ子なしでプロパティ セットを開きます。 これは既定値です (STGM_DIRECTもSTGM_TRANSACTEDも指定されていない場合の動作)。
STGM_TRANSACTED 追加のレベルのトランザクション入れ子でプロパティ セットを開きます (このプロパティ セットのストレージ オブジェクトでは、トランザクションが存在する場合はそれ以外)。 Transacted モードは、単一でないプロパティ セットでのみ使用できます。 プロパティ セットの変更は、このプロパティ セットストレージのトランザクションに表示される前に 、IPropertyStorage::Commit の呼び出しでコミットする必要があります。
STGM_READ 読み取りアクセス権を持つプロパティ セットを開きます。 プロパティ セットストレージには読み取り権限が必要です。
STGM_WRITE 書き込みアクセス権を持つプロパティ セットを開きます。 IPropertyStorage のすべての実装でこのモードがサポートされているわけではありません。
STGM_READWRITE 読み取りおよび書き込みアクセス権を持つプロパティ セットを開きます。 このフラグは、STGM_READとSTGM_WRITEの値のバイナリ OR ではないことに注意してください。
STGM_SHARE_DENY_NONE このプロパティ セット ストレージからのプロパティ セットの後続のオープンは、読み取りまたは書き込みアクセスを拒否されません。 (すべての実装では使用できません。)
STGM_SHARE_DENY_READ このプロパティ セット ストレージからのプロパティ セットの後続の開始は、読み取りアクセスが拒否されます。 すべての実装では使用できません。
STGM_SHARE_DENY_WRITE このプロパティ セット ストレージからのプロパティ セットの後続のオープンは、書き込みアクセスが拒否されます。 この値は通常、複数のユーザーによって開かれたオブジェクトの不要なコピーを作成しないように、トランザクション モードで使用されます。 つまり、STGM_TRANSACTEDが指定されていても、この値が指定されていない場合は、後続の開口部があるかどうかに関係なく、スナップショットが作成されます。 したがって、この値を指定することでパフォーマンスを向上させることができます。 すべての実装では使用できません。
STGM_SHARE_EXCLUSIVE このプロパティ セット ストレージからプロパティ セットを後続で開くことはできません。 この値は、STGM_SHARE_DENY_READおよびSTGM_SHARE_DENY_WRITE要素の単純なバイナリ OR ではないことに注意してください。
 

このメソッドには、基になる IStorage::OpenStream (単純なプロパティ セットの場合) または IStorage::OpenStorage (非単純プロパティ セットの場合) の制約が適用されます。 単純なプロパティ セットと単純でないプロパティ セットの詳細については、「プロパティ セットのストレージオブジェクトとStreamオブジェクト」を参照してください。 たとえば、 IPropertySetStorage-Compound File Implementation を使用する場合は、 grfMode パラメーターで STGM_SHARE_EXCLUSIVE を IPropertySetStorage::Open に指定する必要があります。 逆に、 IPropertySetStorage-スタンドアロン実装を使用する場合、 IPropertySetStorage::Open は呼び出し元指定 の IStorage に適用される制約の対象となります。

要件

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

こちらもご覧ください

EnumAll サンプル

IPropertySetStorage

IPropertySetStorage::Create

PROPVARIANT

サンプル

WriteRead サンプル