PFNCOMPROPSHEET 回调函数 (compstui.h)

ComPropSheet 函数由 CPSUI 提供,可由 CPSUI 应用程序调用, (包括打印机接口 DLL) 以生成属性表页。

语法

PFNCOMPROPSHEET Pfncompropsheet;

LONG_PTR Pfncompropsheet(
  [in] HANDLE hComPropSheet,
  [in] UINT Function,
  [in] LPARAM lParam1,
  [in] LPARAM lParam2
)
{...}

参数

[in] hComPropSheet

属性表 组父级的调用方提供的句柄。 有关更多信息,请参见下面的“备注”部分。

[in] Function

调用方提供的、CPSFUNC_前缀的 ComPropSheet 函数代码,用于指定要由 ComPropSheet 函数执行的操作。 请参阅下面的“备注”部分中的 ComPropSheet 函数代码表。

[in] lParam1

调用方提供的值,该值依赖于为 Function 提供的 ComPropSheet 函数代码。

[in] lParam2

调用方提供的值,该值依赖于为 Function 提供的 ComPropSheet 函数代码。

返回值

返回值取决于为 Function 提供的 ComPropSheet 函数代码

注解

当 CPSUI 调用应用程序的 PFNPROPSHEETUI 类型函数之一时,它会在PROPSHEETUI_INFO结构中传递指向 ComPropSheet 函数的指针。 PFNPROPSHEETUI 类型的函数可以调用 ComPropSheet 函数来描述 CPSUI 的属性表页。

打印机接口 DLL 可以从其 DrvDocumentPropertySheets 函数或其 DrvDevicePropertySheets 函数中调用 ComPropSheet

Microsoft UnidrvPscript 驱动程序的用户界面插件可以从其 IPrintOemUI::D ocumentPropertySheetsIPrintOemUI::D evicePropertySheets 方法中调用 ComPropSheet

hComPropSheet 参数指定的组父句柄可以是以下任一项:

ComPropSheet 函数代码

以下函数代码可以传递给 CPSUI 的 ComPropSheet 函数:

CPSFUNC_ADD_HPROPSHEETPAGE

CPSFUNC_ADD_HPROPSHEETPAGE函数代码会导致 ComPropSheet 函数添加通过调用 CreatePropertySheetPage 函数创建的属性表页。

参数 (CPSFUNC_ADD_HPROPSHEETPAGE)
  • hComPropSheet:组父句柄

  • 函数:调用方在调用 ComPropSheet 以添加属性表页时将此函数代码参数设置为CPSFUNC_ADD_HPROPSHEETPAGE

  • lParam1:属性表页的句柄,通过调用 CreatePropertySheetPage 函数获取

  • lParam2:未使用,必须为零

返回值 (CPSFUNC_ADD_HPROPSHEETPAGE)

如果操作成功, ComPropSheet 会将 CPSUI 句柄返回到添加的页面;否则,它将返回 NULL。

CPSFUNC_ADD_PCOMPROPSHEETUI

CPSFUNC_ADD_PCOMPROPSHEETUI函数代码会导致 ComPropSheet 函数添加一组由 COMPROPSHEETUI 结构描述的一个或多个属性表页。

参数
  • hComPropSheet:组父句柄

  • 函数:调用方在调用 ComPropSheet 以添加一个或多个属性表页集时将此函数代码参数设置为CPSFUNC_ADD_PCOMPROPSHEETUI

  • lParam1:指向 COMPROPSHEETUI 结构的指针

  • lParam2:指向 32 位位置的指针,用于接收添加的页数,如果失败,则返回ERR_CPSUI前缀的错误代码

返回值

如果操作成功, ComPropSheet 将返回已添加页集的句柄;否则,函数返回 NULL。

CPSFUNC_ADD_PFNPROPSHEETUI

CPSFUNC_ADD_PFNPROPSHEETUI函数代码会导致 ComPropSheet 函数调用指定的 PFNPROPSHEETUI 类型函数,该函数必须添加一组一个或多个属性表页。

