【发布时间】:2016-07-08 09:08:38
【问题描述】:
我的目标是在驱动程序中实现允许定义是否可以打印新页面的功能。此代码询问打印机是否有足够的纸张来打印当前页面,如果没有,则应设置“缺纸”状态(就像它适用于 HP 打印机一样)。
为此,我使用 DDI 挂钩(用于起始页)。我在这里所做的是:
LPJOB_INFO_1 pJobInfo = NULL;
GetJob(hPrinter, pOemPDEV->JobId, 1, NULL, 0, &dwNeeded);
if ( GetLastError() != ERROR_INSUFFICIENT_BUFFER )
return FALSE;
pJobInfo = (LPJOB_INFO_1) AllocSplMem(dwNeeded);
if (!pJobInfo)
return FALSE;
BOOL getJobRes = GetJob(hPrinter, pOemPDEV->JobId, 1, (LPBYTE)pJobInfo, dwNeeded, &dwNeeded);
if (!getJobRes)
return FALSE;
wsprintf(string, L"pJobInfo->Status %d", pJobInfo->Status);
VERBOSE(string);
pJobInfo->Status |= JOB_STATUS_PAPEROUT;
BOOL a = SetJob(hPrinter, pOemPDEV->JobId, 1, (LPBYTE)pJobInfo, JOB_CONTROL_PAUSE);
结果我有:
问题是如何设置JOB_STATUS_PAPEROUT。提前致谢。
【问题讨论】:
标签: printing driver jobs printers