Partilhar via


Adicionar interface do usuário a um minidriver WIA

Você pode adicionar a interface do usuário estendida ou substituir componentes de interface do usuário para um minidriver WIA instalando uma DLL separada com o minidriver WIA. Ao contrário de um driver TWAIN, o componente de interface do usuário de um driver WIA é separado do minidriver WIA real. Os componentes de interface do usuário são executados no processo do aplicativo, enquanto o minidriver WIA é executado no processo do serviço WIA. Portanto, um driver WIA pode não mostrar diretamente a interface do usuário; somente os módulos de extensão de interface do usuário do WIA do driver podem mostrar a interface do usuário.

O WIA permite adicionar páginas de propriedades às caixas de diálogo fornecidas pelo sistema, fornecer imagens de ícone personalizadas ou substituir completamente a caixa de diálogo fornecida pelo sistema. O mecanismo de extensão da página de propriedades baseia-se na definição de shell da interface COM IShellPropSheetExt (descrita na documentação SDK do Microsoft Windows). Esse mecanismo é registrado nos manipuladores de folha de propriedades (HKCR\Clsid\<Clsid da interface> do usuário do dispositivo\shellex\PropertySheetHandlers).

Todas as extensões da caixa de diálogo do dispositivo, exceto páginas de propriedades, exigem que a Interface IWiaUIExtension seja implementada.

Se você implementar a interface IWiaUIExtension e não quiser substituir a interface do usuário do sistema, deverá retornar E_NOTIMPL para o método IWiaUIExtension::D eviceDialog . Qualquer outro valor retornado suprime a caixa de diálogo do dispositivo para o dispositivo.

A caixa de diálogo do dispositivo deve ser implementada como uma caixa de diálogo modal em um servidor COM em processo, passando pDeviceDialogData ->hwndParent para o pai para a função DialogBoxParam (descrita na documentação do SDK do Windows). A caixa de diálogo do dispositivo deve retornar S_OK para êxito, S_FALSE se o usuário cancelar a caixa de diálogo ou um ERRO COM HRESULT para outros erros.

A estrutura DEVICEDIALOGDATA contém todos os dados necessários para implementar uma caixa de diálogo de dispositivo personalizada.

Para fornecer um ícone personalizado para um dispositivo, implemente o método IWiaUIExtension::GetDeviceIcon . O ícone é destruído pelo chamador usando DestroyIcon (descrito na documentação do SDK do Windows).

Nota O WIA tem suporte a scripts muito limitados. Portanto, embora seja possível substituir a interface do usuário, não é possível simplesmente suprimi-la em um script.

O restante desta seção inclui:

Crie uma extensão de interface do usuário do minidriver WIA "Olá, Mundo", um exemplo completo de como implementar sua própria interface do usuário personalizada.