Complementos de representación basados en COM
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.
Para proporcionar funciones de enlace personalizadas, el complemento de representación basado en COM debe implementar el método IPrintOemUni::EnableDriver o IPrintOemPS::EnableDriver, que rellena una estructura DRVENABLEDATA con la dirección de cada función de enlace.
Un complemento de representación basado en COM puede enlazar una función de DDI de gráficos solo si el controlador Unidrv o Pscript5 define la función. Para obtener una lista de estas funciones, consulte IPrintOemUni::EnableDriver o IPrintOemPS::EnableDriver.
Si proporciona una función de enlace personalizada determinada, esa función adelanta la función de DDI de gráficos equivalente del controlador. Al diseñar una función de enlace personalizada, tiene las siguientes opciones:
La función de enlace puede controlar completamente la operación de DDI de gráficos internamente.
La función de enlace puede volver a llamar a la función de DDI de gráficos equivalente del controlador de impresora.
Al volver a llamar a la función de DDI de gráficos del controlador, la función de enlace puede realizar preprocesamiento o posprocesamiento de argumentos de función, pero sigue permitiendo que el controlador realice realmente la operación de DDI de gráficos. Uno de los argumentos de entrada de un método IPrintOemUni::EnablePDEV o IPrintOemPS::EnablePDEV de complemento de representación es una estructura DRVENABLEDATA que contiene punteros a las funciones de DDI de gráficos del controlador. Si desea volver a llamar a estas funciones, debe guardar el contenido de esta estructura.
Puede que sea necesario proporcionar una estructura PDEV personalizada. Puede hacer referencia a esta estructura desde una función de enlace de DDI de gráficos, a través del puntero de estructura SURFOBJ que cada función de enlace recibe como entrada. En concreto, el miembro dhpdev de la estructura SURFOBJ apunta a una estructura DEVOBJ y el miembro pdevOEM de la estructura DEVOBJ apunta a la estructura PDEV personalizada.