参数 (CPSFUNC_ADD_PFNPROPSHEETUI)
  • hComPropSheet:组父句柄

  • 函数:调用方在调用 ComPropSheet 时将此函数代码参数设置为CPSFUNC_ADD_PFNPROPSHEETUI然后,ComPropSheet 调用指定的 PFNPROPSHEETUI 类型的函数来添加一组一个或多个属性表页。

  • lParam1:指向 PFNPROPSHEETUI 类型函数的指针

  • lParam2:传递给其 lParam 参数的 PFNPROPSHEETUI 类型函数的 32 位值

返回值 (CPSFUNC_ADD_PFNPROPSHEETUI)

如果操作成功, ComPropSheet 将返回已添加页集的句柄;否则,函数返回 NULL。

CPSFUNC_ADD_PROPSHEETPAGE

CPSFUNC_ADD_PROPSHEETPAGE函数代码会导致 ComPropSheet 函数添加由 PROPSHEETPAGE 结构描述的属性表页的类型。

参数 (CPSFUNC_ADD_PROPSHEETPAGE)
  • hComPropSheet:组父句柄

  • 函数:调用方在调用 ComPropSheet 以添加 PROPSHEETPAGE 结构描述的属性表页的类型时,将此函数代码参数设置为CPSFUNC_ADD_PROPSHEETPAGEComPropSheet 函数调用 CreatePropertySheetPage 函数,并传递 PROPSHEETPAGE 结构的地址来创建页面。

  • lParam1:指向 PROPSHEETPAGE 结构的指针

  • lParam2:未使用,必须为零

返回值 (CPSFUNC_ADD_PROPSHEETPAGE)

如果操作成功, ComPropSheet 会将 CPSUI 句柄返回到添加的页面;否则,它将返回 NULL。

CPSFUNC_DELETE_HCOMPROPSHEET

CPSFUNC_DELETE_HCOMPROPSHEET函数代码会导致 ComPropSheet 函数删除由 CPSUI 句柄指定的一组属性表页。

参数 (CPSFUNC_DELETE_HCOMPROPSHEET)
  • hComPropSheet:组父句柄

  • 函数:调用方在调用 ComPropSheet 以删除一组属性表页时将此函数代码参数设置为CPSFUNC_DELETE_HCOMPROPSHEET

  • lParam1:CPSUI 句柄,引用要删除的一组页面。 以前必须通过使用以下函数代码之一调用 ComPropSheet 获取此句柄:

    • CPSFUNC_ADD_HPROPSHEETPAGE

    • CPSFUNC_ADD_PCOMPROPSHEETUI

    • CPSFUNC_ADD_PFNPROPSHEETUI

    • CPSFUNC_ADD_PROPSHEETPAGE

    • CPSFUNC_INSERT_PSUIPAGE

  • lParam2:未使用,必须为零

返回值 (CPSFUNC_DELETE_HCOMPROPSHEET)

ComPropSheet 函数返回已删除的属性表页数。

CPSFUNC_DO_APPLY_CPSUI

CPSFUNC_DO_APPLY_CPSUI函数代码使 ComPropSheet 函数模拟PSN_APPLY通知消息的传递。

CPSUI 通过将CPSUICB_REASON_APPLYNOW原因传递给应用程序的_CPSUICALLBACK类型的回调函数来响应CPSFUNC_DO_APPLY_CPSUI函数代码。

参数 (CPSFUNC_DO_APPLY_CPSUI)
  • hComPropSheet:组父句柄

  • 函数:调用方在调用 ComPropSheet 以模拟PSN_APPLY通知消息的传递时,将此函数代码参数设置为CPSFUNC_DO_APPLY_CPSUI

  • lParam1:CPSUI 句柄,指向一组一个或多个属性表页。 通常,此句柄以前已使用 CPSFUNC_IGNORE_CPSUI_PSN_APPLY 函数代码指定为 ComPropSheet 的 lParam1 参数。

  • lParam2:此参数是以下位标志的任意组合:

    • APPLYCPSUI_NO_NEWDEF - 如果不希望更改撤消操作 (当前默认值) ,请设置此标志。 如果希望所有选项的当前值成为用于撤消操作的默认值,请清除此标志。

    • APPLYCPSUI_OK_CANCEL_BUTTON - 如果用户 (选择了“确定”或“取消”按钮,或者你想要) 模拟此活动,请设置此标志。 如果用户 (选择了“关闭”或“立即应用”按钮,或者你想要) 模拟此活动,请清除此标志。 如果代码设置为接收PSN_APPLY消息,则代码应检查 PSHNOTIFY 结构的 lParam 成员。 如果成员为零,则应清除此位。

