替换驱动程序提供的属性表页

重要

建议使用 Microsoft 的 IPP 收件箱类驱动程序以及打印支持应用 (PSA) ,自定义 Windows 10 和 11 中的打印体验,以便进行打印机设备开发。

有关详细信息,请参阅 打印支持应用设计指南

IPrintCoreUI2 COM 接口提供四种方法,在 Windows XP 和更高版本的 Windows 操作系统上运行的 Pscript5 UI 插件在打算完全替换核心驱动程序的标准 UI 页面时必须使用这些方法。 (术语核心驱动程序是指 Unidrv 或 Pscript5 打印机驱动程序。) 这些方法如下所示:

IPrintCoreUI2::EnumConstrainedOptions

IPrintCoreUI2::GetOptions

IPrintCoreUI2::SetOptions

IPrintCoreUI2::WhyConstrained

仅在执行 UI 插件的 IPrintOemUI::D ocumentPropertySheetsIPrintOemUI::D evicePropertySheets 方法及其属性表回调例程期间,才支持这些方法。 UI 插件支持这些方法来显示其自己的用户界面。 如果不支持,这些方法将返回E_NOTIMPL。

核心驱动程序在两种情况下显示其自己的属性表 UI: DrvDocumentPropertySheetsDrvDevicePropertySheets。 第一种方法显示仅适用于文档的属性 (文档粘滞属性) ,而第二种方法显示应用于设备的属性 (设备或打印机粘性属性) 。

核心驱动程序会记住它 (处理的属性表的类型,因此会记住模式 --document-sticky 或 printer-sticky) 。 核心驱动程序将该状态信息保存在为 UI 实例创建的 OEMUIOBJ 结构 (结构) 。 当核心驱动程序调用插件的接口方法时, 它将指针传递到 OEMUIOBJ 结构,以便当插件从 IPrintCoreUI2::EnumConstrainedOptionsIPrintCoreUI2::GetOptionsIPrintCoreUI2::SetOptionsIPrintCoreUI2::WhyConstrained 调用回核心驱动程序时,这些方法会将指针传递回核心驱动程序,然后核心驱动程序能够确定模式。

对于 IPrintCoreUI2::EnumConstrainedOptionsIPrintCoreUI2::SetOptionsIPrintCoreUI2::WhyConstrained 在执行 IPrintOemUI::D ocumentPropertySheets 或其属性表回调例程期间仅支持文档粘滞功能,在执行 IPrintOemUI::D evicePropertySheets 或其属性表回调例程期间仅支持打印机粘滞功能。 对于 IPrintCoreUI2::SetOptions,应忽略粘性与当前粘滞模式不匹配的任何功能。 当为粘性与当前粘滞模式不匹配的功能调用 IPrintCoreUI2::EnumConstrainedOptionsIPrintCoreUI2::WhyConstrained 时,该方法应返回E_INVALIDARG。

对于 IPrintCoreUI2::GetOptions, 文档粘滞模式支持文档粘滞和打印机粘附功能, (即 当 IPrintOemUI::D ocumentPropertySheets 或其属性表回调例程) 运行时,但当 IPrintOemUI::D evicePropertySheets 或其属性表回调例程) 运行时,打印机粘附 (模式仅支持打印机粘附功能。