Я опрашиваю очередь принтера при любом изменении, например JOB_CHANGE, и, если я вижу, что какое-то задание исчезло, я сообщаю серверу, что задание было распечатано или удалено, в соответствии с последним состоянием задания.
Проблема заключается в том, что принтер Lexmark X945e возвратил статус последней работы только JOB_STATUS_RETAINED, но не JOB_STATUS_DELETED или JOB_STATUS_PRINTED.
Что это значит? Могу ли я использовать сохраненный статус, чтобы сказать, что работа была напечатана?
В случае, если вы имели в виду JOB_STATUS_RETAINED
когда вы сказали «ОСТАВЛЕНО», я нашел эту ссылку в документации:
Windows Vista и более поздние версии: задание было сохранено в очереди печати и не может быть удалено. Это может быть вызвано следующими причинами:
1) Задание было вручную сохранено при вызове SetJob, и диспетчер очереди печати ожидает его освобождения.
2) Задание не завершило печать и должно завершить печать, прежде чем оно может быть автоматически удалено.
См. SetJob для получения дополнительной информации о командах задания на печать.
Из документации SetJob:
JOB_CONTROL_RETAIN
Windows Vista и более поздние версии. Храните задание в очереди после его печати.
JOB_CONTROL_RELEASE
Windows Vista и более поздние версии. Отпустите задание на печать.
Из документации кажется, что SetJob(JOB_CONTROL_RELEASE)
может быть использован для освобождения работы.