MsiProcessMessage-Funktion (msiquery.h)
Die MsiProcessMessage-Funktion sendet einen Fehlerdatensatz zur Verarbeitung an das Installationsprogramm.
Syntax
int MsiProcessMessage(
[in] MSIHANDLE hInstall,
[in] INSTALLMESSAGE eMessageType,
[in] MSIHANDLE hRecord
);
Parameter
[in] hInstall
Behandeln Sie die Installation, die für eine benutzerdefinierte DLL-Aktion bereitgestellt oder über MsiOpenPackage, MsiOpenPackageEx oder MsiOpenProduct abgerufen wird.
[in] eMessageType
Der eMessage-Parameter muss ein Wert sein, der einen der folgenden Nachrichtentypen angibt. Um ein Meldungsfeld mit Pushschaltflächen oder Symbolen anzuzeigen, verwenden Sie OR-Operatoren, um INSTALLMESSAGE_ERROR, INSTALLMESSAGE_WARNING oder INSTALLMESSAGE_USER zu den standardmäßigen Nachrichtenfeldstilen hinzuzufügen, die von den Funktionen MessageBox und MessageBoxEx verwendet werden. Weitere Informationen finden Sie in den nachstehenden Hinweisen.
Wert | Bedeutung |
---|---|
|
Vorzeitige Beendigung, möglicherweise kritischer Speichermangel. |
|
Formatierte Fehlermeldung, |
|
Formatierte Warnmeldung, |
|
Benutzeranforderungsnachricht, |
|
Informative Meldung für das Protokoll, |
|
Liste der derzeit verwendeten Dateien, die geschlossen werden müssen, bevor sie ersetzt werden. |
|
Anforderung zum Ermitteln eines gültigen Quellspeicherorts. |
|
Liste der derzeit verwendeten Dateien, die geschlossen werden müssen, bevor sie ersetzt 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. |
|
Meldung, dass nicht genügend Speicherplatz vorhanden ist. |
|
Status: Start der Aktion, |
|
Aktionsdaten. Datensatzfelder entsprechen der Vorlage der ACTIONSTART-Meldung. |
|
Statusanzeigeinformationen. Weitere Informationen finden Sie nachfolgend in der Beschreibung der Datensatzfelder. |
|
Um die Abbrechen-Schaltfläche zu aktivieren, legen Sie [1] auf 2 und [2] auf 1 fest.
Um die Abbrechen-Schaltfläche zu deaktivieren, legen Sie [1] auf 2 und [2] auf 0 fest |
[in] hRecord
Handle für einen Datensatz, der das Nachrichtenformat und die Daten enthält.
Rückgabewert
Diese Funktion gibt int zurück.
Hinweise
Die MsiProcessMessage-Funktion führt alle aktivierten Protokollierungsvorgänge aus und verzögert die Ausführung. Sie können die Protokollierung für verschiedene Nachrichtentypen selektiv aktivieren.
Für INSTALLMESSAGE_FATALEXIT, INSTALLMESSAGE_ERROR, INSTALLMESSAGE_WARNING und INSTALLMESSAGE_USER Meldungen muss Feld 1 auf den Fehlercode festgelegt werden, der der Fehlermeldung in der Fehlertabelle entspricht. Anschließend wird die Meldung mithilfe der Vorlage aus der Tabelle Fehler formatiert, bevor sie zur Anzeige an den Benutzeroberflächenhandler übergeben wird.
Datensatzfelder für Statusanzeigemeldungen
Im Folgenden werden die Datensatzfelder beschrieben, wenn eMessageType auf INSTALLMESSAGE_PROGRESS festgelegt ist. Feld 1 gibt den Typ der Statusmeldung an. Die Bedeutung der anderen Felder hängt vom Wert in diesem Feld ab. Die möglichen Werte, die in Feld 1 festgelegt werden können, lauten wie folgt.Wert von Feld 1 | Beschreibung von Feld 1 |
---|---|
0 | Setzt die Statusanzeige zurück und legt die erwartete Gesamtanzahl von Teilstrichen in der Leiste fest. |
1 | Stellt Informationen in Zusammenhang mit Statusmeldungen bereit, die von der aktuellen Aktion gesendet werden sollen. |
2 | Erhöht die Statusanzeige. |
3 | Ermöglicht einer Aktion (z. B. CustomAction) das Hinzufügen von Teilstrichen zur erwarteten Gesamtanzahl des Fortschrittsbalkens. |
Die Bedeutung von Feld 2 hängt wie folgt vom Wert in Feld 1 ab.
Wert von Feld 1 | Beschreibung von Feld 2 |
---|---|
0 | Erwartete Gesamtanzahl von Teilstrichen in der Statusleiste. |
1 | Anzahl von Teilstrichen, die die Statusanzeige für jede ActionData-Nachricht bewegt, die von der aktuellen Aktion gesendet wird. Dieses Feld wird ignoriert, wenn Feld 3 „0“ ist. |
2 | Anzahl von Teilstrichen, um die der Fortschrittsbalken verschoben wurde. |
3 | Anzahl der Teilstrichen, die zum erwarteten Gesamtfortschritt hinzugefügt werden sollen. |
Die Bedeutung von Feld 3 hängt wie folgt vom Wert in Feld 1 ab.
Wert von Feld 1 | Wert von Feld 3 | Beschreibung von Feld 3 |
---|---|---|
0 | 0 | Statusanzeige vorwärts (von links nach rechts) |
1 | Statusanzeige rückwärts (von rechts nach links) | |
1 | 0 | Die aktuelle Aktion sendet explizite ProgressReport-Meldungen. |
1 | Erhöhen Sie die Statusanzeige um die Anzahl von Teilstrichen, die in Feld 2 angegeben sind, jedes Mal, wenn eine ActionData-Nachricht von der aktuellen Aktion gesendet wird. | |
2 | Nicht verwendet | |
3 | Nicht verwendet |
Die Bedeutung von Feld 4 hängt wie folgt vom Wert in Feld 1 ab.
Wert von Feld 1 | Wert von Feld 4 | Beschreibung von Feld 4 |
---|---|---|
0 | 0 | Wird ausgeführt. In diesem Fall könnte die Benutzeroberfläche die verbleibende Zeit berechnen und anzeigen. |
1 | Ausführungsskript wird erstellt. In diesem Fall kann auf der Benutzeroberfläche eine „Bitte warten“-Meldung angezeigt werden, während das Installationsprogramm die Installation vorbereitet. | |
1 | Nicht verwendet | |
2 | Nicht verwendet | |
3 | Nicht verwendet |
Weitere Informationen und ein Codebeispiel finden Sie unter Hinzufügen von benutzerdefinierten Aktionen zur ProgressBar.
Anzeige von Meldungsfeldern
Um ein Meldungsfeld mit Pushschaltflächen oder Symbolen anzuzeigen, verwenden Sie OR-Operatoren, um INSTALLMESSAGE_ERROR, INSTALLMESSAGE_WARNING oder INSTALLMESSAGE_USER mit den Von MessageBox und MessageBoxEx verwendeten Nachrichtenfeldoptionen hinzuzufügen. Die verfügbaren Tastenoptionen sind MB_OK, MB_OKCANCEL, MB_ABORTRETRYIGNORE, MB_YESNOCANCEL, MB_YESNO und MB_RETRYCANCEL. Die verfügbaren Standardoptionen für Schaltflächen sind MB_DEFBUTTON1, MB_DEFBUTTON2 und MB_DEFBUTTON3. Die verfügbaren Symboloptionen sind MB_ICONERROR, MB_ICONQUESTION, MB_ICONWARNING und MB_ICONINFORMATION. Wenn keine Symboloptionen angegeben sind, wählt Windows Installer basierend auf dem Nachrichtentyp einen Standardsymbolstil aus.Der folgende Aufruf von MsiProcessMessage sendet beispielsweise eine INSTALLMESSAGE_ERROR Nachricht mit dem symbol MB_ICONWARNING und den Schaltflächen MB_ABORTRETRYCANCEL.
PMSIHANDLE hInstall;
PMSIHANDLE hRec;
MsiProcessMessage(hInstall,
INSTALLMESSAGE(INSTALLMESSAGE_ERROR|MB_ABORTRETRYIGNORE|MB_ICONWARNING),
hRec);
Wenn eine benutzerdefinierte Aktion MsiProcessMessage aufruft, sollte die benutzerdefinierte Aktion einen Abbruch durch den Benutzer verarbeiten können und ERROR_INSTALL_USEREXIT zurückgeben.
Weitere Informationen zum Senden von Nachrichten mit MsiProcessMessage finden Sie unter Senden von Nachrichten an Windows Installer mithilfe von MsiProcessMessage.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows Installer 5.0 unter Windows Server 2012, Windows 8, Windows Server 2008 R2 oder Windows 7. Windows Installer 4.0 oder Windows Installer 4.5 unter Windows Server 2008 oder Windows Vista. Windows Installer unter Windows Server 2003 oder Windows XP |
Zielplattform | Windows |
Kopfzeile | msiquery.h |
Bibliothek | Msi.lib |
DLL | Msi.dll |
Weitere Informationen
Installationsaktionsfunktionen
Senden von Meldungen an Windows Installer mithilfe von MsiProcessMessage