VC获取打印机与打印作业的状态(三)

2014-11-23 21:30:34 · 作者: · 浏览: 238
lse if(pJobs[i].Status & JOB_STATUS_OFFLINE)
{
free( pJobs );
::ClosePrinter(m_hPrintHandle);
bResult = PRINT_FALSE;
_tcscpy(m_tchPrinterMessage,_TEXT("打印作业未连接"));
return bResult;
}
else if(pJobs[i].Status & JOB_STATUS_PAPEROUT)
{
free( pJobs );
::ClosePrinter(m_hPrintHandle);
bResult = PRINT_FALSE;
_tcscpy(m_tchPrinterMessage,_TEXT("打印纸位置不正确"));
return bResult;
}
else if(pJobs[i].Status & JOB_STATUS_BLOCKED_DEVQ)
{
free( pJobs );
::ClosePrinter(m_hPrintHandle);
bResult = PRINT_FALSE;
_tcscpy(m_tchPrinterMessage,_TEXT("打印作业出错"));
return bResult;
}
else if(pJobs[i].Status & JOB_STATUS_RESTART)
{
free( pJobs );
::ClosePrinter(m_hPrintHandle);
bResult = PRINT_FALSE;
_tcscpy(m_tchPrinterMessage,_TEXT("打印作业重新启动"));
return bResult;
}
#if (NTDDI_VERSION >= NTDDI_WINXP)
else if(pJobs[i].Status & JOB_STATUS_COMPLETE)
{
free( pJobs );
::ClosePrinter(m_hPrintHandle);
bResult = PRINT_TRUE;
_tcscpy(m_tchPrinterMessage,_TEXT("打印完成"));
return bResult;
}
#endif // (NTDDI_VERSION >= NTDDI_WINXP)
}
/// 如果不存在打印任务
if(0 == cJobs)
{
free( pJobs );
_tcscpy(m_tchPrinterMessage,_TEXT("打印结束,\n当前无打印任务!"));
bResult = PRINT_TRUE;
return bResult;
}

free( pJobs );
_tcscpy(m_tchPrinterMessage,_TEXT("打印成功!"));
bResult = PRINT_TRUE;
return bResult;
}

作者“LaoKa”