Printing 如何从Winspool API的打印机作业中检查颜色/灰色
我已经编写了一个程序来监控打印机使用winspool api使用 FindFirstTranschangeNotification/FindNextChangeNotification方法。 我想知道一份工作是灰色的还是彩色的。我读了api,但没有找到解决方案。Printing 如何从Winspool API的打印机作业中检查颜色/灰色,printing,Printing,我已经编写了一个程序来监控打印机使用winspool api使用 FindFirstTranschangeNotification/FindNextChangeNotification方法。 我想知道一份工作是灰色的还是彩色的。我读了api,但没有找到解决方案。 如何从打印机\通知\信息\数据中获取作业颜色?或任何位置?您必须监视打印机的“通知信息”数据结构中的“作业通知”字段“数据模式”字段。在FindNextPrinterChangeNotification调用和作业创建之后,通知到达,您可
如何从打印机\通知\信息\数据中获取作业颜色?或任何位置?您必须监视打印机的“通知信息”数据结构中的“作业通知”字段“数据模式”字段。在FindNextPrinterChangeNotification调用和作业创建之后,通知到达,您可以从通知数据中检索有关作业颜色的信息 示例(不完整,但我希望有帮助):
...
PPRINTER_NOTIFY_INFO pNotification = NULL;
...
FindNextPrinterChangeNotification(hNotification, &dwChange, &options, (LPVOID *) &pNotification);
...
PRINTER_NOTIFY_INFO_DATA jobData = pNotification->aData[notification_index];
if (data.Field == JOB_NOTIFY_FIELD_DEVMODE)
{
DEVMODE *pDevMode = (DEVMODE *) jobData.NotifyData.Data.pBuf;
int color = (pDevMode->dmFields & DM_COLOR ? pDevMode->dmColor : DMCOLOR_MONOCHROME);
}