Comandos de impresora generados dinámicamente
Importante
La plataforma de impresión moderna es el medio preferido de Windows para comunicarse con impresoras. Se recomienda usar el controlador de clase de bandeja de entrada IPP de Microsoft, junto con aplicaciones de soporte técnico de impresión (PSA), para personalizar la experiencia de impresión en Windows 10 y 11 para el desarrollo de dispositivos de impresora.
Para obtener más información, consulte Plataforma de impresión moderna y la Guía de diseño de aplicaciones para compatibilidad con impresión.
Cada vez que especifique un comando de impresora en un archivo GPD para un minicontrolador Unidrv, puede usar uno de los dos métodos siguientes:
Colocar la cadena de comandos en el archivo GPD.
Cuando coloca la cadena de comandos en un archivo GPD, Unidrv envía el comando al administrador de trabajos de impresión en el momento adecuado. Estas cadenas de comandos pueden incluir variables estándar, que Unidrv evalúa antes de enviar el comando.
Proporcionar una función de devolución de llamada.
Si proporciona una función de devolución de llamada, Unidrv llama a la función cuando es el momento de enviar el comando y la función es responsable de enviar el comando al administrador de trabajos de impresión. Esto le permite incluir el código que genera dinámicamente una cadena de comandos y, a continuación, lo envía a la impresora.
Para colocar una cadena de comandos en un archivo GPD, debe incluir un atributo *Cmd dentro de la entrada *Command del comando.
Para proporcionar código que genere dinámicamente una cadena de comandos, debe hacer lo siguiente:
Proporcione un complemento de representación que implemente el método IPrintOemUni::CommandCallback.
Incluya un atributo de comando *CallbackID y, opcionalmente, un atributo *Params, dentro de la entrada *Command del comando en el archivo GPD.
Cuando Unidrv está listo para emitir un comando de impresora, comprueba la base de datos del minicontrolador para determinar si el comando se ha especificado con un atributo *Cmd o con un atributo *CallbackID. En el caso anterior, Unidrv envía la cadena de comandos al administrador de trabajos de impresión. En este último caso, Unidrv llama al método IPrintOemUni::CommandCallback, pasando los valores *CallbackID y *Params como argumentos de entrada.