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
INSTALLMESSAGE_FATALEXIT
Vorzeitige Beendigung, möglicherweise kritischer Speichermangel.
INSTALLMESSAGE_ERROR
Formatierte Fehlermeldung,
 
[1] ist die Nachrichtennummer in der Fehlertabelle.
INSTALLMESSAGE_WARNING
Formatierte Warnmeldung,
 
[1] ist die Nachrichtennummer in der Fehlertabelle.
INSTALLMESSAGE_USER
Benutzeranforderungsnachricht,
 
[1] ist die Nachrichtennummer in der Fehlertabelle.
INSTALLMESSAGE_INFO
Informative Meldung für das Protokoll,
 
nicht angezeigt werden soll.
INSTALLMESSAGE_FILESINUSE
Liste der derzeit verwendeten Dateien, die geschlossen werden müssen, bevor sie ersetzt werden.
INSTALLMESSAGE_RESOLVESOURCE
Anforderung zum Ermitteln eines gültigen Quellspeicherorts.
INSTALLMESSAGE_RMFILESINUSE
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.
INSTALLMESSAGE_OUTOFDISKSPACE
Meldung, dass nicht genügend Speicherplatz vorhanden ist.
INSTALLMESSAGE_ACTIONSTART
Status: Start der Aktion,
 
[1] Aktionsname,
 
[2] Beschreibung,
 
[3] Vorlage für ACTIONDATA-Nachrichten.
INSTALLMESSAGE_ACTIONDATA
Aktionsdaten. Datensatzfelder entsprechen der Vorlage der ACTIONSTART-Meldung.
INSTALLMESSAGE_PROGRESS
Statusanzeigeinformationen. Weitere Informationen finden Sie nachfolgend in der Beschreibung der Datensatzfelder.
INSTALLMESSAGE_COMMONDATA
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