DrvDocumentPropertySheets 函数 (winddiui.h)

打印机接口 DLL 的 DrvDocumentPropertySheets 函数负责创建描述打印文档属性的属性表页。

语法

LONG DrvDocumentPropertySheets(
  [in, optional] PPROPSHEETUI_INFO pPSUIInfo,
                 LPARAM            lParam
);

参数

[in, optional] pPSUIInfo

调用方提供的指向 PROPSHEETUI_INFO 结构的指针。 可以为 NULL (请参阅以下备注部分) 。

lParam

调用方提供的整数值,该值依赖于PROPSHEETUI_INFO结构的 Reason 成员的内容,如下表所示。

原因值 lParam 的定义
PROPSHEETUI_REASON_INIT 指向 DOCUMENTPROPERTYHEADER 结构的指针。
所有其他原因值 有关 PFNPROPSHEETUI 函数类型,请参阅 lParam 参数的说明。 (DOCUMENTPROPERTYHEADER 结构的地址包含在 PROPSHEETUI_INFO 结构的 lParamInit 成员中。)

返回值

如果 pPSUIInfoNULL,并且 lParam ->fMode 为零或 lParam ->pdmOutNULL,则此函数应返回打印机 DEVMODEW 结构的大小(以字节为单位)。 否则,函数的返回值与 PFNPROPSHEETUI 函数类型的 ReturnValue 部分中所述的值相同。 有关详细信息,请参阅“备注”部分。

备注

所有 打印机接口 DLL 都必须提供 DrvDocumentPropertySheets 函数,该函数是使用 PFNPROPSHEETUI 函数类型定义的。 函数的目的是调用 CPSUI 提供的 ComPropSheet 函数,以指定包含打印文档的用户可修改属性的属性表页。

如果为 pPSUIInfo 参数收到的值不是 NULL,则基于 NT 的操作系统打印后台处理程序将通过 CPSUI 间接调用函数。 下列规则适用:

  • 函数应按 PFNPROPSHEETUI 函数类型所述执行操作。

  • DOCUMENTPROPERTYHEADER 结构的 fMode 成员中的标志指示要显示的属性表页,以及是否应允许用户修改文档的属性。 唯一可以设置的标志是DM_IN_PROMPT (或DM_PROMPT) 、DM_ADVANCED、DM_NOPERMISSION以及DM_OUT_BUFFER (或DM_COPY) 。

如果为 pPSUIInfo 参数收到的值为 NULL,则打印后台处理程序将直接调用函数,而无需通过 CPSUI。 在这种情况下, lParam 参数包含 DOCUMENTPROPERTYHEADER 结构的地址,并适用以下规则:

  • 如果 DOCUMENTPROPERTYHEADER 结构的 fMode 成员为零,或者同一结构的 pdmOut 成员为 NULL,则该函数应仅返回 DOCUMENTPROPERTYHEADER 结构的 cbOut 成员中打印机的 DEVMODEW 结构(包括公共和私有结构成员)的总大小。

  • 如果 DOCUMENTPROPERTYHEADER 结构的 fMode 成员不为零,则函数应执行 fMode 标志指示的操作。 唯一可以设置的标志是DM_IN_BUFFER (或DM_MODIFY) ,以及DM_OUT_BUFFER (或DM_COPY) 。

要求

要求
目标平台 桌面
标头 winddiui.h (包括 Winddiui.h)

另请参阅

DOCUMENTPROPERTYHEADER

DrvDevicePropertySheets

IPrintOemUI::D ocumentPropertySheets