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
INSTALLMESSAGE_FATALEXIT
Penghentian dini, mungkin fatal kehabisan memori.
INSTALLMESSAGE_ERROR
Pesan kesalahan yang diformat,
 
[1] adalah nomor pesan dalam tabel Kesalahan.
INSTALLMESSAGE_WARNING
Pesan peringatan yang diformat,
 
[1] adalah nomor pesan dalam tabel Kesalahan.
INSTALLMESSAGE_USER
Pesan permintaan pengguna,
 
[1] adalah nomor pesan dalam tabel Kesalahan.
INSTALLMESSAGE_INFO
Pesan informatif untuk log,
 
tidak ditampilkan.
INSTALLMESSAGE_FILESINUSE
Daftar file yang saat ini sedang digunakan yang harus ditutup sebelum diganti.
INSTALLMESSAGE_RESOLVESOURCE
Permintaan untuk menentukan lokasi sumber yang valid.
INSTALLMESSAGE_RMFILESINUSE
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.
INSTALLMESSAGE_OUTOFDISKSPACE
Pesan ruang disk tidak cukup.
INSTALLMESSAGE_ACTIONSTART
Kemajuan: awal tindakan,
 
[1] nama tindakan,
 
[2] deskripsi,
 
[3] templat untuk pesan ACTIONDATA.
INSTALLMESSAGE_ACTIONDATA
Data tindakan. Bidang rekaman sesuai dengan templat pesan ACTIONSTART.
INSTALLMESSAGE_PROGRESS
Informasi bilah kemajuan. Lihat deskripsi bidang rekaman di bawah ini.
INSTALLMESSAGE_COMMONDATA
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