返回值 (CPSFUNC_DO_APPLY_CPSUI)

如果操作成功, ComPropSheet 函数将返回非零值;否则,它将返回零,并且指定的页面将变为活动页。

如果使用 CPSFUNC_IGNORE_CPSUI_PSN_APPLY 函数代码来禁用 CPSUI 对PSN_APPLY通知消息的处理,则必须使用 CPSFUNC_DO_APPLY_CPSUI 函数代码来模拟PSN_APPLY消息的传递。 否则,无法获取对属性表页的用户更改。

CPSFUNC_GET_HPSUIPAGES

CPSFUNC_GET_HPSUIPAGES函数代码会导致 ComPropSheet 函数返回指向属性表页的 CPSUI 句柄数组。 这些句柄标识与指定组父句柄关联的子页。

若要使用此函数代码,请执行以下步骤:

  • 调用 ComPropSheet,指定 CPSFUNC_GET_PAGECOUNT 函数代码,以获取与指定组父组关联的子页数。

  • 分配足够的本地内存以包含每个页面的 HANDLE 结构。

  • 再次调用 ComPropSheet ,指定 CPSFUNC_GET_HPSUIPAGES 函数代码和本地分配的内存的地址,以获取 HANDLE 结构的数组。

参数 (CPSFUNC_GET_HPSUIPAGES)
  • hComPropSheet:组父句柄

  • 函数:调用方在调用 ComPropSheet 以检索 CPSUI 句柄数组时将此函数代码参数设置为CPSFUNC_GET_HPSUIPAGES

  • lParam1:指向 HANDLE 结构数组的指针

  • lParam2:lParam1 指向的 HANDLE 数组的大小

返回值 (CPSFUNC_GET_HPSUIPAGES)

ComPropSheet 函数返回 CPSUI 放入 HANDLE 数组的句柄数。

CPSFUNC_GET_PAGECOUNT

CPSFUNC_GET_PAGECOUNT函数代码导致 ComPropSheet 函数返回指定组父句柄的子页的属性表页数。

参数 (CPSFUNC_GET_PAGECOUNT)
  • hComPropSheet:组父句柄

  • 函数:调用方在调用 ComPropSheet 以返回子页计数时将此函数代码参数设置为CPSFUNC_GET_PAGECOUNT

  • lParam1:未使用,必须为零

  • lParam2:未使用,必须为零

返回值 (CPSFUNC_GET_PAGECOUNT)

ComPropSheet 函数返回计数的页数。

CPSFUNC_GET_PFNPROPSHEETUI_ICON

CPSFUNC_GET_PFNPROPSHEETUI_ICON函数代码导致 ComPropSheet 函数返回与一组属性表页关联的图标的句柄。 页面集必须以前由 PFNPROPSHEETUI 类型函数创建。

ComPropSheet 函数调用与指定页句柄关联的 PFNPROPSHEETUI 类型函数,并传递原因值PROPSHEETUI_REASON_GET_ICON。 然后,PFNPROPSHEETUI 类型函数调用 LoadImage 并提供 bylParam2 指定的图标大小来加载图标资源。

