작업 관리
Important
최신 인쇄 플랫폼은 Windows에서 프린터와 통신하는 데 선호되는 수단입니다. 프린터 장치 개발을 위해 Windows 10 및 11의 인쇄 환경을 사용자 지정하려면 MICROSOFT의 IPP 받은 편지함 클래스 드라이버와 PSA(인쇄 지원 앱)를 사용하는 것이 좋습니다.
자세한 내용은 최신 인쇄 플랫폼 및 인쇄 지원 앱 디자인 가이드를 참조하세요.
작업 큐의 라이브 보기를 제공하기 위해 Windows 8.1 이상 버전의 Windows에서 작업 관리 기능이 도입되었습니다.
이 기능을 사용하면 클라이언트가 인쇄 작업을 취소할 수도 있습니다. 클라이언트는 UWP 디바이스 앱 내에서 또는 프린터 확장에서 적절한 프로그래밍 인터페이스를 호출할 수 있습니다.
새 인터페이스
작업 관리 기능을 구현하기 위해 Windows 8.1 도입된 인터페이스는 다음과 같습니다.
작업 관리 세션 시작
작업 관리 세션을 시작하려면 먼저 관리하려는 작업 범위를 지정하고 요청해야 합니다. 이 작업 범위를 "보기"라고 하며 IPrinterQueue2::GetPrinterQueueView 메서드를 사용하여 지정합니다.
보기를 변경하여 다른 작업 집합을 모니터링하려면 IPrinterQueueView::SetViewRange 메서드를 사용하여 작업을 수행할 수 있습니다.
인쇄 큐는 동적 큐입니다. 따라서 인쇄 큐의 상태가 변경되면 이벤트가 발생하며 IPrinterQueueViewEvent::OnChanged 메서드는 요청된 뷰의 업데이트된 스냅샷을 제공합니다.
다음 C# 코드 조각은 작업 관리 세션을 시작하기 위해 새 인터페이스를 사용하는 방법을 보여 줍니다.
void PerformJobManagement(IPrinterQueue2 queue)
{
//
// Create a printer queue view and specify the range of
// print queue positions to be monitored
//
PrinterQueueView queueView = queue.GetPrinterQueueView(0, COUNT_JOBS_MONITORED);
//
// Add the event handler to the IPrinterQueueView object via the
// standard COM event model, the IConnectionPoint mechanism.
//
queueView.OnChanged += queueView_OnChanged;
//
// When a different range of print jobs needs to be monitored,
// reset/update the view.
//
queueView.SetViewRange(20, COUNT_JOBS_MONITORED);
}
//
// Create an event handler that is called when
// there is a change in the View
//
void queueView_OnChanged(
IPrintJobCollection pcollection,
uint ulviewOffset,
uint ulviewSize,
uint ulcountJobsInPrintQueue)
{
foreach (IPrintJob job in pCollection)
{
UIDisplay(job.Name);
UIDisplay(job.Id);
}
}
UIDisplay는 사용자에게 정보를 표시하기 위해 개발하는 메커니즘에 대한 일반 이름으로 사용됩니다.
또한 작업 열거형은 첫 번째 이벤트 처리기가 추가될 때 시작되며 마지막 이벤트 처리기가 제거될 때 중지됩니다.