Bagikan melalui


Fungsi MsiGetComponentPathExA (msi.h)

Fungsi MsiGetComponentPathEx mengembalikan jalur lengkap ke komponen yang diinstal. Jika jalur kunci untuk komponen adalah kunci registri, maka fungsi mengembalikan kunci registri.

Fungsi ini memperluas fungsi MsiGetComponentPath yang ada untuk mengaktifkan pencarian komponen di seluruh akun pengguna dan konteks penginstalan.

Sintaksis

INSTALLSTATE MsiGetComponentPathExA(
  [in]                LPCSTR            szProductCode,
  [in]                LPCSTR            szComponentCode,
  [in, optional]      LPCSTR            szUserSid,
  [in, optional]      MSIINSTALLCONTEXT dwContext,
  [out, optional]     LPSTR             lpOutPathBuffer,
  [in, out, optional] LPDWORD           pcchOutPathBuffer
);

Parameter

[in] szProductCode

Nilai string null-terminated yang menentukan GUID kode produk aplikasi. Fungsi ini mendapatkan jalur komponen yang diinstal yang digunakan oleh aplikasi ini.

[in] szComponentCode

Nilai string null-terminated yang menentukan GUID kode komponen. Fungsi ini mendapatkan jalur komponen yang diinstal yang memiliki kode komponen ini.

[in, optional] szUserSid

Nilai string null-terminated yang menentukan pengidentifikasi keamanan (SID) untuk pengguna dalam sistem. Fungsi ini mendapatkan jalur komponen aplikasi yang diinstal yang diinstal di bawah akun pengguna yang diidentifikasi oleh SID ini. String SID khusus s-1-1-0 (Semua Orang) menentukan semua pengguna dalam sistem. Jika parameter ini NULL, fungsi mendapatkan jalur komponen yang diinstal untuk pengguna yang saat ini masuk saja.

Jenis SID Arti
NULL
Menentukan pengguna yang saat ini masuk.
SID Pengguna
Menentukan pengguna tertentu dalam sistem. Contoh SID pengguna adalah "S-1-3-64-2415071341-1358098788-3127455600-2561".
s-1-1-0
Menentukan semua pengguna dalam sistem.
 
Catatan String SID khusus s-1-5-18 (Sistem) tidak dapat digunakan untuk mencari aplikasi yang diinstal dalam konteks penginstalan per komputer. Mengatur nilai SID ke s-1-5-18 mengembalikan ERROR_INVALID_PARAMETER. Ketika dwContext diatur ke MSIINSTALLCONTEXT_MACHINE saja, szUserSid harus null.
 

[in, optional] dwContext

Bendera yang menentukan konteks penginstalan. Fungsi ini mendapatkan jalur komponen aplikasi yang diinstal yang diinstal dalam konteks penginstalan yang ditentukan. Parameter ini bisa menjadi kombinasi dari nilai berikut.

Konteks Arti
MSIINSTALLCONTEXT_USERMANAGED
1
Sertakan aplikasi yang diinstal dalam konteks penginstalan yang dikelola per pengguna.
MSIINSTALLCONTEXT_USERUNMANAGED
2
Sertakan aplikasi yang diinstal dalam konteks penginstalan per-pengguna-tidak terkelola.
MSIINSTALLCONTEXT_MACHINE
4
Sertakan aplikasi yang diinstal dalam konteks penginstalan per mesin. Ketika dwInstallContext diatur ke MSIINSTALLCONTEXT_MACHINE saja, parameter szUserSID harus null.

[out, optional] lpOutPathBuffer

Nilai string yang menerima jalur ke komponen. Parameter ini dapat null. Jika komponen adalah kunci registri, akar registri diwakili secara numerik. Jika ini adalah jalur subkunci registri, ada garis miring terbelakang di akhir Jalur Kunci. Jika ini adalah jalur kunci nilai registri, tidak ada garis miring terbelakang di akhir. Misalnya, jalur registri pada sistem operasi 32-bit HKEY_CURRENT_USER\SOFTWARE\Microsoft dikembalikan sebagai "01:\SOFTWARE\Microsoft". Akar registri yang dikembalikan pada sistem operasi 32-bit didefinisikan seperti yang ditunjukkan dalam tabel berikut.