参数 (CPSFUNC_GET_PFNPROPSHEETUI_ICON)
  • hComPropSheet:组父句柄

  • 函数:调用方在调用 ComPropSheet 以检索与一组属性表页关联的图标的句柄时,将此函数代码参数设置为CPSFUNC_GET_PFNPROPSHEETUI_ICON

  • lParam1:引用一组属性表页的 CPSUI 句柄。 以前必须通过调用 ComPropSheetCPSFUNC_ADD_PFNPROPSHEETUI 函数代码来获取此句柄。

  • lParam2:指定两个 WORD 大小的值,表示图标的大小(以像素为单位)。 LOWORD 值为宽度,HIWORD 值为高度。 如果这些值为零,则使用SM_CXICON和SM_CYICON的系统指标。 有关详细信息,请参阅 GetSystemMetrics

返回值 (CPSFUNC_GET_PFNPROPSHEETUI_ICON)

如果操作成功, ComPropSheet 函数将返回图标句柄;否则返回 NULL。

CPSFUNC_IGNORE_CPSUI_PSN_APPLY

CPSFUNC_IGNORE_CPSUI_PSN_APPLY函数代码导致 ComPropSheet 函数禁用或重新启用 CPSUI 对PSN_APPLY通知消息的处理。

当用户选择属性表的“确定”或“取消”按钮时,系统会将PSN_APPLY通知消息发送到 CPSUI。 CPSUI 通过将 CPSUICB_REASON_APPLYNOW 原因传递给应用程序的_CPSUICALLBACK类型的回调函数来响应此消息。

如果禁用 CPSUI 对PSN_APPLY通知消息的处理,则必须使用 CPSFUNC_DO_APPLY_CPSUI 函数代码来模拟PSN_APPLY消息的传递。 否则,无法获取对属性表页的用户更改。

如果未使用 CPSFUNC_IGNORE_CPSUI_PSN_APPLY 函数代码,则默认启用 CPSUI 对PSN_APPLY通知消息的处理。

参数 (CPSFUNC_IGNORE_CPSUI_PSN_APPLY)
  • hComPropSheet:组父句柄

  • 函数:调用方在调用 ComPropSheet 以禁用或重新启用 CPSUI 对PSN_APPLY通知消息的处理时,将此函数代码参数设置为CPSFUNC_IGNORE_CPSUI_PSN_APPLY

  • lParam1:引用一个或多个属性表页集的 CPSUI 句柄。 此句柄必须以前是通过调用 ComPropSheet 获取的,其函数代码为 CPSFUNC_ADD_PCOMPROPSHEETUI,或者函数代码 为 CPSFUNC_INSERT_PSUIPAGE ,插入类型 为 PSUIPAGEINSERT_PROPSHEETPAGE

  • lParam2:任何非零值都禁用 CPSUI 传递 CPSUICB_REASON_APPLYNOW 原因。 零值重新允许传递 CPSUICB_REASON_APPLYNOW 原因。

返回值 (CPSFUNC_IGNORE_CPSUI_PSN_APPLY)

如果操作成功, ComPropSheet 函数将返回非零值;否则返回零。

CPSFUNC_INSERT_PSUIPAGE

CPSFUNC_INSERT_PSUIPAGE函数代码导致 ComPropSheet 函数在特定位置插入一组属性表页。

参数 (CPSFUNC_INSERT_PSUIPAGE)
  • hComPropSheet:组父句柄

  • 函数:调用方在调用 ComPropSheet 以在特定位置插入一组属性表页时将此函数代码参数设置为CPSFUNC_INSERT_PSUIPAGE

  • lParam1:指定一组一个或多个属性表页的句柄。 新页面将插入这些页面之前或之后,具体取决于 lParam2 指向的INSERTPSUIPAGE_INFO结构的 Mode 成员。 以前必须通过使用以下函数代码之一调用 ComPropSheet 来获取此句柄:

    • CPSFUNC_ADD_HPROPSHEETPAGE

    • CPSFUNC_ADD_PCOMPROPSHEETUI

    • CPSFUNC_ADD_PFNPROPSHEETUI

    • CPSFUNC_ADD_PROPSHEETPAGE

    • CPSFUNC_INSERT_PSUIPAGE

  • lParam2:指向 INSERTPSUIPAGE_INFO 结构的指针,描述应插入新页面的位置和方式

返回值 (CPSFUNC_INSERT_PSUIPAGE)

