Reemplazo de páginas de hojas de propiedades proporcionadas 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.
La interfaz COM IPrintCoreUI2 proporciona cuatro métodos que un complemento de interfaz de usuario Pscript5 que se ejecute en Windows XP y versiones posteriores del sistema operativo Windows debe usar cuando pretenda sustituir completamente las páginas de interfaz de usuario estándar del controlador principal. (El término controlador principal se refiere al controlador de impresora Unidrv o Pscript5). Estos métodos son los siguientes:
IPrintCoreUI2::EnumConstrainedOptions
Estos métodos solo se admiten durante la ejecución de los métodos IPrintOemUI::DocumentPropertySheets e IPrintOemUI::DevicePropertySheets del complemento de interfaz de usuario y sus rutinas de devolución de llamada de la hoja de propiedades. Un complemento UI soporta estos métodos para mostrar su propia interfaz de usuario. Cuando no son compatibles, estos métodos devuelven E_NOTIMPL.
El controlador central muestra su propia interfaz de usuario de hoja de propiedades en dos circunstancias: para DrvDocumentPropertySheets y para DrvDevicePropertySheets. El primer método muestra las propiedades que se aplican solo a los documentos (document-sticky properties), mientras que el segundo método muestra las propiedades que se aplican a un dispositivo (device- or printer-sticky properties).
El controlador central recuerda el tipo de hoja de propiedades que maneja (y, por lo tanto, el modo -- document-sticky o printer-sticky). El controlador central guarda esa información de estado en una estructura (la estructura OEMUIOBJ) que crea para la instancia de interfaz de usuario. Cuando el controlador central llama a los métodos de interfaz de un complemento, pasa un puntero a una estructura OEMUIOBJ, de modo que cuando un complemento llama de nuevo al controlador central desde IPrintCoreUI2::EnumConstrainedOptions, IPrintCoreUI2::GetOptions, IPrintCoreUI2::SetOptions o IPrintCoreUI2::WhyConstrained, estos métodos pasan el puntero de nuevo al controlador central, que es capaz de determinar el modo.
Para IPrintCoreUI2::EnumConstrainedOptions, IPrintCoreUI2::SetOptions y IPrintCoreUI2::WhyConstrained, solo las características de documento pegajoso son soportadas durante la ejecución de IPrintOemUI::DocumentPropertySheets o su rutina de callback de hoja de propiedades y solo las características de impresora pegajosa son soportadas durante la ejecución de IPrintOemUI::DevicePropertySheets o su rutina de callback de hoja de propiedades. Para IPrintCoreUI2::SetOptions, se debe omitir cualquier característica cuya permanencia no coincida con el modo sticky actual. Cuando se llama a IPrintCoreUI2::EnumConstrainedOptions o a IPrintCoreUI2::WhyConstrained para una característica cuya pegajosidad no coincide con el modo pegajoso actual, el método debe devolver E_INVALIDARG.
Para IPrintCoreUI2::GetOptions, tanto las características document-sticky como printer-sticky están soportadas en modo document-sticky (esto es, cuando IPrintOemUI::DocumentPropertySheets o su rutina de callback de hoja de propiedades se están ejecutando), pero solo las características printer-sticky están soportadas en modo printer-sticky (cuando IPrintOemUI::DevicePropertySheets o su rutina de callback de hoja de propiedades se están ejecutando).