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

Create メソッドは、プロパティ セットのストレージ オブジェクトに新しいプロパティ セットを作成して開きます。

構文

HRESULT Create(
  [in]  REFFMTID         rfmtid,
  [in]  const CLSID      *pclsid,
  [in]  DWORD            grfFlags,
  [in]  DWORD            grfMode,
  [out] IPropertyStorage **ppprstg
);

パラメーター

[in] rfmtid

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

[in] pclsid

このプロパティ セットの初期クラス識別子 CLSID へのポインター。 NULL を指定できます。この場合、すべてのゼロに設定されます。 CLSID は、プロパティ値へのプログラムによるアクセスを表示または提供するクラスの CLSID です。 そのようなクラスがない場合は、FMTID を使用することをお勧めします。

[in] grfFlags

PROPSETFLAG 定数の値。

[in] grfMode

新しく作成されたプロパティ セットを開くアクセス モード。次の「解説」セクションで説明するように、 STGM_Constantsの特定の値から取得されます。

[out] ppprstg

IPropertyStorage インターフェイス ポインターを受け取る出力変数へのポインター。

戻り値

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

注釈

IPropertySetStorage::Create は、このプロパティ セット ストレージ オブジェクトに含まれる新しいプロパティ セット サブオブジェクト ( IPropertyStorage インターフェイスをサポート) を作成して開きます。 プロパティ セットには、コード ページとロケール ID プロパティが自動的に含まれます。 これらは、それぞれ Unicode と現在のユーザーの既定値に設定されます。

grfFlags パラメーターは、PROPSETFLAG 定数から取得された値の組み合わせです。 この列挙体のPROPSETFLAG_ANSI値を使用する場合、コード ページは Unicode ではなく、現在のシステムの既定値に設定されます。

grfMode パラメーターは、新しく作成されたセットを開くアクセス モードを指定します。 このパラメーターの値は、次の表に示す値を追加した、IPropertySetStorage::OpengrfMode パラメーターと同じ値です。

意味
STGM_FAILIFTHERE 指定した fmtid パラメーターを持つ別のプロパティ セットが存在する場合、呼び出しは失敗します。 これは既定のアクションです。つまり、STGM_CREATEが指定されていない限り、STGM_FAILIFTHEREは暗黙的です。
STGM_CREATE 指定した fmtid パラメーターを持つ別のプロパティ セットが既に存在する場合は、削除され、この新しいプロパティに置き換えられます。
 

既定では、作成されたプロパティ セットは単純ですが、呼び出し元は grfFlags パラメーターにPROPSETFLAG_NONSIMPLE値を指定して、非単純プロパティ セットを要求できます。 単純なプロパティ セットと単純でないプロパティ セットの詳細については、「プロパティ セットのストレージ オブジェクトとStream オブジェクト」を参照してください。

このメソッドには、基になる IStorage::CreateStream (単純なプロパティ セットの場合) または IStorage::CreateStorage (非単純プロパティ セットの場合) の制約が適用されます。 たとえば、 IPropertySetStorage-Compound File Implementation を使用する場合は、 grfMode パラメーターで STGM_SHARE_EXCLUSIVE を IPropertySetStorage::Create に指定します。 逆に、 IPropertySetStorage-スタンドアロン実装を使用する場合、 IPropertySetStorage::Create は呼び出し元が指定した IStorage に適用される制約の対象となります。

要件

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

こちらもご覧ください

IPropertySetStorage

IPropertySetStorage::Open

PROPSETFLAG 定数

サンプル

StgCreatePropSetStg サンプル

WriteRead サンプル