如果操作成功, ComPropSheet 函数将返回插入的页集的句柄;否则,函数将返回 NULL。

CPSFUNC_LOAD_CPSUI_ICON

CPSFUNC_LOAD_CPSUI_ICON函数代码会导致 ComPropSheet 函数加载 CPSUI 提供的图标资源。

CPSUI 调用 LoadImage 以加载指定的图标资源。

参数 (CPSFUNC_LOAD_CPSUI_ICON)
  • hComPropSheet:组父句柄

  • 函数:调用方在调用 ComPropSheet 以加载 CPSUI 提供的图标资源时将此函数代码参数设置为CPSFUNC_LOAD_CPSUI_ICON

  • lParam1:要加载的 CPSUI 提供的图标的资源标识符。 这必须是 Compstui.h 中定义的IDI_CPSUI前缀标识符。

  • lParam2:指定两个 WORD 大小的值,表示图标的大小(以像素为单位)。 LOWORD 值为宽度,HIWORD 值为高度。 如果这些值为零,则使用SM_CXICON和SM_CYICON的系统指标。 有关详细信息,请参阅 GetSystemMetrics

返回值 (CPSFUNC_LOAD_CPSUI_ICON)

如果操作成功, ComPropSheet 函数将返回图标句柄;否则返回 NULL。

CPSFUNC_LOAD_CPSUI_STRING

CPSFUNC_LOAD_CPSUI_STRING函数代码导致 ComPropSheet 函数加载 CPSUI 提供的字符串资源。

ComPropSheet 函数调用 LoadString] (/windows/win32/api/winuser/nf-winuser-loadstringw) 函数来加载指定的字符串。

参数 (CPSFUNC_LOAD_CPSUI_STRING)
  • hComPropSheet:组父句柄

  • 函数:调用方在调用 ComPropSheet 以加载 CPSUI 提供的字符串资源时将此函数代码参数设置为CPSFUNC_LOAD_CPSUI_STRING

  • lParam1:指向调用方分配的缓冲区的 LPSTR 类型的指针,将在其中放置 HIWORD (lParam2) 指定的 CPSUI 提供的字符串

  • lParam2:包含以下两个调用方提供的值:

    • LOWORD (lParam2) 。 lParam1 指向的缓冲区的大小(以字节为单位)。

    • HIWORD (lParam2) 。 要加载的 CPSUI 提供的字符串的资源标识符。 这必须是 Compstui.h 中定义的IDS_CPSUI前缀标识符。

返回值 (CPSFUNC_LOAD_CPSUI_STRING)

如果操作成功, ComPropSheet 函数将返回字符串的长度。 如果指定了无效的资源标识符,则该函数返回零。 如果 lParam1 为 NULL 或 LOWORD (lParam2) 为零,则该函数返回 -1。

CPSFUNC_QUERY_DATABLOCK

CPSFUNC_QUERY_DATABLOCK函数代码会导致 ComPropSheet 函数检索以前使用 CPSFUNC_SET_DATABLOCK 函数代码存储的调用方提供的数据块。

通常,当函数的 CPSUICBPARAM 结构包含 CPSUICB_REASON_SETACTIVE 的 Reason 值时,_CPSUICALLBACK类型的回调 函数 (使用此 函数代码,) 以在当前页变为非活动状态之前检索与另一页关联的值。

参数 (CPSFUNC_QUERY_DATABLOCK)
  • hComPropSheet:组父句柄

  • 函数:调用方在调用 ComPropSheet 以检索调用方提供的数据块时将此函数代码参数设置为CPSFUNC_QUERY_DATABLOCK

  • lParam1:指向 CPSUIDATABLOCK 结构的指针,该结构标识要接收请求的数据块的缓冲区的大小和位置

  • lParam2:DWORD 大小的标识符值,用于标识请求的 CPSUIDATABLOCK 结构。 此值必须在之前使用 CPSFUNC_SET_DATABLOCK 函数代码对 ComPropSheet 的调用中指定。

返回值 (CPSFUNC_QUERY_DATABLOCK)

