StgOpenPropStg 函数 (coml2api.h)

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

语法

HRESULT StgOpenPropStg(
  [in]  IUnknown         *pUnk,
  [in]  REFFMTID         fmtid,
  [in]  DWORD            grfFlags,
  [in]  DWORD            dwReserved,
  [out] IPropertyStorage **ppPropStg
);

参数

[in] pUnk

包含所请求属性集对象的存储或流对象的 IUnknown 接口的接口指针。

[in] fmtid

要打开的属性集的 FMTID。

[in] grfFlags

PROPSETFLAG 常量中的值。

[in] dwReserved

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

[out] ppPropStg

指向 IPropertyStorage* 指针变量的指针,该变量接收指向所请求属性集的接口指针。

返回值

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

注解

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

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

此函数类似于 IPropertySetStorage::Open 方法。 但是, StgOpenPropStg 添加了 pUnkgrfFlags 参数,包括 grfFlags 参数的 PROPSETFLAG_UNBUFFERED 值。 如果 IStorage 接口不支持 IPropertySetStorage 接口,或者想要使用 PROPSETFLAG_UNBUFFERED 值,请使用此函数而不是 Open 方法。 有关使用 PROPSETFLAG_UNBUFFERED 的详细信息,请参阅 PROPSETFLAG 常量

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

此函数从可再发行 iprop.dll 导出,它包含在具有 Service Pack 2 (SP2) 的 Windows NT 4.0 中,在 Windows 95 及更高版本中作为可再发行组件提供。 在 Windows 2000 中,导出到 Ole32.dll。 也可以在 Windows 2000 中将其导出到 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

StgCreatePropStg