Compartir a través de


Compatibilidad con las notificaciones de cambio de impresora

Las aplicaciones pueden solicitar notificaciones de las repeticiones de eventos de cola de impresión llamando a las funciones FindFirstPrinterChangeNotification, FindNextPrinterChangeNotification y FindClosePrinterChangeNotification . Si cree que los escritores de aplicaciones querrán solicitar notificaciones de eventos para las colas de impresión compatibles con el proveedor de impresión parcial, debe admitir la notificación de eventos en el proveedor de la siguiente manera:

  • Proporcione una función FindFirstPrinterChangeNotification .

    El administrador de colas llama a esta función para proporcionar al proveedor de impresión la siguiente información:

    • Conjunto de marcas que indican los tipos de eventos de impresora para los que la aplicación ha solicitado la notificación.

    • Identificador de la cola de impresión para la que se solicitan las notificaciones.

    • Lista de tipos de información que la aplicación ha solicitado que se proporcione cuando se produce un evento.

      La función debe devolver un valor de marca que indique si se debe sondear el proveedor para determinar si se han producido cambios. Los proveedores no sondados envían señales al cliente cada vez que se producen cambios. Un proveedor que se debe sondear no envía señales a un cliente cuando se producen cambios. En su lugar, el administrador de colas indica al cliente a intervalos regulares, independientemente de si se han producido o no cambios.

      En el nivel de proveedor, esta función tiene argumentos diferentes que en el nivel win32.

  • Realice un seguimiento de todos los eventos de cola de impresión que la aplicación especificó cuando llamó a FindFirstPrinterChangeNotification.

    Para obtener una lista de los tipos de notificaciones que una aplicación puede solicitar y para obtener una lista de los tipos de información que se pueden usar para describir un evento, consulte la función FindFirstPrinterChangeNotification de Win32. Los tipos de eventos para los que una aplicación podría solicitar una notificación incluyen agregar o eliminar un trabajo o formulario de impresión. Los tipos de información que una aplicación puede solicitar incluyen parámetros de trabajo o formulario.

    Los proveedores de impresión que no sondean deben llamar a PartialReplyPrinterChangeNotification o ReplyPrinterChangeNotification cuando se produzcan cambios, para proporcionar al administrador de cola información que describa los cambios. Se debe llamar a la función ReplyPrinterChangeNotification en algún momento porque hace que el administrador de colas indique la aplicación, mientras que la función PartialReplyPrinterChangeNotification no lo hace. Cuando la aplicación recibe una señal de ReplyPrinterChangeNotification, se supone que llama a FindNextPrinterChangeNotification. Esta última función proporciona a la aplicación la información de eventos que el administrador de colas recibió anteriormente del proveedor de impresión.

    Los proveedores de impresión que se sondean simplemente deben realizar un seguimiento de los cambios. El administrador de colas indica a la aplicación a intervalos regulares. Cuando la aplicación recibe una señal, se supone que llama a la función FindNextPrinterChangeNotification del administrador de colas. En el caso de los proveedores sondeados, esta función llama a la función RefreshPrinterChangeNotification del proveedor.

  • Proporcione una función RefreshPrinterChangeNotification .

    Esta función debe devolver el estado actual de todas las opciones de cola de impresión supervisadas para la cola de impresión especificada. El administrador de colas llama a esta función cuando una aplicación llama a FindNextPrinterChangeNotification con el conjunto de marcas PRINTER_NOTIFY_OPTIONS_REFRESH.

    Se supone que las aplicaciones establecen esta marca si una llamada anterior a FindNextPrinterChangeNotification devuelve una estructura de PRINTER_NOTIFY_INFO con la marca PRINTER_NOTIFY_INFO_DISCARDED establecida. Tanto los proveedores sondeados como los no polares deben admitir RefreshPrinterChangeNotification.

  • Proporcione una función FindClosePrinterChangeNotification .