OleCreatePropertyFrameIndirect 函数 (olectl.h)

基于包含参数的 OCPFIPARAMS) 结构 (创建属性框架,即属性表对话框,而不是在调用 OleCreatePropertyFrame 时指定单独的参数。

语法

WINOLECTLAPI OleCreatePropertyFrameIndirect(
  [in] LPOCPFIPARAMS lpParams
);

参数

[in] lpParams

指向调用方分配的结构的指针,该结构包含对话框的创建参数。

返回值

此函数支持标准返回值E_INVALIDARG、E_OUTOFMEMORY和E_UNEXPECTED,以及以下值:

返回代码 说明
S_OK
对话框已调用并成功操作。
E_POINTER
lpParams 中的地址无效。 例如,它可能为 NULL

注解

除了 cbStructSize (结构) 和 dispIDInitialProperty 的大小外, OCPFIPARAMS 结构的所有成员都具有与 OleCreatePropertyFrame 的参数相同的语义。 当 dispIDInitialProperty DISPID_UNKNOWN时,两个函数的行为是相同的。

dispIDInitialPropertyPropertyProperty结合 IPerPropertyBrowsingIPropertyPage2 允许调用方指定当对话框可见时应突出显示的单个属性。 使用 OleCreatePropertyFrame 时,此功能不可用。 若要确定最初要显示的页面和属性,属性框架将执行以下操作:

  1. 调用 (*ppUnk) -QueryInterface> (IID_IPerPropertyBrowsing...) 以获取指向第一个对象的接口指针。
  2. 调用 IPerPropertyBrowsing::MapPropertyToPage (dispIDInitialProperty, ...) 以确定哪个页 CLSID 包含要突出显示的属性。 要为其调用此帧的所有对象都必须支持框架中显示的属性集。
  3. 创建对话框后,使用 IPropertyPage::Activate 激活步骤 2 中检索到的 CLSID 的属性页。
  4. 属性帧查询 IPropertyPage2 的活动页。
  5. 如果成功,帧将调用 IPropertyPage2::EditProperty (dispIDInitialProperty) 以突出显示该对话框中的正确字段。

要求

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

另请参阅

OCPFIPARAMS

OleCreatePropertyFrame