IPropertyPage::SetObjects 方法 (ocidl.h)

为属性页提供指向与此属性页关联的对象的指针数组。

当属性页收到对 IPropertyPage::Apply 的调用时,它必须通过任何合适的接口向这些对象发送值更改。 属性页必须查询这些接口。 如果对象不支持属性页所需的接口,则此方法可能会失败。

语法

HRESULT SetObjects(
  [in] ULONG    cObjects,
  [in] IUnknown **ppUnk
);

参数

[in] cObjects

ppUnk 指向的数组中的指针数。 如果此参数为 0,则属性页必须释放以前传递给此方法的任何指针。

[in] ppUnk

指向 IUnknown 接口指针数组的指针,其中每个指针标识受属性表影响的唯一对象,其中显示此 (以及其他) 属性页。 属性页必须缓存每个指针在当时调用 AddRef 的这些指针。 此指针数组与传递给 OleCreatePropertyFrameOleCreatePropertyFrameIndirect 以调用属性表的指针数组相同。

返回值

此方法可以返回标准返回值E_FAIL、E_INVALIDARG、E_OUTOFMEMORY和E_UNEXPECTED,以及以下值。

返回代码 说明
S_OK
属性页已成功保存所需的指针。
E_NOINTERFACE
ppUnk 中的某个对象不支持此属性页所需的接口,因此此属性页无法与其通信。
E_POINTER
ppUnk 中的地址无效。 例如,它可能为 NULL

注解

属性页需要保留此方法返回的指针或通过它们查询的其他指针。 如果保留这些特定的 IUnknown 指针,则属性页在缓存它们时必须通过每个指针调用 AddRef,直到使用 cObjects 等于 0 调用 SetObjects 为止。 此时,属性页必须通过每个指针调用 Release ,释放它保存的任何对象。

调用方必须在调用 IPropertyPage::Activate 之前为属性页提供这些对象,并在停用页面或完全释放对象时使用零调用 SetObjects 作为参数。 每次调用具有非 NULLppUnk 参数的 SetObjects 必须与 cObjects 参数中具有 0 的 SetObjects 调用匹配。

实施者说明

E_NOTIMPL 不是有效的返回值。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 ocidl.h

另请参阅

IPropertyPage