Fungsi MsiGetFeatureCostA (msiquery.h)
Fungsi MsiGetFeatureCost mengembalikan ruang disk yang diperlukan oleh fitur dan fitur turunan dan induk yang dipilih.
Sintaks
UINT MsiGetFeatureCostA(
[in] MSIHANDLE hInstall,
[in] LPCSTR szFeature,
[in] MSICOSTTREE iCostTree,
[in] INSTALLSTATE iState,
[out] LPINT piCost
);
Parameter
[in] hInstall
Tangani penginstalan yang disediakan untuk tindakan kustom DLL atau diperoleh melalui MsiOpenPackage, MsiOpenPackageEx, atau MsiOpenProduct.
[in] szFeature
Menentukan nama fitur.
[in] iCostTree
Menentukan nilai yang digunakan fungsi untuk menentukan persyaratan ruang disk. Parameter ini bisa menjadi salah satu nilai berikut.
[in] iState
Menentukan status penginstalan. Parameter ini bisa menjadi salah satu nilai berikut.
[out] piCost
Menerima persyaratan ruang disk dalam satuan 512 byte. Parameter ini tidak boleh null.
Mengembalikan nilai
Fungsi MsiGetFeatureCost mengembalikan nilai berikut:
Keterangan
Lihat Memanggil Fungsi Database Dari Program.
Dengan fungsi MsiGetFeatureCost , nilai MSICOSTTREE_SELFONLY menunjukkan jumlah total ruang disk (dalam unit 512 byte) yang diperlukan oleh fitur yang ditentukan saja. Nilai yang dikembalikan ini tidak termasuk turunan atau fitur induk dari fitur yang ditentukan. Total biaya ini terdiri dari biaya disk yang diatribusikan ke setiap komponen yang ditautkan ke fitur tersebut.
Nilai MSICOSTTREE_CHILDREN menunjukkan jumlah total ruang disk (dalam unit 512 byte) yang diperlukan oleh fitur yang ditentukan dan turunannya. Untuk setiap fitur, total biaya terdiri dari biaya disk yang dikaitkan dengan setiap komponen yang ditautkan ke fitur tersebut.
Nilai MSICOSTTREE_PARENTS menunjukkan jumlah total ruang disk (dalam unit 512 byte) yang diperlukan oleh fitur yang ditentukan dan fitur induknya (hingga akar tabel Fitur). Untuk setiap fitur, total biaya terdiri dari biaya disk yang dikaitkan dengan setiap komponen yang ditautkan ke fitur tersebut.
MsiGetFeatureCost bergantung pada beberapa fungsi lain agar berhasil. Contoh berikut menunjukkan urutan di mana fungsi-fungsi ini harus dipanggil:
MSIHANDLE hInstall; //product handle, must be closed
int iCost; //cost returned by MsiGetFeatureCost
MsiOpenPackage("Path to package....",&hInstall); //"Path to package...." should be replaced with the full path to the package to be opened
MsiDoAction(hInstall,"CostInitialize"); //
MsiDoAction(hInstall,"FileCost");
MsiDoAction(hInstall,"CostFinalize");
MsiDoAction(hInstall,"InstallValidate");
MsiGetFeatureCost(hInstall,"FeatureName",MSICOSTTREE_SELFONLY,INSTALLSTATE_ABSENT,&iCost);
MsiCloseHandle(hInstall); //close the open product handle
Proses untuk mengkueri biaya fitur yang dijadwalkan untuk dihapus sedikit berbeda:
MSIHANDLE hInstall; //product handle, must be closed
int iCost; //cost returned by MsiGetFeatureCost
MsiOpenPackage("Path to package....",&hInstall); //"Path to package...." should be replaced with the full path to the package to be opened
MsiDoAction(hInstall,"CostInitialize"); //
MsiDoAction(hInstall,"FileCost");
MsiDoAction(hInstall,"CostFinalize");
MsiSetFeatureState(hInstall,"FeatureName",INSTALLSTATE_ABSENT); //set the feature's state to "not installed"
MsiDoAction(hInstall,"InstallValidate");
MsiGetFeatureCost(hInstall,"FeatureName",MSICOSTTREE_SELFONLY,INSTALLSTATE_ABSENT,&iCost);
MsiCloseHandle(hInstall); //close the open product handle
Jika fungsi gagal, Anda dapat memperoleh informasi kesalahan yang diperluas dengan menggunakan MsiGetLastErrorRecord.
Catatan
Header msiquery.h mendefinisikan MsiGetFeatureCost sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta preprosektor 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
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