从插件访问打印机驱动程序接口
重要
新式打印平台是 Windows 与打印机通信的首选方式。 建议使用 Microsoft 的 IPP 收件箱类驱动程序以及打印支持应用 (PSA) 来自定义 Windows 10 和 11 中的打印体验,以便进行打印机设备开发。
有关详细信息,请参阅新式打印平台和打印支持应用设计指南。
如果插件调用的方法属于驱动程序提供的 IPrintOemDriverUI、IPrintCoreHelperPS、IPrintCoreHelperUni、IPrintCoreUI2、IPrintOemDriverUni、IPrintOemDriverPS 或 IPrintCorePS2 COM 接口时,必须按以下方式从驱动程序获取接口指针:
该插件必须实现 IPrintOemUI、IPrintOemUI2、IPrintOemUni、IPrintOemUni2、IPrintOemPS 或 IPrintOemPS2 接口的 PublishDriverInterface 方法。
当驱动程序(Unidrv 或 Pscript5)调用插件的 PublishDriverInterface 方法时,它会提供一个指向 IPrintOemDriverUI、IPrintCoreUI2、IPrintOemDriverUni、IPrintOemDriverPS 或 IPrintCorePS2 实例的 IUnknown 接口的指针。
插件必须使用 IUnknown 接口指针调用 IUnknown::QueryInterface,指定代表所需版本的 IPrintOemDriverUI、IPrintCoreUI2、IPrintOemDriverUni、IPrintOemDriverPS 或 IPrintCorePS2 接口的接口标识符。 (有关详细信息,请参阅打印机驱动程序的接口标识符。)
如果插件指定了代表驱动程序支持的接口版本的接口标识符,QueryInterface 将返回指向 IPrintOemDriverUI、IPrintCoreUI2、IPrintOemDriverUni、IPrintOemDriverPS 或 IPrintCorePS2 接口的指针。 请注意,在将接口指针返回插件之前,驱动程序会调用接口的 AddRef 方法(如 Windows SDK 文档中所述)。 插件应保存该指针,以便以后调用接口方法时使用。
当不再需要 IPrintOemDriverUI、IPrintCoreUI2、IPrintOemDriverUni、IPrintOemDriverPS 或 IPrintCorePS2 接口指针时,插件必须调用接口的 Release 方法(如 Windows SDK 文档中所述)。
要让插件使用新的 Windows Vista IPrintCoreHelperPS 或 IPrintCoreHelperUni 接口,插件需要在其 IPrintOemUI::GetInfo、IPrintOemPS::GetInfo 或 IPrintOemUni::GetInfo 方法中添加对 OEMGI_GETREQUESTEDHELPERINTERFACES 的支持。