Fungsi MsiProcessMessage (msiquery.h)
Fungsi MsiProcessMessage mengirimkan rekaman kesalahan ke alat penginstal untuk diproses.
Sintaks
int MsiProcessMessage(
[in] MSIHANDLE hInstall,
[in] INSTALLMESSAGE eMessageType,
[in] MSIHANDLE hRecord
);
Parameter
[in] hInstall
Tangani penginstalan yang disediakan untuk tindakan kustom DLL atau diperoleh melalui MsiOpenPackage, MsiOpenPackageEx, atau MsiOpenProduct.
[in] eMessageType
Parameter eMessage harus berupa nilai yang menentukan salah satu jenis pesan berikut. Untuk menampilkan kotak pesan dengan tombol atau ikon pendorongan, gunakan operator OR untuk menambahkan INSTALLMESSAGE_ERROR, INSTALLMESSAGE_WARNING, atau INSTALLMESSAGE_USER ke gaya kotak pesan standar yang digunakan oleh fungsi MessageBox dan MessageBoxEx . Untuk informasi selengkapnya, lihat Keterangan di bawah ini.
Nilai | Makna |
---|---|
|
Penghentian dini, mungkin fatal kehabisan memori. |
|
Pesan kesalahan yang diformat, |
|
Pesan peringatan yang diformat, |
|
Pesan permintaan pengguna, |
|
Pesan informatif untuk log, |
|
Daftar file yang saat ini sedang digunakan yang harus ditutup sebelum diganti. |
|
Permintaan untuk menentukan lokasi sumber yang valid. |
|
Daftar file yang saat ini sedang digunakan yang harus ditutup sebelum diganti. Tersedia dimulai dengan Penginstal Windows versi 4.0. Untuk informasi selengkapnya tentang pesan ini lihat Menggunakan Restart Manager dengan UI Eksternal. |
|
Pesan ruang disk tidak cukup. |
|
Kemajuan: awal tindakan, |
|
Data tindakan. Bidang rekaman sesuai dengan templat pesan ACTIONSTART. |
|
Informasi bilah kemajuan. Lihat deskripsi bidang rekaman di bawah ini. |
|
Untuk mengaktifkan tombol Batalkan, atur [1] ke 2 dan [2] ke 1.
Untuk menonaktifkan tombol Batalkan, atur [1] ke 2 dan [2] ke 0 |
[in] hRecord
Tangani ke rekaman yang berisi format pesan dan data.
Mengembalikan nilai
Fungsi ini mengembalikan int.
Keterangan
Fungsi MsiProcessMessage melakukan operasi pengelogan yang diaktifkan dan menunda eksekusi. Anda dapat mengaktifkan pengelogan secara selektif untuk berbagai jenis pesan.
Untuk pesan INSTALLMESSAGE_FATALEXIT, INSTALLMESSAGE_ERROR, INSTALLMESSAGE_WARNING, dan INSTALLMESSAGE_USER, jika bidang 0 tidak diatur bidang 1 harus diatur ke kode kesalahan yang sesuai dengan pesan kesalahan dalam tabel Kesalahan. Kemudian, pesan diformat menggunakan templat dari tabel Kesalahan sebelum meneruskannya ke handler antarmuka pengguna untuk ditampilkan.
Bidang Rekaman untuk Pesan Bilah Kemajuan
Berikut ini menjelaskan bidang rekaman saat eMessageType diatur ke INSTALLMESSAGE_PROGRESS. Bidang 1 menentukan jenis pesan kemajuan. Arti bidang lain bergantung pada nilai di bidang ini. Nilai yang mungkin dapat diatur ke dalam Bidang 1 adalah sebagai berikut.Nilai Bidang 1 | Deskripsi bidang 1 |
---|---|
0 | Mereset bilah kemajuan dan mengatur jumlah total tick yang diharapkan di bilah. |
1 | Menyediakan informasi yang terkait dengan pesan kemajuan yang akan dikirim oleh tindakan saat ini. |
2 | Menaikkan bilah kemajuan. |
3 | Memungkinkan tindakan (seperti CustomAction) untuk menambahkan tanda centang ke jumlah total kemajuan bilah kemajuan yang diharapkan. |
Arti Bidang 2 bergantung pada nilai di Bidang 1 sebagai berikut.
Nilai Bidang 1 | Deskripsi Bidang 2 |
---|---|
0 | Jumlah total tick yang diharapkan di bilah kemajuan. |
1 | Jumlah tanda centang yang dipindahkan bilah kemajuan untuk setiap pesan ActionData yang dikirim oleh tindakan saat ini. Bidang ini diabaikan jika Bidang 3 adalah 0. |
2 | Jumlah tanda centang bilah kemajuan telah dipindahkan. |
3 | Jumlah tanda centang untuk ditambahkan ke total kemajuan yang diharapkan. |
Arti Bidang 3 bergantung pada nilai di Bidang 1 sebagai berikut.
Nilai Bidang 1 | Nilai Bidang 3 | Deskripsi Bidang 3 |
---|---|---|
0 | 0 | Bilah kemajuan terusan (kiri ke kanan) |
1 | Bilah kemajuan mundur (kanan ke kiri) | |
1 | 0 | Tindakan saat ini akan mengirim pesan ProgressReport eksplisit. |
1 | Tahapkan bilah kemajuan dengan jumlah tanda centang yang ditentukan di Bidang 2 setiap kali pesan ActionData dikirim oleh tindakan saat ini. | |
2 | Tidak digunakan | |
3 | Tidak digunakan |
Arti Bidang 4 tergantung pada nilai di Bidang 1 sebagai berikut.
Nilai Bidang 1 | Nilai Bidang 4 | Deskripsi Bidang 4 |
---|---|---|
0 | 0 | Eksekusi sedang berlangsung. Dalam hal ini, UI dapat menghitung dan menampilkan waktu yang tersisa. |
1 | Membuat skrip eksekusi. Dalam hal ini, UI dapat menampilkan pesan untuk menunggu sementara alat penginstal selesai menyiapkan penginstalan. | |
1 | Tidak digunakan | |
2 | Tidak digunakan | |
3 | Tidak digunakan |
Untuk informasi selengkapnya dan sampel kode, lihat Menambahkan Tindakan Kustom ke Bilah Kemajuan.
Tampilan Kotak Pesan
Untuk menampilkan kotak pesan dengan tombol atau ikon push, gunakan operator OR untuk menambahkan INSTALLMESSAGE_ERROR, INSTALLMESSAGE_WARNING, atau INSTALLMESSAGE_USER dengan opsi kotak pesan yang digunakan oleh MessageBox dan MessageBoxEx. Opsi tombol dorong yang tersedia adalah MB_OK, MB_OKCANCEL, MB_ABORTRETRYIGNORE, MB_YESNOCANCEL, MB_YESNO, dan MB_RETRYCANCEL. Opsi tombol default yang tersedia adalah MB_DEFBUTTON1, MB_DEFBUTTON2, dan MB_DEFBUTTON3. Opsi ikon yang tersedia adalah MB_ICONERROR, MB_ICONQUESTION, MB_ICONWARNING, dan MB_ICONINFORMATION. Jika tidak ada opsi ikon yang ditentukan, Pemasang Windows memilih gaya ikon default berdasarkan jenis pesan.Misalnya, panggilan berikut ke MsiProcessMessage mengirim pesan INSTALLMESSAGE_ERROR dengan ikon MB_ICONWARNING dan tombol MB_ABORTRETRYCANCEL.
PMSIHANDLE hInstall;
PMSIHANDLE hRec;
MsiProcessMessage(hInstall,
INSTALLMESSAGE(INSTALLMESSAGE_ERROR|MB_ABORTRETRYIGNORE|MB_ICONWARNING),
hRec);
Jika tindakan kustom memanggil MsiProcessMessage, tindakan kustom harus mampu menangani pembatalan oleh pengguna dan harus mengembalikan ERROR_INSTALL_USEREXIT.
Untuk informasi selengkapnya tentang mengirim pesan dengan MsiProcessMessage, lihat Penginstal Mengirim Pesan ke Pemasang Windows Menggunakan MsiProcessMessage.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows Installer 5.0 di Windows Server 2012, Windows 8, Windows Server 2008 R2 atau Windows 7. Windows Installer 4.0 atau Windows Installer 4.5 di Windows Server 2008 atau Windows Vista. Windows Installer pada Windows Server 2003 atau Windows XP |
Target Platform | Windows |
Header | msiquery.h |
Pustaka | Msi.lib |
DLL | Msi.dll |
Lihat juga
Fungsi Tindakan Alat Penginstal
Mengirim Pesan ke Pemasang Windows Menggunakan MsiProcessMessage