stgCreatePropSetStg 函数 (coml2api.h)

StgCreatePropSetStg 函数从指定的存储对象创建属性集存储对象。 属性集存储对象提供 系统提供的 IPropertySetStorage 接口的独立实现。

语法

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

参数

[in] pStorage

指向包含 或 将包含一个或多个属性集的存储对象的指针。

dwReserved

留待将来使用;必须为零。

[out] ppPropSetStg

指向 IPropertySetStorage* 指针变量的指针,该变量接收指向属性集存储对象的接口指针。

返回值

此函数支持标准返回值 E_INVALIDARG 以及以下内容:

注解

StgCreatePropSetStg 函数创建一个 IPropertySetStorage 接口,该接口将作用于 pStorage 参数指定的给定 IStorage 接口。 此函数本身不会修改此 IStorage ,尽管对 IPropertySetStorage 接口的后续调用可能会如此。

StgCreatePropSetStgpStorage 指定的存储对象调用 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 专业版 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows 2000 Server [桌面应用 |UWP 应用]
目标平台 Windows
标头 coml2api.h (包括 Propidl.h)
Library Ole32.lib
DLL Ole32.dll

另请参阅

IPropertySetStorage-独立实现

示例

StgCreatePropSetStg 示例