Modificación de una página de hoja de propiedades proporcionada por el controlador
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.
Un complemento de interfaz de usuario puede modificar páginas de hoja de propiedades proporcionadas por Unidrv o Pscript5 mediante la implementación del método IPrintOemUI::CommonUIProp y una función de devolución de llamada.
El complemento de interfaz de usuario usa el método IPrintOemUI::CommonUIProp para especificar un conjunto de elementos de opción que CPSUI puede agregar, quitar o reemplazar dentro de la página Configuración del dispositivo de la hoja de propiedades de la impresora o las páginas Diseño, Papel/Calidad y Avanzadas de la hoja de propiedades del documento.
La función de devolución de llamada, de tipo OEMCUIPCALLBACK, se usa para procesar las modificaciones del usuario a los elementos de opción personalizados.
Adición de elementos de opción
El complemento de interfaz de usuario debe describir los nuevos elementos de opción colocándolos en una matriz de estructuras OPTITEM proporcionadas por el controlador. El archivo DLL de la interfaz de impresora del controlador llama al método IPrintOemUI::CommonUIProp del complemento de interfaz de usuario dos veces. La primera vez que se llama al método, debe devolver el número de estructuras OPTITEM necesarias. El controlador asigna espacio para una matriz OPTITEM y describe la matriz en una estructura OEMCUIPPARAM. El controlador llama a IPrintOemUI::CommonUIProp de nuevo, proporcionando la dirección de la estructura OEMCUIPPARAM, por lo que el método puede cargar las estructuras OPTITEM con descripciones de opciones.
Eliminación de elementos de opción
Para quitar una opción de una página de hoja de propiedades proporcionada por Unidrv o Pscript5, el método IPrintOemUI::CommonUIProp del complemento de interfaz de usuario puede atravesar la matriz de estructuras OPTITEM a las que apunta la estructura OEMCUIPPARAM. Para cada opción que desee quitar de la hoja de propiedades, puede establecer la marca OPTIF_HIDE de la estructura OPTITEM. (Tenga en cuenta que esto no quita realmente la opción; oculta la opción al usuario para que no pueda cambiar su valor predeterminado).
Reemplazo de elementos de opción
Para reemplazar una opción en una página de hoja de propiedades proporcionada por Unidrv o Pscript, debe seguir las instrucciones que se muestran en la sección Eliminación de elementos de opción anterior para quitar el elemento de opción existente y, a continuación, seguir las instrucciones de la sección Adición de elementos de opción anterior para crear un nuevo elemento de opción para reemplazar el anterior.
Control de modificaciones en valores de opción personalizados
Para procesar modificaciones de usuario en elementos de opción personalizados, debe proporcionar al menos una función de devolución de llamada. Puede especificar una sola función de devolución de llamada que controle las opciones de la hoja de propiedades del documento y la hoja de propiedades de la impresora, o bien puede especificar una función independiente para cada una. Estas devoluciones de llamada son de tipo OEMCUIPCALLBACK.
Se especifica una función de devolución de llamada colocando su dirección en una estructura OEMCUIPPARAM. El complemento de interfaz de usuario recibe la dirección de esta estructura como entrada en su método IPrintOemUI::CommonUIProp.
Cuando un usuario abre la hoja de propiedades de la impresora o la hoja de propiedades del documento y modifica las opciones, CPSUI llama al DLL de la interfaz de impresora del controlador de impresora. Este archivo DLL procesa los valores de opción contenidos en sus propias estructuras OPTITEM. A continuación, para cada complemento de interfaz de usuario, el DLL de interfaz de impresora llama a la función de devolución de llamada con tipo OEMCUIPCALLBACK especificada anteriormente por IPrintOemUI::CommonUIProp.