Freigeben über


Hinzufügen der Benutzeroberfläche zu einem WIA Minidriver

Sie können eine erweiterte Benutzeroberfläche hinzufügen oder UI-Komponenten für einen WIA-Minidriver ersetzen, indem Sie eine separate DLL mit dem WIA-Minitreiber installieren. Im Gegensatz zu einem TWAIN-Treiber ist die UI-Komponente eines WIA-Treibers vom eigentlichen WIA-Minitreiber getrennt. Die UI-Komponenten werden im Prozess der Anwendung ausgeführt, während der WIA-Minitreiber im PROZESS des WIA-Diensts ausgeführt wird. Daher zeigt ein WIA-Treiber möglicherweise nicht direkt die Benutzeroberfläche an. Nur die WIA UI-Erweiterungsmodule des Treibers können ui anzeigen.

Mit WIA können Sie den vom System bereitgestellten Dialogfeldern Eigenschaftenseiten hinzufügen, benutzerdefinierte Symbolbilder bereitstellen oder das vom System bereitgestellte Dialogfeld vollständig ersetzen. Der Mechanismus der Eigenschaftenseitenerweiterung basiert auf der Shelldefinition der IShellPropSheetExt-COM-Schnittstelle (beschrieben in der Microsoft Windows SDK-Dokumentation). Dieser Mechanismus wird unter den Eigenschaftenblatthandlern (HKCR\Clsid\<Clsid der Gerätebenutzeroberfläche>\shellex\PropertySheetHandlers) registriert.

Für alle Gerätedialogfelderweiterungen mit Ausnahme von Eigenschaftenseiten muss die IWiaUIExtension-Schnittstelle implementiert werden.

Wenn Sie die IWiaUIExtension-Schnittstelle implementieren und die Systembenutzeroberfläche nicht ersetzen möchten, müssen Sie E_NOTIMPL für die IWiaUIExtension::D eviceDialog-Methode zurückgeben. Jeder andere Rückgabewert unterdrückt das Gerätedialogfeld für das Gerät.

Das Gerätedialogfeld muss als modales Dialogfeld in einem prozessinternen COM-Server implementiert werden, wobei pDeviceDialogData ->hwndParent für das übergeordnete Element an die DialogBoxParam-Funktion übergeben wird (dies wird in der Windows SDK-Dokumentation beschrieben). Das Gerätedialogfeld muss S_OK zurückgeben, um erfolgreich zu sein, S_FALSE, wenn der Benutzer das Dialogfeld abbricht, oder ein COM-Fehler-HRESULT für andere Fehler.

Die DEVICEDIALOGDATA-Struktur enthält alle Daten, die zum Implementieren eines benutzerdefinierten Gerätedialogfelds erforderlich sind.

Um ein benutzerdefiniertes Symbol für ein Gerät bereitzustellen, implementieren Sie die IWiaUIExtension::GetDeviceIcon-Methode . Das Symbol wird vom Aufrufer mithilfe von DestroyIcon zerstört (siehe Windows SDK-Dokumentation).

Hinweis WIA verfügt über sehr begrenzte Skriptunterstützung. Obwohl es möglich ist, die Benutzeroberfläche zu ersetzen, ist es nicht möglich, sie nur in einem Skript zu unterdrücken.

Der Rest dieses Abschnitts enthält Folgendes:

Erstellen Sie eine "Hallo Welt"-WIA Minidriver-UI-Erweiterung, ein vollständiges Beispiel für die Implementierung Einer eigenen benutzerdefinierten Benutzeroberfläche.