Fungsi MsiGetFeatureValidStatesA (msiquery.h)
Fungsi MsiGetFeatureValidStates mengembalikan status penginstalan yang valid.
Sintaks
UINT MsiGetFeatureValidStatesA(
[in] MSIHANDLE hInstall,
[in] LPCSTR szFeature,
[out] LPDWORD lpInstallStates
);
Parameter
[in] hInstall
Tangani penginstalan yang disediakan untuk tindakan kustom DLL atau diperoleh melalui MsiOpenPackage, MsiOpenPackageEx, atau MsiOpenProduct.
[in] szFeature
Menentukan nama fitur.
[out] lpInstallStates
Menerima lokasi untuk menahan status penginstalan yang valid. Untuk setiap status penginstalan yang valid, alat penginstal mengatur pInstallState ke kombinasi nilai berikut. Parameter ini tidak boleh null.
Nilai kembali
Fungsi MsiGetFeatureValidStates mengembalikan nilai berikut:
Keterangan
Lihat Memanggil Fungsi Database Dari Program.
Fungsi MsiGetFeatureValidStates menentukan validitas status dengan mengkueri semua komponen yang ditautkan ke fitur yang ditentukan tanpa mempertimbangkan status komponen apa pun yang diinstal saat ini.
Status yang valid untuk fitur ditentukan sebagai berikut:
- Jika fitur tidak berisi komponen, INSTALLSTATE_LOCAL dan INSTALLSTATE_SOURCE adalah status yang valid untuk fitur tersebut.
- Jika setidaknya satu komponen fitur memiliki atribut msidbComponentAttributesLocalOnly atau msidbComponentAttributesOptional, INSTALLSTATE_LOCAL adalah status yang valid untuk fitur tersebut.
- Jika setidaknya satu komponen fitur memiliki atribut msidbComponentAttributesSourceOnly atau msidbComponentAttributesOptional, INSTALLSTATE_SOURCE adalah status yang valid untuk fitur tersebut.
- Jika file komponen milik fitur di-patch atau dari sumber terkompresi, maka INSTALLSTATE_SOURCE tidak disertakan sebagai status yang valid untuk fitur tersebut.
- INSTALLSTATE_ADVERTISE bukan status yang valid jika fitur melarang iklan (msidbFeatureAttributesDisallowAdvertise) atau fitur tersebut memerlukan dukungan platform untuk iklan (msidbFeatureAttributesNoUnsupportedAdvertise) dan platform tidak mendukungnya.
- INSTALLSTATE_ABSENT adalah status yang valid untuk fitur jika atributnya tidak menyertakan msidbFeatureAttributesUIDisallowAbsent.
- Status valid untuk fitur anak yang ditandai untuk mengikuti fitur induk (msidbFeatureAttributesFollowParent) didasarkan pada tindakan fitur induk atau status terinstal.
MsiGetFeatureValidStates(hProduct, "Feature1", &dwValidStates);
Jika Feature1 memiliki atribut nilai 0 (mendukung lokal), dan Feature1 memiliki satu komponen dengan atribut nilai 0 (hanya lokal), nilai dwValidStates setelah panggilan adalah 14. Ini menunjukkan bahwa INSTALLSTATE_LOCAL, INSTALLSTATE_ABSENT, dan INSTALLSTATE_ADVERTISED adalah status yang valid untuk Feature1. Pernyataan kondisional berikut mengevaluasi ke True jika lokal adalah status yang valid untuk fitur ini.
( ( dwValidStates & ( 1 << INSTALLSTATE_LOCAL ) ) = = ( 1 << INSTALLSTATE_LOCAL ) )
Jika fungsi gagal, Anda dapat memperoleh informasi kesalahan yang diperluas dengan menggunakan MsiGetLastErrorRecord.
Catatan
Header msiquery.h mendefinisikan MsiGetFeatureValidStates sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praproscessor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk