Fungsi MsiSetFeatureStateA (msiquery.h)

Fungsi MsiSetFeatureState mengatur fitur ke status tertentu.

Sintaks

UINT MsiSetFeatureStateA(
  [in] MSIHANDLE    hInstall,
  [in] LPCSTR       szFeature,
  [in] INSTALLSTATE iState
);

Parameter

[in] hInstall

Tangani penginstalan yang disediakan untuk tindakan kustom DLL atau diperoleh melalui MsiOpenPackage, MsiOpenPackageEx, atau MsiOpenProduct.

[in] szFeature

Menentukan nama fitur.

[in] iState

Menentukan status yang akan diatur. Parameter ini bisa menjadi salah satu nilai berikut.

Nilai Makna
INSTALLSTATE_ABSENT
Fitur ini tidak diinstal.
INSTALLSTATE_LOCAL
Fitur ini diinstal pada drive lokal.
INSTALLSTATE_SOURCE
Fitur ini dijalankan dari sumber, CD, atau jaringan.
INSTALLSTATE_ADVERTISED
Fitur ini diiklankan.

Nilai kembali

Fungsi MsiSetFeatureState mengembalikan nilai berikut:

Keterangan

Fungsi MsiSetFeatureState meminta perubahan dalam status pilih fitur dalam tabel Fitur dan turunannya. Pada gilirannya, status tindakan semua komponen yang ditautkan ke rekaman fitur yang diubah juga diperbarui dengan tepat, berdasarkan status pemilihan fitur baru.

Fungsi MsiSetInstallLevel harus dipanggil sebelum memanggil MsiSetFeatureState.

Ketika MsiSetFeatureState dipanggil, alat penginstal mencoba mengatur status tindakan setiap komponen yang terkait dengan fitur yang ditentukan ke status yang ditentukan. Namun, ada situasi umum ketika permintaan tidak dapat diimplementasikan sepenuhnya. Misalnya, jika fitur terkait dengan dua komponen, komponen A dan komponen B, melalui tabel FeatureComponents , dan komponen A memiliki atribut msidbComponentAttributesLocalOnly dan komponen B memiliki atribut msidbComponentAttributesSourceOnly . Dalam hal ini, jika MsiSetFeatureState dipanggil dengan status yang diminta baik INSTALLSTATE_LOCAL atau INSTALLSTATE_SOURCE, permintaan tidak dapat sepenuhnya diimplementasikan untuk kedua komponen. Dalam hal ini, kedua komponen diaktifkan, dengan komponen A diatur ke Lokal dan komponen B diatur ke Sumber.

Jika lebih dari satu fitur ditautkan ke satu komponen (skenario umum), status tindakan akhir komponen tersebut ditentukan sebagai berikut:

  • Jika setidaknya satu fitur mengharuskan komponen diinstal secara lokal, fitur ini diinstal dengan status lokal.
  • Jika setidaknya satu fitur mengharuskan komponen dijalankan dari sumbernya, fitur ini diinstal dengan status sumber.
  • Jika setidaknya satu fitur memerlukan penghapusan komponen, status tindakan tidak ada.
Lihat Memanggil Fungsi Database dari Program.

Jika fungsi gagal, Anda dapat memperoleh informasi kesalahan yang diperluas dengan menggunakan MsiGetLastErrorRecord.

Catatan

Header msiquery.h mendefinisikan MsiSetFeatureState sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praproscesor 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

Fungsi Pemilihan Alat Penginstal