创建推送模型感知应用程序

推送模型感知应用程序是已向 Microsoft STI 注册自身的应用程序,以便在发生静止图像设备事件时自动激活它。 可以通过以下两种方法之一使应用程序能够感知推送模型:

  • 调用 IStillImage::RegisterLaunchApplication。 调用可以由应用程序或其安装程序进行。

  • 在 INF) 文件 (应用程序的设置信息中包含一个条目。 该条目应由 INF 文件中的 INF AddReg 指令 引用。 以下示例演示了 条目的语法:

    ; Register Application "Imaging" as a push-model aware application for use with the still image event monitor
    HKLM,"SOFTWARE\Microsoft\Windows\CurrentVersion\StillImage\Registered Applications",Imaging,,"%25%\KodakImg.Exe /StiDevice:%%1 /StiEvent:%%2"
    

    支持推送模型感知应用程序的设备需要两个 INF 文件条目: DeviceData事件。 有关详细信息,请参阅 静态图像设备的 INF 文件

其中任一方法都会导致应用程序注册到 静止图像事件监视器

如果应用程序注册为推送模型感知,则用户可以使用扫描仪和相机控制面板将静止图像设备事件分配给应用程序。 此外,供应商可以通过在设备驱动程序的 INF 文件中包括应用程序名称,向应用程序提供设备事件的初始分配。 用户可以使用扫描仪和相机控制面板更改此初始分配。

将设备事件分配给应用程序后,事件监视器将在检测到已分配设备事件时启动应用程序。

激活推送模型感知应用程序时,它应调用 IStillImage::GetSTILaunchInformation 来确定事件和启动它的设备。 然后,它可以调用 IStillImage::GetDeviceInfo 以获取有关设备的详细信息。

应用程序必须处理事件,或者必须创建一个用户显示来解释它无法处理事件的原因。 假设用户随后将使用控制面板将设备事件与其他某个应用程序相关联。

处理事件通常意味着在图像中读取。 为此,应用程序通常会调用 图像获取 API,例如 TWAIN。

如果应用程序因发生事件而启动,但图像采集 API 未在数据模式下打开设备 (请参阅 传输模式) ,则如果检测到另一个事件,事件监视器将启动该应用程序的另一个实例。 应用程序必须实现,以便它允许多个实例或 (最好) 识别它不是第一个实例,将消息发送到标识该事件的第一个实例,然后退出。