如果操作成功, ComPropSheet 函数将返回一个值,该值表示检索到的数据块的大小。 如果 lParam1 为 NULL,或者如果提供的 CPSUIDATABLOCK 结构的任何成员的值为零, 则 ComPropSheet 将返回存储数据块所需的大小。 如果发生错误,函数将返回小于或等于零的值。

CPSFUNC_SET_DATABLOCK

CPSFUNC_SET_DATABLOCK函数代码会导致 ComPropSheet 函数存储调用方提供的数据块。 可以使用此函数代码将属性表页的相关信息提供给其他页面。

通常,当函数的 CPSUICBPARAM 结构包含 reason 值为 (CPSUICB_REASON_KILLACTIVE) 时,_CPSUICALLBACK类型的回调函数使用此函数代码,以在页面变为非活动状态之前保存与页面关联的值。

参数 (CPSFUNC_SET_DATABLOCK)
  • hComPropSheet:组父句柄

  • 函数:调用方在调用 ComPropSheet 以存储调用方提供的数据块时将此函数代码参数设置为CPSFUNC_SET_DATABLOCK

  • lParam1:指向描述要存储的数据块的 CPSUIDATABLOCK 结构的指针

  • lParam2:调用方定义的 DWORD 大小的标识符值。 它用于在使用 CPSFUNC_QUERY_DATABLOCK 函数代码对 ComPropSheet 的后续调用中标识提供的 CPSUIDATABLOCK 结构。

返回值 (CPSFUNC_SET_DATABLOCK)

如果操作成功, ComPropSheet 函数将返回一个值,该值表示存储的字节数;否则,它将返回小于或等于零的值。

CPSFUNC_SET_DMPUB_HIDEBITS

CPSFUNC_SET_DMPUB_HIDEBITS函数代码会导致 ComPropSheet 函数“隐藏”指定的一组文档属性选项,以便不显示它们。

如果要为一个或多个文档属性表选项定义 OPTITEM 结构,但不希望这些选项可供用户修改,则可以使用 CPSFUNC_SET_DMPUB_HIDEBITS 函数代码。 必须使用 COMPROPSHEETUI 结构定义属性表页,并且结构的 pDlgPage 成员必须 CPSUI_PDLGPAGE_DOCPROPCPSUI_PDLGPAGE_ADVDOCPROP

如果使用 CPSFUNC_SET_DMPUB_HIDEBITS 函数代码,则必须先将它指定给 ComPropSheet ,然后才能使用 CPSFUNC_ADD_PCOMPROPSHEETUICPSFUNC_INSERT_PSUIPAGE 函数代码来创建页面。

参数 (CPSFUNC_SET_DMPUB_HIDEBITS)
  • hComPropSheet:组父句柄

  • 函数:调用方在调用 ComPropSheet 以“隐藏”指定的文档属性选项集时将此函数代码参数设置为CPSFUNC_SET_DMPUB_HIDEBITS

  • lParam1:指向位数组的指针,该数组指示要隐藏的选项。 必须使用 MAKE_DMPUB_HIDEBIT ( DMPub) 宏创建此数组,其中 DMPub 是一个或多个DMPUB_前缀常量的 OR 组合。 OPTITEM 结构的说明中列出了DMPUB_前缀常量。 宏和常量在 Compstui.h 中定义。

  • lParam2:未使用,必须为零

返回值 (CPSFUNC_SET_DMPUB_HIDEBITS)

如果操作成功, ComPropSheet 函数将返回为 lParam1 指定的值;否则返回零。

CPSFUNC_SET_FUSION_CONTEXT

CPSFUNC_SET_FUSION_CONTEXT为指定页面设置 Fusion 激活上下文。

当页面即将创建或插入且未在其 PROPSHEETPAGE 结构中指定激活上下文时,将在父级的页面激活上下文中创建该激活上下文。

如果未设置父级的激活上下文,则 Compstui.dll 查找父级的父级,直到达到顶级父级,或者直到找到正确设置了激活上下文的父级。

如果父级都没有设置激活上下文,则 Compstui.dll 将不会在 PROPSHEETPAGE 结构中指定激活上下文。 这意味着页面将在 PropertySheet 函数的调用方激活上下文中创建。

