基于 COM 的呈现插件

重要

新式打印平台是 Windows 与打印机通信的首选方式。 建议使用 Microsoft 的 IPP 收件箱类驱动程序以及打印支持应用 (PSA) 来自定义 Windows 10 和 11 中的打印体验,以便进行打印机设备开发。

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

要提供自定义的挂接函数,基于 COM 的呈现插件就必须实现 IPrintOemUni::EnableDriverIPrintOemPS::EnableDriver 方法,该方法会将每个挂接函数的地址填入 DRVENABLEDATA 结构中。

只有在 Unidrv 或 Pscript5 驱动程序定义了图形 DDI 函数的情况下,基于 COM 的呈现插件才能挂接该函数。 有关此类函数的列表,请参阅 IPrintOemUni::EnableDriverIPrintOemPS::EnableDriver

如果提供了特定的自定义挂接函数,则该函数会优先于驱动程序的等效图形 DDI 函数。 设计自定义挂接函数时,提供以下选项:

  • 挂接函数可在内部完全处理图形 DDI 操作。

  • 挂接函数可以回调打印机驱动程序的等效图形 DDI 函数。

通过回调驱动程序的图形 DDI 函数,挂钩函数可以对函数参数进行预处理或后处理,但仍允许驱动程序实际执行图形 DDI 操作。 呈现插件的 IPrintOemUni::EnablePDEVIPrintOemPS::EnablePDEV 方法的输入参数之一是 DRVENABLEDATA 结构,该结构包含指向驱动程序图形 DDI 函数的指针。 如果要回调这些函数,则应保存此结构的内容。

可能需要提供自定义的 PDEV 结构。 可以通过每个挂接函数作为输入接收的 SURFOBJ 结构指针,在图形 DDI 挂接函数中引用此结构。 具体来说,SURFOBJ 结构的 dhpdev 成员指向 DEVOBJ 结构,而 DEVOBJ 结构的 pdevOEM 成员指向自定义的 PDEV 结构。