Funzione MsiProcessMessage (msiquery.h)

La funzione MsiProcessMessage invia un record di errore al programma di installazione per l'elaborazione.

Sintassi

int MsiProcessMessage(
  [in] MSIHANDLE      hInstall,
  [in] INSTALLMESSAGE eMessageType,
  [in] MSIHANDLE      hRecord
);

Parametri

[in] hInstall

Gestire l'installazione fornita a un'azione personalizzata DLL o ottenuta tramite MsiOpenPackage, MsiOpenPackageEx o MsiOpenProduct.

[in] eMessageType

Il parametro eMessage deve essere un valore che specifica uno dei tipi di messaggio seguenti. Per visualizzare una finestra di messaggio con pulsanti o icone, usare gli operatori OR per aggiungere INSTALLMESSAGE_ERROR, INSTALLMESSAGE_WARNING o INSTALLMESSAGE_USER agli stili standard della finestra di messaggio usati dalle funzioni MessageBox e MessageBoxEx . Per altre informazioni, vedere le osservazioni riportate di seguito.

Valore Significato
INSTALLMESSAGE_FATALEXIT
Terminazione prematura, probabilmente irreversibile dalla memoria.
INSTALLMESSAGE_ERROR
Messaggio di errore formattato,
 
[1] è il numero di messaggio nella tabella Errori.
INSTALLMESSAGE_WARNING
Messaggio di avviso formattato,
 
[1] è il numero di messaggio nella tabella Errori.
INSTALLMESSAGE_USER
Messaggio di richiesta utente,
 
[1] è il numero di messaggio nella tabella Errori.
INSTALLMESSAGE_INFO
Messaggio informativo per il log,
 
non da visualizzare.
INSTALLMESSAGE_FILESINUSE
Elenco di file attualmente in uso che devono essere chiusi prima di essere sostituiti.
INSTALLMESSAGE_RESOLVESOURCE
Richiedere di determinare un percorso di origine valido.
INSTALLMESSAGE_RMFILESINUSE
Elenco di file attualmente in uso che devono essere chiusi prima di essere sostituiti. Disponibile a partire da Windows Installer versione 4.0. Per altre informazioni su questo messaggio, vedere Uso di Restart Manager con un'interfaccia utente esterna.
INSTALLMESSAGE_OUTOFDISKSPACE
Messaggio di spazio su disco insufficiente.
INSTALLMESSAGE_ACTIONSTART
Avanzamento: inizio dell'azione,
 
[1] Nome azione,
 
[2] Descrizione,
 
Modello [3] per i messaggi ACTIONDATA.
INSTALLMESSAGE_ACTIONDATA
Dati dell'azione. I campi record corrispondono al modello di messaggio ACTIONSTART.
INSTALLMESSAGE_PROGRESS
Informazioni sulla barra di avanzamento. Vedere la descrizione dei campi record di seguito.
INSTALLMESSAGE_COMMONDATA
Per abilitare il pulsante Annulla impostato [1] su 2 e [2] su 1.

Per disabilitare il pulsante Annulla impostato [1] su 2 e [2] su 0

[in] hRecord

Gestire in un record contenente il formato e i dati dei messaggi.

Valore restituito

Questa funzione restituisce int.

Commenti

La funzione MsiProcessMessage esegue tutte le operazioni di registrazione abilitate e l'esecuzione di defers. È possibile abilitare in modo selettivo la registrazione per vari tipi di messaggio.

Per INSTALLMESSAGE_FATALEXIT, INSTALLMESSAGE_ERROR, INSTALLMESSAGE_WARNING e INSTALLMESSAGE_USER messaggi, se il campo 0 non è impostato su 1 deve essere impostato sul codice di errore corrispondente al messaggio di errore nella tabella Errori. Il messaggio viene quindi formattato usando il modello della tabella Errore prima di passarlo al gestore dell'interfaccia utente per la visualizzazione.

Campi record per i messaggi della barra di stato

Di seguito vengono descritti i campi record quando eMessageType è impostato su INSTALLMESSAGE_PROGRESS. Il campo 1 specifica il tipo del messaggio di stato. Il significato degli altri campi dipende dal valore in questo campo. I valori possibili che possono essere impostati in Field 1 sono i seguenti.
Campo 1 valore Descrizione campo 1
0 Reimposta la barra di stato e imposta il numero totale previsto di tick nella barra.
1 Fornisce informazioni correlate ai messaggi di stato da inviare dall'azione corrente.
2 Incrementa la barra di stato.
3 Abilita un'azione (ad esempio CustomAction) per aggiungere tick al numero totale previsto di stato della barra di avanzamento.
 