参数 (CPSFUNC_SET_FUSION_CONTEXT)
  • hComPropSheet:组父句柄

  • 函数:调用方在调用 ComPropSheet 以设置指定页面的 Fusion 激活上下文时,将此函数代码参数设置为 CPSFUNC_SET_FUSION_CONTEXT

  • lParam1:指定 Fusion 上下文的句柄。 Compstui.dll 复制句柄,将其附加到其内部结构,以便调用方没有保留句柄的义务。 Compstui.dll 删除 Compstui.dll 句柄时释放传入的上下文句柄。

  • lParam2:未使用,必须为零

返回值 (CPSFUNC_SET_FUSION_CONTEXT)

如果操作成功, ComPropSheet 函数将返回大于零的值。 否则, ComPropSheet 返回小于或等于零的值。 有关错误的信息,请使用 GetLastError 函数。

CPSFUNC_SET_HSTARTPAGE

CPSFUNC_SET_HSTARTPAGE函数代码导致 ComPropSheet 函数将指定的属性表页标记为关联属性表的首页。 如果当前正在显示属性表,则指定的页面将成为活动页。

参数 (CPSFUNC_SET_HSTARTPAGE)
  • hComPropSheet:组父句柄

  • 函数:调用方将此函数代码参数设置为 CPSFUNC_SET_HSTARTPAGE ,当调用 ComPropSheet 将指定的属性表页标记为关联属性表的首页时

  • lParam1:调用方提供的 CPSUI 页句柄,以前是通过使用以下函数代码之一调用 ComPropSheet 获取的:

    • CPSFUNC_ADD_HPROPSHEETPAGE

    • CPSFUNC_ADD_PCOMPROPSHEETUI

    • CPSFUNC_ADD_PFNPROPSHEETUI

    • CPSFUNC_ADD_PROPSHEETPAGE

    • CPSFUNC_INSERT_PSUIPAGE

    如果句柄表示属于 hComPropSheet 指定的组的单个页面,则 CPSUI 会将此页设置为顶部页面。

    如果句柄表示组父句柄 (看到 CPSFUNC_INSERT_PSUIPAGE) ,则 lParam2 表示该组页面的从零开始的索引,由索引表示的页面将成为顶部页。

  • lParam2:如果 lParam1 表示组父句柄,则此调用方提供的值是该组页面的从零开始的索引。 如果 lParam1 表示属于 hComPropSheet 指定的组的单个页面,则不使用此参数。 如果 lParam1 指定的句柄是使用 CPSFUNC_ADD_PCOMPROPSHEETUI 函数代码获取的,并且关联的 COMPROPSHEETUI 结构的 pDlgPage 成员设置为 CPSUI_PDLGPAGE_DOCPROP,则可以为 lParam2 指定以下值之一:

    • SSP_STDPAGE1 - 使布局页面成为顶部页面。

    • SSP_STDPAGE2 - 使“纸张/质量”页成为顶部页面。

    • SSP_TVPAGE - 将“高级”页面设为顶部页面。

返回值 (CPSFUNC_SET_HSTARTPAGE)

如果操作成功, ComPropSheet 函数将返回为 lParam1 指定的值;否则返回零。

CPSFUNC_SET_PSUIPAGE_ICON

CPSFUNC_SET_PSUIPAGE_ICON函数代码导致 ComPropSheet 函数添加、替换或删除分配给属性表页选项卡的图标。

如果 lParam2 包含图标句柄,并且当前正在显示 lParam1 指定的页面,则 CPSUI 会将该图标添加到指定页面的选项卡中。如果已将图标分配给页面,则旧图标将替换为新图标。 如果 lParam2 为零,则删除当前图标 (是否存在) 。

对于使用 CPSFUNC_SET_PSUIPAGE_ICON 函数代码指定的所有图标,CPSUI 将图像大小设置为 16 x 16 像素。

应通过调用 LoadImage 获取图标句柄。

参数 (CPSFUNC_SET_PSUIPAGE_ICON)
  • hComPropSheet:组父句柄

  • 函数:调用方调用 ComPropSheet 以添加、替换或删除分配给属性表页选项卡的图标时,将此函数代码参数设置为CPSFUNC_SET_PSUIPAGE_ICON

  • lParam1:调用方提供的 CPSUI 页句柄,以前是通过使用以下函数代码之一调用 ComPropSheet 获取的:

    • CPSFUNC_ADD_HPROPSHEETPAGE

    • CPSFUNC_ADD_PROPSHEETPAGE

    • 将 INSERTPSUIPAGE_INFO 结构的 Type 成员设置为 PSUIPAGEINSERT_HPROPSHEETPAGE 或 PSUIPAGEINSERT_PROPSHEETPAGE) CPSFUNC_INSERT_PSUIPAGE (

  • lParam2:调用方提供的图标句柄。 可以将此参数设置为零以删除当前图标

返回值 (CPSFUNC_SET_PSUIPAGE_ICON)

如果操作成功, ComPropSheet 函数将返回 1。 如果遇到错误,或者当前未显示指定的页面,则函数返回零。

CPSFUNC_SET_PSUIPAGE_TITLE

CPSFUNC_SET_PSUIPAGE_TITLE函数代码导致 ComPropSheet 函数设置属性表页的选项卡标题。

参数 (CPSFUNC_SET_PSUIPAGE_TITLE)
  • hComPropSheet:组父句柄

  • 函数:调用方在调用 ComPropSheet 以设置属性表页的选项卡标题时,将此函数代码参数设置为CPSFUNC_SET_PSUIPAGE_TITLE

  • lParam1:调用方提供的 CPSUI 页句柄,以前通过使用以下函数代码之一调用 ComPropSheet 获取:

    • CPSFUNC_ADD_HPROPSHEETPAGE

    • CPSFUNC_ADD_PROPSHEETPAGE

    • CPSFUNC_INSERT_PSUIPAGE (INSERTPSUIPAGE_INFO结构的 Type 成员设置为 PSUIPAGEINSERT_HPROPSHEETPAGEPSUIPAGEINSERT_PROPSHEETPAGE) 。

  • lParam2:调用方提供的指向指定新标题的以 NULL 结尾的字符串的指针

返回值 (CPSFUNC_SET_PSUIPAGE_TITLE)

如果操作成功, ComPropSheet 函数将返回 1。 如果遇到错误,或者当前未显示指定的页,则函数返回零。

CPSFUNC_SET_RESULT

CPSFUNC_SET_RESULT函数代码使 ComPropSheet 函数将指定的结果值传递给与指定页面及其父级关联的所有 PFNPROPSHEETUI 类型函数。

有关如何设置结果值的详细信息,请参阅 SETRESULT_INFO 结构的说明。

以下注意事项适用于具有自定义 UI 属性表的基于 Unidrv 或 Pscript5 的 IHV UI 插件,在属性表中所做的用户设置应是永久性的。 当插件调用 Function 参数设置为 CPSFUNC_SET_RESULTComPropSheet 函数时,插件必须将 lParam2 参数设置为CPSUI_OK

参数 (CPSFUNC_SET_RESULT)
  • hComPropSheet:组父句柄

  • 函数:调用方将此函数代码参数设置为 CPSFUNC_SET_RESULT ,当调用 ComPropSheet 将指定结果值传递给与指定页面及其父级关联的所有 PFNPROPSHEETUI 类型函数时。

  • lParam1:调用方提供的 CPSUI 句柄,指向要为其传递结果值的页。 如果 lParam1 为 NULL,则 CPSUI 使用 hComPropSheet 指定的值。

  • lParam2:调用方提供的 32 位 DWORD 结果值。

返回值 (CPSFUNC_SET_RESULT)

如果操作成功, ComPropSheet 函数将返回调用的 PFNPROPSHEETUI 类型函数的数目。 如果为 lParam1 指定的句柄无效,则函数返回 -1。

要求

要求
目标平台 桌面
标头 compstui.h (包括 Compstui.h)