Partilhar via


Criando componentes Device-Specific para APIs de aquisição de imagem

APIs de aquisição de imagem, como TWAIN, normalmente exigem componentes específicos do dispositivo, como fontes de dados TWAIN. Esses componentes específicos do dispositivo devem usar a Interface COM IStillImage e a Interface COM IStiDevice para se comunicar com drivers de dispositivo de imagem ainda no modo de usuário e o monitor de eventos.

As APIs de aquisição de imagem podem chamar IStillImage::GetDeviceValue e IStillImage::SetDeviceValue para ler e gravar Entradas do Registro para Dispositivos de Imagem Ainda. Por exemplo, o nome da fonte de dados TWAIN de cada dispositivo de imagem está armazenado no registro.

Como a API TWAIN não permite que um aplicativo especifique o dispositivo ativo ao chamar uma fonte de dados, a fonte de dados normalmente chamará IStillImage::GetDeviceList para obter uma lista de todos os dispositivos de imagem ainda e, em seguida, pesquisará a lista para encontrar o dispositivo correto, geralmente com base nos nomes do fabricante e do modelo. Os nomes de texto do fabricante e do modelo são obtidos do arquivo INF (informações de instalação). Como o TWAIN tem um limite de 32 caracteres para nomes de fonte de dados e, como o WIA acrescenta "WIA-" a cadeias de caracteres para construir os nomes compatíveis, o texto no arquivo INF não deve ter mais de 28 caracteres. Caso contrário, aplicativos compatíveis com TWAIN que executam uma comparação em toda a cadeia de caracteres, e não apenas os primeiros 32 caracteres, podem não ser capazes de localizar automaticamente o dispositivo que fez com que o aplicativo fosse iniciado.

Para acessar um dispositivo, o software de aquisição de imagem chama IStillImage::CreateDevice para criar uma instância do objeto COM que define a interface IStiDevice . A interface IStiDevice fornece vários métodos para executar operações de E/S do dispositivo. Ao criar a instância de objeto, o software de aquisição de imagem deve especificar os modos de transferência "dados".

O software de aquisição de imagem pode chamar IStiDevice::Subscribe para solicitar que o monitor de eventos forneça uma notificação de Eventos de Dispositivo de Imagem Ainda. Depois que a notificação é recebida, IStiDevice::GetLastNotificationData pode ser chamado para determinar o tipo de evento. IStiDevice::UnSubscribe deve ser chamado quando as notificações não forem mais necessárias.

Quando o software de aquisição de imagem terminar de usar a interface IStiDevice , ele deverá chamar IStiDevice::Release.