Catatan Pada sistem operasi 64-bit, nilai 20 ditambahkan ke akar registri numerik dalam tabel ini untuk membedakannya dari jalur kunci registri pada sistem operasi 32-bit. Misalnya, jalur kunci registri HKEY_CURRENT_USER\SOFTWARE\Microsoft dikembalikan sebagai "21:\SOFTWARE\Microsoft\", jika jalur komponen adalah kunci registri pada sistem operasi 64-bit.
 
Akar Arti
HKEY_CLASSES_ROOT
00
HKEY_CURRENT_USER
01
HKEY_LOCAL_MACHINE
02
HKEY_USERS
03

[in, out, optional] pcchOutPathBuffer

Penunjuk ke lokasi yang menerima ukuran buffer, dalamTCHAR , yang ditunjukkan oleh parameter szPathBuf . Nilai di lokasi ini harus diatur ke hitungan TCHAR dalam string termasuk karakter null yang mengakhiri. Jika ukuran buffer terlalu kecil, parameter ini menerima panjang nilai string tanpa menyertakan karakter null yang mengakhiri dalam hitungan.

Mengembalikan nilai

Fungsi MsiGetComponentPathEx mengembalikan nilai berikut.

Nilai Arti
INSTALLSTATE_NOTUSED
Komponen yang diminta dinonaktifkan pada komputer.
INSTALLSTATE_BADCONFIG
Data konfigurasi rusak.
INSTALLSTATE_ABSENT
Komponen tidak diinstal.
INSTALLSTATE_INVALIDARG
Salah satu parameter fungsi tidak valid.
INSTALLSTATE_LOCAL
Komponen diinstal secara lokal.
INSTALLSTATE_SOURCE
Komponen diinstal untuk dijalankan dari sumber.
INSTALLSTATE_SOURCEABSENT
Sumber komponen tidak dapat diakses.
INSTALLSTATE_UNKNOWN
Kode produk atau ID komponen tidak diketahui.
INSTALLSTATE_BROKEN
Komponen rusak atau sebagian hilang dalam beberapa cara dan memerlukan perbaikan.

Komentar

Fungsi MsiGetComponentPathEx mungkin mengembalikan INSTALLSTATE_ABSENT atau INSTALL_STATE_UNKNOWN, karena alasan berikut:

  • INSTALLSTATE_ABSENT

    Aplikasi tidak memastikan bahwa fitur diinstal dengan benar dengan memanggil MsiUseFeature dan, jika perlu, MsiConfigureFeature.

  • INSTALLSTATE_UNKNOWN

    Fitur ini tidak diterbitkan. Aplikasi harus telah menentukan ini sebelumnya dengan memanggil MsiQueryFeatureState atau MsiEnumFeatures. Aplikasi melakukan panggilan ini saat menginisialisasi. Aplikasi hanya boleh menggunakan fitur yang diketahui diterbitkan. Karena INSTALLSTATE_UNKNOWN seharusnya dikembalikan oleh MsiUseFeature juga, MsiUseFeature tidak dipanggil, atau nilai pengembaliannya tidak diperiksa dengan benar.

Nota

Header msi.h mendefinisikan MsiGetComponentPathEx sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosem 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

Syarat Nilai
klien minimum yang didukung Windows Installer 5.0 di Windows Server 2012, Windows 8, Windows Server 2008 R2 atau Windows 7. Lihat Persyaratan Run-Time Penginstal Windows untuk informasi tentang paket layanan Windows minimum yang diperlukan oleh versi Penginstal Windows.
Platform Target Windows
Header msi.h
Pustaka Msi.lib
DLL Msi.dll

Lihat juga

Component-Specific Functions