次の方法で共有


StgCreatePropSetStg 関数 (coml2api.h)

StgCreatePropSetStg 関数は、指定されたストレージ オブジェクトからプロパティ セットストレージオブジェクトを作成します。 プロパティ セット ストレージ オブジェクトは、 IPropertySetStorage インターフェイスのシステム提供のスタンドアロン実装を提供します。

構文

HRESULT StgCreatePropSetStg(
  [in]  IStorage            *pStorage,
        DWORD               dwReserved,
  [out] IPropertySetStorage **ppPropSetStg
);

パラメーター

[in] pStorage

または を含むストレージ オブジェクトへのポインターには、1 つ以上のプロパティ セットが含まれます。

dwReserved

今後使用するために予約されています。0 にする必要があります。

[out] ppPropSetStg

プロパティ セット ストレージ オブジェクトへのインターフェイス ポインターを受け取る IPropertySetStorage* ポインター変数へのポインター。

戻り値

この関数は、標準の戻り値 E_INVALIDARG と次の値をサポートしています。

注釈

StgCreatePropSetStg 関数は、pStorage パラメーターで指定された IStorage インターフェイスに対して動作する IPropertySetStorage インターフェイスを作成します。 IPropertySetStorage インターフェイスの後続の呼び出しでは、この IStorage 自体は変更されません。

StgCreatePropSetStg、pStorage で指定されたストレージ オブジェクトに対して IUnknown::AddRef を呼び出します。 呼び出し元は、Release を呼び出して不要になったオブジェクトを 解放する必要があります。

次のコード例は、この関数がストレージ オブジェクト内にプロパティ セットを作成する方法を示しています。

IPropertyStorage*
CreatePropertySetInStorage( IStorage *pStg, const FMTID &fmtid )
{
    HRESULT hr = S_OK;
    IPropertySetStorage *pPropSetStg = NULL;
    IPropertyStorage *pPropStg = NULL;
 
    try
    {
        hr = StgCreatePropSetStg( pStg, 0, &pPropSetStg );
        if( FAILED(hr) ) throw L"Failed StgCreatePropSetStg (%08x)";
 
        hr = pPropSetStg->Create( fmtid, NULL,
            PROPSETFLAG_DEFAULT,
            STGM_CREATE | STGM_READWRITE | STGM_SHARE_EXCLUSIVE,
            &pPropStg );
        if( FAILED(hr) ) 
            throw L"Failed IPropertySetStorage::Create (%08x)";
 
        // Success. The caller must now call Release on both
        // pPropSetStg and pStg.
 
    }
    catch( const WCHAR *pwszError )
    {
        wprintf( L"Error: %s (%08x)\n", pwszError, hr );
    }
 
    if( NULL != pPropSetStg )
        pPropSetStg->Release();
 
    return( pPropStg );
}

要件

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

こちらもご覧ください

IPropertySetStorage-スタンドアロン実装

サンプル

StgCreatePropSetStg サンプル