다음을 통해 공유


프린터 변경 알림 지원

애플리케이션은 스풀러의 FindFirstPrinterChangeNotification, FindNextPrinterChangeNotificationFindClosePrinterChangeNotification 함수를 호출하여 인쇄 큐 이벤트의 발생에 대한 알림을 요청할 수 있습니다. 애플리케이션 작성기가 부분 인쇄 공급자에서 지원하는 인쇄 큐에 대한 이벤트 알림을 요청하려는 경우 다음과 같이 공급자에서 이벤트 알림을 지원해야 합니다.

  • FindFirstPrinterChangeNotification 함수를 제공합니다.

    스풀러는 이 함수를 호출하여 인쇄 공급자에게 다음 정보를 제공합니다.

    • 애플리케이션에서 알림을 요청한 프린터 이벤트의 유형을 나타내는 플래그 집합입니다.

    • 알림이 요청되는 인쇄 큐에 대한 핸들입니다.

    • 이벤트가 발생할 때 애플리케이션이 제공하도록 요청한 정보 유형 목록입니다.

      함수는 변경 내용이 발생했는지 확인하기 위해 공급자를 폴링해야 하는지 여부를 나타내는 플래그 값을 반환해야 합니다. 폴링되지 않은 공급자는 변경이 발생할 때마다 클라이언트에 신호를 보냅니다. 폴링해야 하는 공급자는 변경이 발생할 때 클라이언트에 신호를 보내지 않습니다. 대신 스풀러는 변경이 발생했는지 여부에 관계없이 정기적으로 클라이언트에 신호를 보냅니다.

      공급자 수준에서 이 함수에는 Win32 수준과 다른 인수가 있습니다.

  • 애플리케이션이 FindFirstPrinterChangeNotification을 호출할 때 지정한 모든 인쇄 큐 이벤트를 추적합니다.

    애플리케이션에서 요청할 수 있는 알림 유형 목록과 이벤트를 설명하는 데 사용할 수 있는 정보 유형 목록은 Win32 FindFirstPrinterChangeNotification 함수를 참조하세요. 애플리케이션이 알림을 요청할 수 있는 이벤트 유형에는 인쇄 작업 또는 양식 추가 또는 삭제가 포함됩니다. 애플리케이션이 요청할 수 있는 정보 유형에는 작업 또는 양식 매개 변수가 포함됩니다.

    폴링되지 않은 인쇄 공급자는 변경이 발생할 때 PartialReplyPrinterChangeNotification 또는 ReplyPrinterChangeNotification 을 호출하여 스풀러에 변경 내용을 설명하는 정보를 제공해야 합니다. ReplyPrinterChangeNotification 함수는 스풀러가 애플리케이션에 신호를 보내도록 하고 PartialReplyPrinterChangeNotification 함수는 그렇지 않으므로 특정 시점에 호출해야 합니다. 애플리케이션이 ReplyPrinterChangeNotification에서 신호를 받으면 FindNextPrinterChangeNotification을 호출해야 합니다. 이 후자의 함수는 스풀러가 이전에 인쇄 공급자로부터 받은 이벤트 정보를 애플리케이션에 제공합니다.

    폴링되는 인쇄 공급자는 변경 내용을 추적하기만 하면 됩니다. 스풀러는 정기적으로 애플리케이션에 신호를 보냅니다. 애플리케이션이 신호를 받으면 스풀러의 FindNextPrinterChangeNotification 함수를 호출해야 합니다. 폴링된 공급자의 경우 이 함수는 공급자의 RefreshPrinterChangeNotification 함수를 호출합니다.

  • RefreshPrinterChangeNotification 함수를 제공합니다.

    이 함수는 지정된 인쇄 큐에 대해 모니터링되는 모든 인쇄 큐 옵션의 현재 상태를 반환해야 합니다. 스풀러는 애플리케이션이 PRINTER_NOTIFY_OPTIONS_REFRESH 플래그 집합을 사용하여 FindNextPrinterChangeNotification 을 호출할 때 이 함수를 호출합니다.

    FindNextPrinterChangeNotification에 대한 이전 호출이 PRINTER_NOTIFY_INFO_DISCARDED 플래그가 설정된 PRINTER_NOTIFY_INFO 구조를 반환하는 경우 애플리케이션은 이 플래그를 설정해야 합니다. 폴링된 공급자와 폴링되지 않은 공급자는 모두 RefreshPrinterChangeNotification을 지원해야 합니다.

  • FindClosePrinterChangeNotification 함수를 제공합니다.