Fungsi MsiProvideComponentA (msi.h)
Fungsi MsiProvideComponent mengembalikan jalur komponen lengkap, melakukan penginstalan yang diperlukan. Fungsi ini meminta sumber jika perlu dan menaikkan jumlah penggunaan untuk fitur tersebut.
Sintaks
UINT MsiProvideComponentA(
[in] LPCSTR szProduct,
[in] LPCSTR szFeature,
[in] LPCSTR szComponent,
[in] DWORD dwInstallMode,
[out] LPSTR lpPathBuf,
[in, out] LPDWORD pcchPathBuf
);
Parameter
[in] szProduct
Menentukan kode produk untuk produk yang berisi fitur dengan komponen yang diperlukan.
[in] szFeature
Menentukan ID fitur fitur dengan komponen yang diperlukan.
[in] szComponent
Menentukan kode komponen dari komponen yang diperlukan.
[in] dwInstallMode
Menentukan mode penginstalan. Parameter ini bisa menjadi salah satu nilai berikut.
Nilai | Makna |
---|---|
|
Berikan komponen dan lakukan penginstalan apa pun yang diperlukan untuk menyediakan komponen. Jika file kunci komponen dalam fitur yang diminta, atau induk fitur, hilang, instal ulang fitur menggunakan MsiReinstallFeature dengan kumpulan bit bendera berikut: REINSTALLMODE_FILEMISSING, REINSTALLMODE_FILEOLDERVERSION, REINSTALLMODE_FILEVERIFY, REINSTALLMODE_MACHINEDATA, REINSTALLMODE_USERDATA dan REINSTALLMODE_SHORTCUT. |
|
Berikan komponen hanya jika fitur ada. Jika tidak, kembalikan ERROR_FILE_NOT_FOUND.
Mode ini memverifikasi bahwa file kunci komponen ada. |
|
Berikan komponen hanya jika fitur ada. Jika tidak, kembalikan ERROR_FILE_NOT_FOUND.
Mode ini hanya memeriksa bahwa komponen terdaftar dan tidak memverifikasi bahwa file kunci komponen ada. |
|
Panggil MsiReinstallFeature untuk menginstal ulang fitur menggunakan parameter ini untuk parameter dwReinstallMode , lalu berikan komponen. |
|
Berikan komponen hanya jika status penginstalan fitur INSTALLSTATE_LOCAL. Jika status penginstalan fitur INSTALLSTATE_SOURCE, kembalikan ERROR_INSTALL_SOURCE_ABSENT. Jika tidak, kembalikan ERROR_FILE_NOT_FOUND. Mode ini hanya memeriksa bahwa komponen terdaftar dan tidak memverifikasi bahwa file kunci ada. |
[out] lpPathBuf
Penunjuk ke variabel yang menerima jalur ke komponen. Parameter ini dapat berupa null.
[in, out] pcchPathBuf
Penunjuk ke variabel yang menentukan ukuran, dalam karakter, dari buffer yang diacu oleh parameter lpPathBuf . Pada input, ini adalah ukuran penuh buffer, termasuk spasi untuk karakter null yang mengakhiri. Jika buffer yang diteruskan terlalu kecil, jumlah yang dikembalikan tidak menyertakan karakter null yang mengakhiri.
Jika lpPathBuf null, pcchBuf bisa null.
Nilai kembali
Nilai | Makna |
---|---|
|
Data konfigurasi rusak. |
|
Fitur ini tidak ada atau rusak. kesalahan ini dikembalikan untuk dwInstallMode = INSTALLMODE_EXISTING. |
|
Penginstalan gagal. |
|
Komponen yang diminta dinonaktifkan pada komputer. |
|
Parameter yang tidak valid diteruskan ke fungsi. |
|
Fungsi berhasil diselesaikan. |
|
ID fitur tidak mengidentifikasi fitur yang diketahui. |
|
Kode produk tidak mengidentifikasi produk yang diketahui. |
|
Produk yang tidak dikenali atau nama fitur diteruskan ke fungsi. |
|
Luapan buffer dikembalikan. |
|
Tidak dapat mendeteksi sumber. |
Untuk informasi selengkapnya, lihat Pesan Kesalahan yang Ditampilkan.
Keterangan
Setelah keberhasilan fungsi MsiProvideComponent , parameter pcchPathBuf berisi panjang string dalam lpPathBuf.
Fungsi MsiProvideComponent menggabungkan fungsionalitas MsiUseFeature, MsiConfigureFeature, dan MsiGetComponentPath. Anda dapat menggunakan fungsi MsiProvideComponent untuk menyederhanakan urutan panggilan. Namun, karena fungsi ini menaikkan jumlah penggunaan, gunakan dengan hati-hati untuk mencegah jumlah penggunaan yang tidak akurat. Fungsi MsiProvideComponent juga memberikan lebih sedikit fleksibilitas daripada rangkaian panggilan individual.
Jika aplikasi pulih dari situasi yang tidak terduga, aplikasi mungkin telah disebut MsiUseFeature dan meningkatkan jumlah penggunaan. Dalam hal ini, aplikasi harus memanggil MsiConfigureFeature alih-alih MsiProvideComponent untuk menghindari peningkatan hitungan lagi.
Opsi INSTALLMODE_EXISTING tidak dapat digunakan dalam kombinasi dengan bendera REINSTALLMODE.
Fitur dengan komponen yang berisi file yang rusak atau versi file yang salah harus diinstal ulang secara eksplisit oleh pengguna atau dengan meminta aplikasi memanggil MsiReinstallFeature.
Catatan
Header msi.h mendefinisikan MsiProvideComponent sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta pra-prosesor 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. Pemasang Windows pada Windows Server 2003 atau Windows XP. Lihat Persyaratan Run-Time Penginstal Windows untuk informasi tentang paket layanan Windows minimum yang diperlukan oleh versi Pemasang Windows. |
Target Platform | Windows |
Header | msi.h |
Pustaka | Msi.lib |
DLL | Msi.dll |