Fungsi MsiEnumComponentCostsA (msiquery.h)
Fungsi MsiEnumComponentCosts menghitung ruang disk per drive yang diperlukan untuk menginstal komponen. Informasi ini diperlukan untuk menampilkan biaya ruang disk yang diperlukan untuk semua drive di antarmuka pengguna. Biaya ruang disk yang dikembalikan dinyatakan dalam kelipatan 512 byte.
MsiEnumComponentCosts hanya boleh dijalankan setelah penginstal menyelesaikan biaya file dan setelah tindakan CostFinalize. Untuk informasi selengkapnya, lihat Biaya File.
Sintaks
UINT MsiEnumComponentCostsA(
[in] MSIHANDLE hInstall,
[in] LPCSTR szComponent,
[in] DWORD dwIndex,
[in] INSTALLSTATE iState,
[out] LPSTR szDriveBuf,
[in, out] LPDWORD pcchDriveBuf,
[out] LPINT piCost,
[out] LPINT piTempCost
);
Parameter
[in] hInstall
Tangani penginstalan yang disediakan untuk tindakan kustom DLL atau diperoleh melalui MsiOpenPackage, MsiOpenPackageEx, atau MsiOpenProduct.
[in] szComponent
String null-terminated yang menentukan nama komponen seperti yang tercantum di kolom Komponen tabel Komponen. Parameter ini dapat berupa null. Jika szComponent null atau string kosong, MsiEnumComponentCosts menghitung total ruang disk per drive yang digunakan selama penginstalan. Dalam hal ini, iState diabaikan. Biaya alat penginstal termasuk biaya tersebut untuk penembolokan database di folder aman serta biaya untuk membuat skrip penginstalan. Perhatikan bahwa total ruang disk yang digunakan selama penginstalan mungkin lebih besar dari ruang yang digunakan setelah komponen diinstal.
[in] dwIndex
Indeks berbasis 0 untuk drive. Parameter ini harus nol untuk panggilan pertama ke fungsi MsiEnumComponentCosts lalu dinaikkan untuk panggilan berikutnya.
[in] iState
Status komponen yang diminta untuk dijumlahkan. Jika szComponent diteruskan sebagai Null atau string kosong, penginstal mengabaikan parameter iState .
[out] szDriveBuf
Buffer yang menyimpan nama drive termasuk terminator null. Ini adalah string kosong jika terjadi kesalahan.
[in, out] pcchDriveBuf
Penunjuk ke variabel yang menentukan ukuran, dalam TCHAR, dari buffer yang ditujukkan oleh parameter lpDriveBuf . Ukuran ini harus mencakup karakter null yang mengakhiri. Jika buffer yang disediakan terlalu kecil, variabel yang diacu oleh pcchDriveBuf berisi jumlah karakter yang tidak termasuk terminator null.
[out] piCost
Biaya komponen per drive yang dinyatakan dalam kelipatan 512 byte. Nilai ini adalah 0 jika terjadi kesalahan. Nilai yang dikembalikan dalam piCost adalah ruang disk akhir yang digunakan oleh komponen setelah penginstalan. Jika szComponent diteruskan sebagai Null atau string kosong, alat penginstal mengatur nilai di piCost ke 0.
[out] piTempCost
Biaya komponen per drive selama durasi penginstalan, atau 0 jika terjadi kesalahan. Nilai dalam *piTempCost mewakili persyaratan ruang sementara selama durasi penginstalan. Persyaratan ruang sementara ini adalah ruang yang diperlukan hanya selama durasi penginstalan. Ini tidak memengaruhi persyaratan ruang disk akhir.
Mengembalikan nilai
Tampilkan Nilai | Makna |
---|---|
|
Data konfigurasi rusak. |
|
Parameter yang tidak valid diteruskan ke fungsi. |
|
Tidak ada lagi drive untuk kembali. |
|
Nilai dijumlahkan. |
|
Komponen hilang. |
|
Biaya tidak lengkap. |
|
Buffer tidak cukup besar untuk nama drive. |
|
Handel yang disediakan tidak valid atau tidak aktif. |
Keterangan
Metode yang direkomendasikan untuk menghitung biaya ruang disk per drive adalah sebagai berikut. Mulailah dengan dwIndex diatur ke 0 dan tingkatkan satu per satu setelah setiap panggilan. Lanjutkan enumerasi selama MsiEnumComponentCosts mengembalikan ERROR_SUCCESS.
MsiEnumComponentCosts dapat dipanggil dari tindakan kustom.
Total biaya disk akhir untuk penginstalan adalah jumlah biaya semua komponen ditambah biaya Pemasang Windows (szComponent = null).
Catatan
Header msiquery.h mendefinisikan MsiEnumComponentCosts 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 |
Target Platform | Windows |
Header | msiquery.h |
Pustaka | Msi.lib |
DLL | Msi.dll |
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