Analysieren von Windows Installer-Meldungen

Ein externer Benutzeroberflächenhandler kann die Liste der Installer-Meldungen verarbeiten, die durch den Parameter dwMessagedFilter der MsiSetExternalUI-Funktion angegeben werden. Einige dieser Meldungen enthalten Zeichenfolgen, die direkt verwendet werden können, während andere Meldungen möglicherweise vom externen Benutzeroberflächenhandler analysiert und verarbeitet werden müssen, um nützlich zu sein. Ihr externer Benutzeroberflächenhandler muss möglicherweise nur Windows Installer-Meldungen überwachen, ohne einen Vorgang auszuführen, der sich auf die Installation auswirkt.

Die folgenden Windows Installer-Meldungen enthalten Zeichenfolgen, die in einem Dialogfeld angezeigt werden können und keine zusätzliche Verarbeitung erfordern. Diese Meldungen enthalten eine Liste von Schaltflächen und Symbolen, die in einem Dialogfeld angezeigt werden sollen. Sie können die Werte MB_ICONMASK, MB_DEFMASK und MB_TYPEMASK verwenden, um Symbole und Schaltflächen anzugeben.

INSTALLMESSAGE_FATALEXIT

Die Installation wurde vorzeitig beendet.

INSTALLMESSAGE_ERROR

Eine formatierte Fehlermeldung.

INSTALLMESSAGE_WARNING

Eine formatierte Warnmeldung.

INSTALLMESSAGE_INFO

Eine formatierte Protokollmeldung.

INSTALLMESSAGE_USER

Eine formatierte Benutzermeldung.

INSTALLMESSAGE_OUTOFDISKSPACE

Eine formatierte Meldung, die angibt, dass nicht genügend Speicherplatz vorhanden ist

Der externe Benutzerhandler kann die folgenden Windows Installer-Meldungen verwenden, um eine Sequenz der Windows Installer-Benutzeroberfläche zu überwachen. Der Installer sendet diese Meldungen am Anfang einer Windows Installer-Benutzeroberflächensequenz, während die einzelnen Dialogfelder angezeigt werden, und am Ende der Benutzeroberflächensequenz. Zur Verwendung dieser Meldungen ist keine Verarbeitung erforderlich.

INSTALLMESSAGE_TERMINATE

Diese Meldung gibt das Ende der Benutzeroberflächensequenz an. Die Zeichenfolge ist eine NULL-Zeichenfolge.

INSTALLMESSAGE_INITIALIZE

Diese Meldung gibt an, dass die Benutzeroberflächensequenz gestartet wurde. Die Zeichenfolge ist eine NULL-Zeichenfolge.

INSTALLMESSAGE_SHOWDIALOG

Die Zeichenfolge enthält den Namen des aktuellen Dialogfelds.

Die folgenden Windows Installer-Meldungen erfordern eine zusätzliche Verarbeitung durch den externen Benutzeroberflächenhandler.

INSTALLMESSAGE_RESOLVESOURCE

Der externe Benutzeroberflächenhandler muss „0“ (null) zurückgeben und Windows Installer die Verarbeitung der Meldung gestatten. Der externe Benutzeroberflächenhandler kann diese Meldung überwachen, sollte jedoch keine Aktion ausführen, die sich auf die Installation auswirkt.

INSTALLMESSAGE_FILESINUSE

Auf der externen Benutzeroberfläche sollte als Reaktion auf diese Meldung ein FilesInUse-Dialogfeld angezeigt werden.

INSTALLMESSAGE_RMFILESINUSE

Auf der externen Benutzeroberfläche sollte als Reaktion auf diese Meldung ein MsiRMFilesInUse-Dialogfeld angezeigt werden. Verfügbar ab Windows Installer-Version 4.0. Weitere Informationen zu dieser Meldung finden Sie unter Verwenden des Neustart-Managers mit einer externen Benutzeroberfläche.

INSTALLMESSAGE_ACTIONSTART

Diese Meldung enthält Informationen zur aktuellen Aktion. Das Format ist „Aktion [1]: [2]. [3]“, wobei ein Doppelpunkt verwendet wird, um Feld 1 und Feld 2 zu trennen, und ein Punkt, um Feld 2 und Feld 3 zu trennen. Feld [1] enthält den Zeitpunkt, zu dem die Aktion gestartet wurde, im Format der Time-Eigenschaft. Feld [2] enthält den Namen der Aktion aus der Sequenztabelle. Feld [3] gibt die Beschreibung der Aktion aus der ActionText-Tabelle oder der MsiProcessMessage-Funktion an.

INSTALLMESSAGE_ACTIONDATA

