Compartir a través de


Agregar interfaz de usuario a un minidriver WIA

Puede agregar una interfaz de usuario extendida o reemplazar componentes de interfaz de usuario para un minidriver WIA instalando un archivo DLL independiente con el minidriver WIA. A diferencia de un controlador TWAIN, un componente de interfaz de usuario del controlador WIA es independiente del minidriver WIA real. Los componentes de la interfaz de usuario se ejecutan en el proceso de la aplicación, mientras que el minidriver WIA se ejecuta en el proceso del servicio WIA. Por lo tanto, es posible que un controlador WIA no muestre directamente la interfaz de usuario; solo los módulos de extensión de interfaz de usuario de WIA del controlador pueden mostrar la interfaz de usuario.

WIA permite agregar páginas de propiedades a los cuadros de diálogo proporcionados por el sistema, proporcionar imágenes de iconos personalizadas o reemplazar completamente el cuadro de diálogo proporcionado por el sistema. El mecanismo de extensión de página de propiedades se basa en la definición del shell de la interfaz COM de IShellPropSheetExt (descrita en la documentación de Microsoft Windows SDK). Este mecanismo se registra en los controladores de hoja de propiedades (HKCR\Clsid\<Clsid del dispositivo UI>\shellex\PropertySheetHandlers).

Todas las extensiones del cuadro de diálogo del dispositivo, excepto las páginas de propiedades, requieren que se implemente la interfaz IWiaUIExtension .

Si implementa la interfaz IWiaUIExtension y no desea reemplazar la interfaz de usuario del sistema, debe devolver E_NOTIMPL para el método IWiaUIExtension::D eviceDialog . Cualquier otro valor devuelto suprime el cuadro de diálogo del dispositivo.

El cuadro de diálogo del dispositivo debe implementarse como un cuadro de diálogo modal en un servidor COM en proceso, pasando pDeviceDialogData ->hwndParent para el elemento primario a la función DialogBoxParam (descrita en la documentación de Windows SDK). El cuadro de diálogo del dispositivo debe devolver S_OK correcto, S_FALSE si el usuario cancela el cuadro de diálogo o un ERROR COM HRESULT para otros errores.

La estructura DEVICEDIALOGDATA contiene todos los datos necesarios para implementar un cuadro de diálogo de dispositivo personalizado.

Para proporcionar un icono personalizado para un dispositivo, implemente el método IWiaUIExtension::GetDeviceIcon . El autor de la llamada destruye el icono mediante DestroyIcon (descrito en la documentación de Windows SDK).

Nota WIA tiene compatibilidad con scripting muy limitada. Por lo tanto, aunque es posible reemplazar la interfaz de usuario, no es posible suprimirla simplemente en un script.

El resto de esta sección incluye:

Cree una extensión de interfaz de usuario de WIA Minidriver "Hola mundo", un ejemplo completo de cómo implementar su propia interfaz de usuario personalizada.