Fungsi MsiQueryComponentStateA (msi.h)

Fungsi MsiQueryComponentState mengembalikan status terinstal untuk komponen. Fungsi ini dapat mengkueri komponen instans produk yang diinstal di bawah akun pengguna selain pengguna saat ini asalkan produk tidak diiklankan di bawah konteks per pengguna yang tidak dikelola untuk akun pengguna selain pengguna saat ini. Proses panggilan harus memiliki hak administratif untuk mendapatkan informasi untuk produk yang diinstal untuk pengguna selain pengguna saat ini.

Sintaks

UINT MsiQueryComponentStateA(
  [in]  LPCSTR            szProductCode,
  [in]  LPCSTR            szUserSid,
  [in]  MSIINSTALLCONTEXT dwContext,
  [in]  LPCSTR            szComponentCode,
  [out] INSTALLSTATE      *pdwState
);

Parameter

[in] szProductCode

Menentukan GUID ProductCode untuk produk yang berisi komponen.

[in] szUserSid

Menentukan pengidentifikasi keamanan (SID) akun tempat instans produk yang dikueri ada. Jika dwContext tidak MSIINSTALLCONTEXT_MACHINE, null menentukan pengguna saat ini.

Jenis SID Makna
NULL
NULL menunjukkan pengguna yang saat ini masuk.
Pengidentifikasi keamanan pengguna
Menentukan enumerasi untuk pengguna tertentu dalam sistem. Contoh SID pengguna adalah "S-1-3-64-2415071341-1358098788-3127455600-2561".
 
Catatan String SID khusus "S-1-5-18" (sistem) tidak dapat digunakan untuk menghitung produk yang diinstal sebagai per komputer. Jika dwContextMSIINSTALLCONTEXT_MACHINE, szUserSid harus null.
 

[in] dwContext

Konteks penginstalan instans produk yang sedang dikueri.

Nama Makna
MSIINSTALLCONTEXT_USERMANAGED
Mengambil status komponen untuk instans produk yang dikelola per pengguna.
MSIINSTALLCONTEXT_USERUNMANAGED
Mengambil status komponen untuk instans produk per-pengguna-non-terkelola.
MSIINSTALLCONTEXT_MACHINE
Mengambil status komponen untuk instans per komputer produk.

[in] szComponentCode

Menentukan komponen yang sedang dikueri. GUID kode komponen seperti yang ditemukan di kolom ComponentID dari tabel Komponen .

[out] pdwState

Status penginstalan komponen untuk instans produk yang ditentukan. Parameter ini dapat mengembalikan salah satu nilai berikut atau null.

Nilai Makna
INSTALLSTATE_LOCAL
Komponen diinstal secara lokal.
INSTALLSTATE_SOURCE
Komponen diinstal untuk dijalankan dari sumber.

Mengembalikan nilai

Fungsi MsiQueryComponentState mengembalikan nilai berikut.

Nilai Makna
ERROR_ACCESS_DENIED
Proses panggilan harus memiliki hak administratif untuk mendapatkan informasi untuk produk yang diinstal untuk pengguna selain pengguna saat ini.
ERROR_BAD_CONFIGURATION
Data konfigurasi rusak.
ERROR_INVALID_PARAMETER
Parameter yang tidak valid diteruskan ke fungsi.
ERROR_SUCCESS
Fungsi berhasil diselesaikan.
ERROR_UNKNOWN_COMPONENT
ID komponen tidak mengidentifikasi komponen yang diketahui.
ERROR_UNKNOWN_PRODUCT
Kode produk tidak mengidentifikasi produk yang diketahui.
ERROR_FUNCTION_FAILED
Kegagalan yang tidak dapat ditentukan ke kode galat Windows apa pun.
ERROR_MORE_DATA
Buffer terlalu kecil untuk mendapatkan SID pengguna.
 

Untuk informasi selengkapnya, lihat Pesan Kesalahan yang Ditampilkan.

Keterangan

Catatan

Header msi.h mendefinisikan MsiQueryComponentState 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

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. Lihat Persyaratan Run-Time Penginstal Windows untuk informasi tentang paket layanan Windows minimum yang diperlukan oleh versi Penginstal Windows.
Target Platform Windows
Header msi.h
Pustaka Msi.lib
DLL Msi.dll

Lihat juga

Komponen

Pesan Kesalahan yang Ditampilkan

Fungsi Pemilihan Alat Penginstal

Tidak Didukung di Windows Installer 2.0 dan yang lebih lama

ProductCode