Il significato di Field 2 dipende dal valore in Field 1 come indicato di seguito.

Campo 1 valore Descrizione campo 2
0 Numero totale previsto di tick nella barra di avanzamento.
1 Il numero di tick sposta la barra di stato per ogni messaggio ActionData inviato dall'azione corrente. Questo campo viene ignorato se il campo 3 è 0.
2 Numero di zecche spostate dalla barra di avanzamento.
3 Numero di tick da aggiungere al totale dello stato previsto.
 

Il significato di Field 3 dipende dal valore in Field 1 come indicato di seguito.

Campo 1 valore Campo 3 valore Descrizione campo 3
0 0 Barra di stato avanti (a sinistra a destra)
  1 Barra di avanzamento indietro (a destra a sinistra)
1 0 L'azione corrente invierà messaggi ProgressReport espliciti.
  1 Incrementare la barra di stato in base al numero di tick specificati nel campo 2 ogni volta che un messaggio ActionData viene inviato dall'azione corrente.
2 Non utilizzato  
3 Non utilizzato  
 

Il significato di Field 4 dipende dal valore in Campo 1 come indicato di seguito.

Campo 1 valore Campo 4 valore Descrizione campo 4
0 0 L'esecuzione è in corso. In questo caso, l'interfaccia utente potrebbe calcolare e visualizzare il tempo rimanente.
  1 Creazione dello script di esecuzione. In questo caso, l'interfaccia utente potrebbe visualizzare un messaggio per attendere mentre il programma di installazione termina la preparazione dell'installazione.
1 Non utilizzato  
2 Non utilizzato  
3 Non utilizzato  
 

Per altre informazioni e un esempio di codice, vedere Aggiunta di azioni personalizzate a ProgressBar.

Visualizzazione di finestre di messaggio

Per visualizzare una finestra di messaggio con pulsanti o icone, utilizzare gli operatori OR per aggiungere INSTALLMESSAGE_ERROR, INSTALLMESSAGE_WARNING o INSTALLMESSAGE_USER con le opzioni della finestra di messaggio utilizzate da MessageBox e MessageBoxEx. Le opzioni disponibili per i pulsanti sono MB_OK, MB_OKCANCEL, MB_ABORTRETRYIGNORE, MB_YESNOCANCEL, MB_YESNO e MB_RETRYCANCEL. Le opzioni predefinite disponibili sono MB_DEFBUTTON1, MB_DEFBUTTON2 e MB_DEFBUTTON3. Le opzioni delle icone disponibili sono MB_ICONERROR, MB_ICONQUESTION, MB_ICONWARNING e MB_ICONINFORMATION. Se non viene specificata alcuna opzione di icona, Windows Installer sceglie uno stile icona predefinito in base al tipo di messaggio.

Ad esempio, la chiamata seguente a MsiProcessMessage invia un messaggio di INSTALLMESSAGE_ERROR con l'icona MB_ICONWARNING e i pulsanti MB_ABORTRETRYCANCEL.

PMSIHANDLE hInstall;
PMSIHANDLE hRec;
MsiProcessMessage(hInstall, 
                  INSTALLMESSAGE(INSTALLMESSAGE_ERROR|MB_ABORTRETRYIGNORE|MB_ICONWARNING),
                  hRec);

Se un'azione personalizzata chiama MsiProcessMessage, l'azione personalizzata deve essere in grado di gestire un annullamento da parte dell'utente e deve restituire ERROR_INSTALL_USEREXIT.

Per altre informazioni sull'invio di messaggi con MsiProcessMessage, vedere Invio di messaggi a Windows Installer tramite MsiProcessMessage.

Requisiti

Requisito Valore
Client minimo supportato Windows Installer 5.0 in Windows Server 2012, Windows 8, Windows Server 2008 R2 o Windows 7. Windows Installer 4.0 o Windows Installer 4.5 in Windows Server 2008 o Windows Vista. Windows Installer in Windows Server 2003 o Windows XP
Piattaforma di destinazione Windows
Intestazione msiquery.h
Libreria Msi.lib
DLL Msi.dll

Vedi anche

Funzioni di azione del programma di installazione

Invio di messaggi a Windows Installer tramite MsiProcessMessage