Windows后台处理程序究竟是如何决定它将要发送给打印处理器的数据类型?

时间:2017-01-16 01:22:12

标签: c++ c windows printing wdk

例如,如果您想要在EMF中进行假脱机,通常可以正常工作的是#34;高级打印功能"。但是,我注意到在某些打印机驱动程序上这不起作用(这不是意料之外的,v3驱动程序不支持它)。实际上,我在一个驱动程序上注意到依赖于设备的设置(即在DEVMODE结构的额外结束块中)确定了假脱机文件是否在EMF中出现。那么打印假脱机程序如何确定要传递哪种数据类型?

我查看了打印驱动程序DDI的功能和结构,无法找到与此相关的任何内容。在DrvDeviceCapabilities中有一个DC_EMF_COMPLIANT标志,但是仅适用于Windows 95.假脱机程序如何在以后的系统上执行此操作?

1 个答案:

答案 0 :(得分:0)

经过多次搜索,我发现驱动程序强制假脱机程序使用RAW有足够的(但可能不是必需的)条件。如果DrvEscape被称为查询支持METAFILE_DRIVER并且驱动程序返回0,那么假脱机程序将无论如何直接转到raw。这是我发现的驱动程序的情况。