Compartir a través de


Acceso a interfaces de controlador de impresora desde complementos

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.

Si un complemento llama a métodos que pertenecen a las interfaces COM IPrintOemDriverUI, IPrintCoreHelperPS, IPrintCoreHelperUni, IPrintCoreUI2, IPrintOemDriverUni, IPrintOemDriverPS o IPrintCorePS2 proporcionadas por el controlador, debe obtener un puntero de interfaz del controlador de la siguiente manera:

  1. El complemento debe implementar el método PublishDriverInterface de la interfaz IPrintOemUI, IPrintOemUI2, IPrintOemUni, IPrintOemUni2, IPrintOemPS o IPrintOemPS2

  2. Cuando el controlador (Unidrv o Pscript5) llama al método PublishDriverInterface del complemento, proporciona un puntero a la interfaz IUnknown de la instancia de IPrintCoreUI2, IPrintOemDriverUni, IPrintOemDriverPS o IPrintCorePS2.

  3. El complemento debe usar el puntero de interfaz IUnknown para llamar a IUnknown::QueryInterface, especificando el identificador de interfaz que representa la versión deseada de la interfaz IPrintOemDriverUI, IPrintCoreUI2, IPrintOemDriverUni, IPrintOemDriverPS o IPrintCorePS2. (Para obtener más información, consulte Identificadores de interfaz para controladores de impresora).

  4. Si el complemento especifica un identificador de interfaz que representa una versión de interfaz compatible con el controlador, QueryInterface devuelve un puntero a la interfaz IPrintOemDriverUI, IPrintCoreUI2, IPrintOemDriverUni, IPrintOemDriverPS o IPrintCorePS2. Tenga en cuenta que el controlador llama al método AddRef de la interfaz (que se describe en la documentación del SDK de Windows) antes de devolver el puntero de interfaz al complemento. El complemento debe guardar este puntero para usarlo más adelante para llamar a métodos de interfaz.

  5. Cuando el puntero de interfaz IPrintOemDriverUI, IPrintCoreUI2, IPrintOemDriverUni, IPrintOemDriverPS o IPrintCorePS2 ya no es necesario, el complemento debe llamar al método Release de la interfaz (descrito en la documentación del SDK de Windows).

Para que los complementos usen la nueva interfaz IPrintCoreHelperPS o IPrintCoreHelperUni de Windows Vista, el complemento debe agregar compatibilidad con el método OEMGI_GETREQUESTEDHELPERINTERFACES in its IPrintOemUI::GetInfo, IPrintOemPS::GetInfo o IPrintOemUni::GetInfo.