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 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 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. 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 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 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

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. Windows Installer pada Windows Server 2003 atau Windows XP
Target Platform Windows
Header msiquery.h
Pustaka Msi.lib
DLL Msi.dll

Lihat juga

Fungsi Lokasi Alat Penginstal

Meneruskan Null sebagai Argumen Fungsi Pemasang Windows