Fungsi MsiGetSourcePathA (msiquery.h)
Fungsi MsiGetSourcePath mengembalikan jalur sumber lengkap untuk folder dalam tabel Direktori.
Sintaks
UINT MsiGetSourcePathA(
[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 null-terminated yang menentukan rekaman tabel Direktori. Jika direktori adalah direktori akar, ini bisa menjadi nilai dari kolom DefaultDir. Jika tidak, nilai harus berupa nilai dari kolom Direktori.
[out] szPathBuf
Penunjuk ke buffer yang menerima jalur sumber penuh yang dihentikan null. 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. Pada 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 mengembalikan 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.
Mengembalikan nilai
Fungsi MsiGetSourcePath mengembalikan nilai berikut:
Keterangan
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.
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).
Jika fungsi gagal, Anda dapat memperoleh informasi kesalahan yang diperluas dengan menggunakan MsiGetLastErrorRecord.
Catatan
Header msiquery.h mendefinisikan MsiGetSourcePath 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
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 |