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 |
---|---|
|
Terminazione prematura, probabilmente irreversibile dalla memoria. |
|
Messaggio di errore formattato, |
|
Messaggio di avviso formattato, |
|
Messaggio di richiesta utente, |
|
Messaggio informativo per il log, |
|
Elenco di file attualmente in uso che devono essere chiusi prima di essere sostituiti. |
|
Richiedere di determinare un percorso di origine valido. |
|
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. |
|
Messaggio di spazio su disco insufficiente. |
|
Avanzamento: inizio dell'azione, |
|
Dati dell'azione. I campi record corrispondono al modello di messaggio ACTIONSTART. |
|
Informazioni sulla barra di avanzamento. Vedere la descrizione dei campi record di seguito. |
|
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