Fungsi MsiGetTargetPathA (msiquery.h)
Fungsi MsiGetTargetPath mengembalikan jalur target penuh untuk folder dalam tabel Direktori.
Sintaks
UINT MsiGetTargetPathA(
[in] MSIHANDLE hInstall,
[in] LPCSTR szFolder,
[out] LPSTR szPathBuf,
[in, out] LPDWORD pcchPathBuf
);
Parameter
[in] hInstall
Tangani penginstalan yang disediakan untuk tindakan kustom DLL atau diperoleh melalui MsiOpenPackage, MsiOpenPackageEx, atau MsiOpenProduct.
[in] szFolder
String yang dihentikan null yang menentukan rekaman tabel Direktori. Jika direktori adalah direktori akar, ini bisa menjadi nilai dari kolom DefaultDir. Jika tidak, nilainya harus berupa nilai dari kolom Direktori.
[out] szPathBuf
Penunjuk ke buffer yang menerima jalur target penuh null yang dihentikan. Jangan mencoba menentukan ukuran buffer dengan meneruskan null (value=0) untuk szPathBuf. Anda bisa mendapatkan ukuran buffer dengan meneruskan string kosong (misalnya ""). Fungsi kemudian mengembalikan ERROR_MORE_DATA dan pcchPathBuf berisi ukuran buffer yang diperlukan dalam TCHAR, tidak termasuk karakter null yang mengakhiri. Saat pengembalian ERROR_SUCCESS, pcchPathBuf berisi jumlah TCHAR yang ditulis ke buffer, tidak termasuk karakter null yang mengakhiri.
[in, out] pcchPathBuf
Penunjuk ke variabel yang menentukan ukuran, dalam TCHAR, dari buffer yang diacu oleh variabel szPathBuf Ketika fungsi kembali ERROR_SUCCESS, variabel ini berisi ukuran data yang disalin ke szPathBuf, tidak termasuk karakter null yang mengakhiri. Jika szPathBuf tidak cukup besar, fungsi mengembalikan ERROR_MORE_DATA dan menyimpan ukuran yang diperlukan, tidak termasuk karakter null yang mengakhiri, dalam variabel yang ditunjukkan oleh pcchPathBuf.
Menampilkan nilai
Fungsi MsiGetTargetPath mengembalikan nilai berikut:
Keterangan
Jika ERROR_MORE_DATA dikembalikan, parameter yang merupakan penunjuk memberikan ukuran buffer yang diperlukan untuk menahan string. Jika ERROR_SUCCESS dikembalikan, ia memberikan jumlah karakter yang ditulis ke buffer string. Oleh karena itu Anda bisa mendapatkan ukuran buffer dengan meneruskan string kosong (misalnya "") untuk parameter yang menentukan buffer. Jangan mencoba menentukan ukuran buffer dengan meneruskan Null (value=0).
Sebelum memanggil fungsi ini, alat penginstal harus terlebih dahulu menjalankan tindakan CostInitialize, tindakan FileCost, dan tindakan CostFinalize. Untuk informasi selengkapnya, lihat Memanggil Fungsi Database dari Program.
MsiGetTargetPath mengembalikan jalur default direktori target yang ditulis dalam paket jika lokasi target saat ini tidak tersedia untuk penginstalan. Misalnya, jika selama Penginstalan Pemeliharaan , direktori target di lokasi jaringan tidak tersedia, alat penginstal mengatur ulang jalur direktori target kembali ke defaultnya. Untuk mendapatkan jalur aktual direktori target dalam hal ini, panggil MsiProvideComponent untuk komponen yang diketahui sebelumnya telah diinstal ke direktori yang dicari dan atur dwInstallMode ke INSTALLMODE_NODETECTION.
Untuk informasi selengkapnya, lihat Memanggil Fungsi Database Dari Program.
Jika fungsi gagal, Anda dapat memperoleh informasi kesalahan yang diperluas dengan menggunakan MsiGetLastErrorRecord.
Catatan
Header msiquery.h mendefinisikan MsiGetTargetPath 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 |