Método IPrintOemUI::P ublishDriverInterface (prcomoem.h)

El IPrintOemUI::PublishDriverInterface método permite que un complemento de interfaz de usuario obtenga la interfaz IPrintOemDriverUI del controlador Unidrv o Pscript5, IPrintCoreUI2, IPrintCoreHelperPS o IPrintCoreHelperUni .

Sintaxis

HRESULT PublishDriverInterface(
  IUnknown *pIUnknown
);

Parámetros

pIUnknown

Puntero proporcionado por el autor de la llamada a la interfaz IUnknown de la interfaz COM IPrintCoreUI2 del controlador, IPrintOemDriverUI COM Interface, IPrintCoreHelperPS Interface o IPrintCoreHelperUni Interface. Vea la sección Comentarios.

Valor devuelto

El método debe devolver uno de los valores siguientes.

Código devuelto Descripción
S_OK
La operación se realizó correctamente.
E_FAIL
Error en la operación.

Comentarios

El controlador Pscript5 admite las interfaces IPrintCoreUI2, IPrintOemDriverUI e IPrintCoreHelperPS . Unidrv admite las interfaces IPrintOemDriverUI e IPrintCoreHelperUni . Los complementos de interfaz de usuario para ambos tipos de controlador deben implementar el IPrintOemUI::PublishDriverInterface método .

El método debe devolver información sobre sus interfaces Pscript5 admitidas de la siguiente manera:

  1. El controlador Pscript5 llama primero al IPrintOemUI::PublishDriverInterface método con el puntero pIUnknown establecido en la interfaz IUnknown de la instancia IUnknown de la instancia de IPrintCoreUI2. Si el complemento de interfaz de usuario puede usar la interfaz IPrintCoreUI2 , el método debe devolver S_OK. De lo contrario, el complemento debe devolver E_FAIL.
  2. Si el complemento ha devuelto E_FAIL, el controlador Pscript5 llama al IPrintOemUI::PublishDriverInterface método de nuevo, pero con el puntero pIUnknown establecido en la interfaz IUnknown de la instancia de IPrintOemDriverUI. Si el complemento puede usar la interfaz IPrintOemDriverUI , el método debe devolver S_OK. De lo contrario, el complemento debe devolver E_FAIL.
  3. Si el método IPrintOemUI::GetInfo del complemento ha devuelto un valor de OEMPUBLISH_IPRINTCOREHELPER en pBuffer en respuesta a una llamada con dwMode establecido en OEMGI_GETREQUESTEDHELPERINTERFACES, el controlador Pscript5 llama al IPrintOemUI::PublishDriverInterface método de nuevo, pero con el puntero pIUnknown establecido en un objeto que implementa las interfaces IPrintCoreHelperPS e IPrintCoreHelper . Si el complemento puede usar la interfaz IPrintCoreHelperPS o IPrintCoreHelper , el método debe devolver S_OK. De lo contrario, el método debe devolver E_FAIL.
El método debe devolver información sobre sus interfaces Unidrv admitidas de la siguiente manera:
  1. El controlador Unidrv llama primero al IPrintOemUI::PublishDriverInterface método con el puntero pIUnknown establecido en la interfaz IUnknown de la instancia IUnknown de la instancia de IPrintOemDriverUI. Si el complemento puede usar la interfaz IPrintOemDriverUI , el método debe devolver S_OK. De lo contrario, el complemento debe devolver E_FAIL.
  2. Si el método IPrintOemUI::GetInfo del complemento ha devuelto un valor de OEMPUBLISH_IPRINTCOREHELPER en pBuffer en respuesta a una llamada con dwMode establecido en OEMGI_GETREQUESTEDHELPERINTERFACES, el controlador Unidrv llama al IPrintOemUI::PublishDriverInterface método de nuevo, pero con el puntero pIUnknown establecido en un objeto que implementa las interfaces IPrintCoreHelperUni e IPrintCoreHelper . Si el complemento usa la interfaz IPrintCoreHelperUni o IPrintCoreHelper , el método debe devolver S_OK. De lo contrario, el método debe devolver E_FAIL.
Si el complemento produce un error en todas las llamadas a IPrintOemUI::PublishDriverInterface, el complemento no recibirá más llamadas. Si el complemento de interfaz de usuario llamará a IPrintCoreUI2, IPrintOemDriverUI, IPrintCoreHelperPS o métodos de interfaz IPrintCoreHelperUni, debe usar el puntero de interfaz IUnknown recibido para llamar a IUnknown::QueryInterface (descrito en la documentación de Microsoft Windows SDK) para obtener un puntero a la versión compatible del controlador de IPrintCoreUI2, Interfaz IPrintOemDriverUI, IPrintCoreHelperPS o IPrintCoreHelperUni. Para obtener más información, vea Identificadores de interfaz para controladores de impresora.

Durante el procesamiento de cada función DDI, los complementos de interfaz de usuario no deben mezclar el uso de métodos de las interfaces anteriores a Windows Vista (por ejemplo, la interfaz IPrintOemDriverUI o IPrintCoreUI2 ) y los nuevos métodos de las interfaces de Windows Vista (por ejemplo, IPrintCoreHelperUni o IPrintCoreHelperPS) para leer o escribir la configuración del controlador. Por ejemplo, durante el método IPrintOemUI::D ocumentPropertySheets , el complemento de interfaz de usuario no debe usar el método IPrintOemDriverUI::D rvUpdateUISetting para escribir la configuración y usar el método IPrintCoreHelper::GetOption para leer la configuración. Por otro ejemplo, durante el método IPrintOemUI::P rinterEvent , el complemento de interfaz de usuario no debe usar el método IPrintCoreUI2::GetOptions para leer la configuración y usar el método IPrintCoreHelper::SetOptions para escribir la configuración. No se admite la sincronización de la lectura y escritura de la configuración entre estas diferentes versiones de interfaces.

Requisitos

Requisito Value
Plataforma de destino Escritorio
Encabezado prcomoem.h (include Prcomoem.h)

Consulte también

IPrintOemUI

IPrintOemUI::GetInfo