Erstellen Push-Model fähiger Anwendungen

Eine Pushmodell-fähige Anwendung ist eine Anwendung, die sich bei Microsoft STI registriert hat, sodass sie automatisch aktiviert werden kann, wenn ein Standbildgerätereignis aufgetreten ist. Eine Anwendung kann mit einer der folgenden beiden Methoden für das Pushmodell sensibiliert werden:

  • Aufrufen von IStillImage::RegisterLaunchApplication. Der Aufruf kann von der Anwendung oder ihrem Installationsprogramm erfolgen.

  • Enthält einen Eintrag in der INF-Datei (Setup Information) der Anwendung. Auf den Eintrag sollte von einer INF AddReg-Direktive in der INF-Datei verwiesen werden. Die Syntax des Eintrags wird im folgenden Beispiel veranschaulicht:

    ; 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"
    

    Für Geräte, die Pushmodell-fähige Anwendungen unterstützen, sind zwei INF-Dateieinträge erforderlich: DeviceData und Ereignisse. Weitere Informationen finden Sie unter INF-Dateien für Standbildgeräte.

Eine dieser Methoden bewirkt, dass die Anwendung beim Ereignismonitor für stille Bilder registriert wird.

Wenn eine Anwendung als Pushmodell-fähig registriert ist, kann ein Benutzer der Anwendung Standbildgeräteereignisse mit der Systemsteuerung Scanner und Kameras zuweisen. Darüber hinaus können Anbieter eine anfängliche Zuweisung von Geräteereignissen zu Anwendungen bereitstellen, indem sie Anwendungsnamen in die INF-Datei eines Gerätetreibers einschließen. Ein Benutzer kann diese anfängliche Zuweisung mit dem Systemsteuerung Scanner und Kameras ändern.

Nachdem Geräteereignisse einer Anwendung zugewiesen wurden, startet der Ereignismonitor die Anwendung, wenn er ein Vorkommen eines zugewiesenen Geräteereignisses erkennt.

Wenn eine Pushmodell-fähige Anwendung aktiviert wird, sollte sie IStillImage::GetSTILaunchInformation aufrufen, um das Ereignis und das Gerät zu bestimmen, für das sie gestartet wurde. Anschließend kann IStillImage::GetDeviceInfo aufgerufen werden, um weitere Informationen zum Gerät zu erhalten.

Die Anwendung muss das Ereignis behandeln, oder sie muss eine Benutzeranzeige erstellen, die erklärt, warum sie das Ereignis nicht behandeln kann. Vermutlich wird der Benutzer dann Systemsteuerung verwenden, um das Geräteereignis einer anderen Anwendung zuzuordnen.

Die Behandlung des Ereignisses bedeutet in der Regel, in einem Bild zu lesen. Dazu ruft die Anwendung in der Regel eine Bilderfassungs-API auf, z. B. TWAIN.

Wenn eine Anwendung gestartet wurde, weil ein Ereignis aufgetreten ist, aber eine Bilderfassungs-API das Gerät nicht im Datenmodus geöffnet hat (siehe Übertragungsmodi), startet der Ereignismonitor eine weitere instance der Anwendung, wenn ein anderes Ereignis erkannt wird. Die Anwendung muss so implementiert werden, dass sie entweder mehrere Instanzen zulässt oder (vorzugsweise) erkennt, wenn sie nicht die erste instance ist, eine Nachricht an den ersten instance das Ereignis identifiziert und beendet wird.