StgCreatePropStg 函数 (coml2api.h)

StgCreatePropStg 函数在指定的存储或流对象中创建并打开属性集。 属性集提供 系统提供的 IPropertyStorage 接口的独立实现。

语法

HRESULT StgCreatePropStg(
  [in]  IUnknown         *pUnk,
  [in]  REFFMTID         fmtid,
  [in]  const CLSID      *pclsid,
  [in]  DWORD            grfFlags,
  [in]  DWORD            dwReserved,
  [out] IPropertyStorage **ppPropStg
);

参数

[in] pUnk

指向存储新属性集的存储或流对象上的 IUnknown 接口的指针。

[in] fmtid

要创建的属性集的 FMTID。

[in] pclsid

指向此属性集的初始 CLSID 的指针。 可以为 NULL,在这种情况下 ,pclsid 设置为所有零。

[in] grfFlags

PROPSETFLAG 常量中的值,用于确定属性集的创建和打开方式。

[in] dwReserved

保留;必须为零。

[out] ppPropStg

接收指向新属性集的接口指针的 IPropertyStorage* 指针变量的地址。

返回值

此函数支持E_INVALIDARG和E_UNEXPECTED的标准返回值,此外还支持以下值:

注解

StgCreatePropStg 创建并打开一个新的属性集,该属性集提供 系统提供的 IPropertyStorage 接口的独立实现。 新属性集包含在 pUnk 指定的存储或流对象中。 grfFlags 参数的值指示 pUnk 是指定存储对象还是流对象。 例如,如果设置了PROPSETFLAG_NONSIMPLE,则可以在存储对象上查询 pUnk 以查找 IStorage 接口。

在任一情况下,此函数都为包含属性集的存储或流对象调用 pUnk-AddRef>。 调用方有责任在不再需要对象时释放该对象。

此函数类似于 IPropertySetStorage::Create 方法。 但是, StgCreatePropStg 添加 pUnk 参数并支持 grfFlags 参数的PROPSETFLAG_UNBUFFERED值。 如果 IStorage 接口不支持 IPropertySetStorage 接口,或者想要使用 PROPSETFLAG_UNBUFFERED 值,请使用此函数而不是 Create 方法。 有关使用此PROPSETFLAG_UNBUFFERED枚举值的详细信息,请参阅 PROPSETFLAG 常量

属性集自动包含代码页和区域设置标识符 (ID) 属性。 它们分别设置为当前系统默认值和当前用户默认值。

grfFlags 参数是从 PROPSETFLAG 常量获取的值的组合。 支持PROPSETFLAG_UNBUFFERED的新枚举值。 有关详细信息,请参阅 PROPSETFLAG 常量

此函数从可再发行 Iprop.dll 导出,它包含在 Windows NT 4.0 中,Service Pack 2 (SP2) 及更高版本,在 Windows 95、Windows 98 及更高版本中作为可再发行组件提供。 在 Windows 2000 和 Windows XP 中,导出到 ole32.dll。 在 Windows 2000 和 Windows XP 中,也可以将其导出到 iprop.dll,但呼叫将转发到 ole32.dll。

要求

要求
最低受支持的客户端 Windows 2000 专业版 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows 2000 Server [桌面应用 |UWP 应用]
目标平台 Windows
标头 coml2api.h (包括 Propidl.h)
Library Ole32.lib
DLL Ole32.dll

另请参阅

IPropertySetStorage

IPropertySetStorage-独立实现

IPropertyStorage

IPropertyStorage-独立实现

PROPSETFLAG 常量

StgCreatePropSetStg

StgOpenPropStg