Das Format dieser Zeichenfolge wird durch den Template-Wert in der Tabelle ActionText oder durch die MsiProcessMessage-Funktion angegeben. Nach der Meldung INSTALLMESSAGE_ACTIONSTART kann eine unbegrenzte Anzahl von INSTALLMESSAGE_ACTIONDATA-Meldungen vorhanden sein.

INSTALLMESSAGE_COMMONDATA

Diese Meldung weist drei Untertypen auf: „Language“, „Caption“ und „CancelShow“. Die Zeichenfolge kann drei Felder enthalten, die durch eine Zahl gefolgt von einem Doppelpunkt getrennt sind. Es sind nicht alle Felder erforderlich. Die Meldung kann eine NULL-Zeichenfolge oder eine leere Zeichenfolge ("") sein.

Sprache

Feld 1 enthält den Wert „0“ (null), um anzugeben, dass diese Zeichenfolge Sprachinformationen enthält. Feld 2 enthält einen Wert Language, der eine numerische Sprach-ID (LANGID) ist. Feld 3 ist ein Wert, der eine ANSI-Codepage darstellt.

Caption

Feld 1 enthält den Wert „1“, um anzugeben, dass diese Zeichenfolge den Text einer Beschriftung oder eines Titels enthält. Feld 2 enthält Text, den ein externer Benutzeroberflächenhandler als Beschriftung oder Titel für ein Dialogfeld verwenden kann. Feld 3 ist NULL oder eine leere Zeichenfolge (""). Feld 3 kann in der „Caption“-Meldung fehlen.

CancelShow

Feld 1 enthält den Wert „2“, um anzugeben, dass diese Zeichenfolge Informationen darüber enthält, ob die Schaltfläche „Abbrechen“ angezeigt werden soll. Wenn die Schaltfläche „Abbrechen“ ausgeblendet werden soll, enthält Feld 2 den Wert „0“ (null). Wenn die Schaltfläche „Abbrechen“ angezeigt werden soll, enthält Feld 2 den Wert „1“.

INSTALLMESSAGE_PROGRESS

Diese Meldung weist vier Untertypen auf: „Reset“, „ActionInfo“, „ProgressReport“ und „ProgressAddition“. Der externe Handler sollte erst dann auf eine dieser Meldungen reagieren, wenn die erste „Reset“-Statusmeldung empfangen wird. Dies liefert eine Schätzung der Gesamtzahl der Zeiteinheiten für die Statusanzeige.

Zurücksetzen

Feld 1 enthält den Wert „0“ (null), um eine Zurücksetzung der Statusanzeige anzugeben. Feld 2 enthält die Gesamtzahl der Zeiteinheiten in der Statusanzeige. Feld 3 enthält den Wert „0“ (null) für eine Vorwärtsbewegung der Statusanzeige. Feld 3 enthält den Wert „1“ für eine Rückwärtsbewegung der Statusanzeige. Der Wert „0“ (null) in Feld 4 bedeutet, dass die Installation ausgeführt wird und die verbleibende Zeit berechnet werden kann. Der Wert „1“ in Feld 4 bedeutet, dass das Skript ausgeführt wird und eine „Bitte warten ...“-Meldung angezeigt werden kann. Die Schätzung der Gesamtzahl der Zeiteinheiten ist ein Näherungswert und kann ungenau sein.

ActionInfo

Feld 1 enthält den Wert „1“, um anzugeben, dass diese Zeichenfolge Aktionsinformationen enthält. Feld 2 enthält die Anzahl der Zeiteinheiten, um die sich die Statusanzeige bei jeder „ActionData“-Meldung bewegt, die von der aktuellen Aktion gesendet wird. Wenn Feld 3 den Wert „0“ (null) enthält, wird Feld 2 ignoriert. Wenn Feld 3 den Wert „1“ enthält, nimmt die Statusanzeige für jede „ActionData“-Meldung, die von der aktuellen Aktion gesendet wird, um die Anzahl der Zeiteinheiten in Feld 2 zu. Feld 4 wird nicht verwendet.

ProgressReport

Feld 1 enthält den Wert „2“, um anzugeben, dass diese Zeichenfolge Statusinformationen enthält. Feld 2 enthält die Anzahl der Zeiteinheiten, um die sich die Statusanzeige bewegt hat. Feld 3 wird nicht verwendet. Feld 4 wird nicht verwendet.

ProgressAddition

Feld 1 enthält den Wert „3“, um anzugeben, dass der Statusanzeige durch eine Aktion Zeiteinheiten hinzugefügt werden können. Feld 2 enthält die Anzahl der Zeiteinheiten, die der erwarteten Gesamtzahl der Statuszeiteinheiten hinzugefügt werden sollen. Feld 3 wird nicht verwendet. Feld 4 wird nicht verwendet.