Fungsi MsiEnumComponentsExA (msi.h)

Fungsi MsiEnumComponentsEx menghitung komponen yang diinstal. Fungsi ini mengambil kode komponen untuk satu komponen setiap kali dipanggil. Kode komponen adalah STRING GUID yang unik untuk komponen, versi, dan bahasa.

Pemasang Windows 4.5 atau yang lebih lama: Tidak didukung. Fungsi ini tersedia dimulai dengan Windows Installer 5.0.

Sintaks

UINT MsiEnumComponentsExA(
  [in, optional]  LPCSTR            szUserSid,
  [in]            DWORD             dwContext,
  [in]            DWORD             dwIndex,
  [out, optional] CHAR [39]         szInstalledComponentCode,
  [out, optional] MSIINSTALLCONTEXT *pdwInstalledContext,
  [out, optional] LPSTR             szSid,
  [in, out]       LPDWORD           pcchSid
);

Parameter

[in, optional] szUserSid

String yang dihentikan null yang berisi pengidentifikasi keamanan (SID.) Enumerasi komponen yang diinstal meluas ke pengguna yang diidentifikasi oleh SID ini. String SID khusus s-1-1-0 (Semua Orang) menentukan enumerasi semua komponen yang diinstal di semua produk semua pengguna dalam sistem. Nilai SID selain s-1-1-0 menentukan SID pengguna untuk pengguna tertentu dan membatasi enumerasi ke instans aplikasi yang diinstal oleh pengguna yang ditentukan.

Jenis SID Makna
NULL
Menentukan pengguna yang saat ini masuk.
Pengidentifikasi keamanan pengguna
Enumerasi untuk 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 menghitung 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] dwContext

Bendera yang membatasi enumerasi komponen yang diinstal ke instans produk yang diinstal dalam konteks penginstalan yang ditentukan. Enumerasi hanya mencakup instans produk yang diinstal oleh pengguna yang ditentukan oleh szUserSid.

Bendera Makna
MSIINSTALLCONTEXT_USERMANAGED
1
Sertakan produk yang ada dalam konteks penginstalan yang dikelola per pengguna.
MSIINSTALLCONTEXT_USERUNMANAGED
2
Sertakan produk yang ada dalam konteks penginstalan per-pengguna-tidak terkelola.
MSIINSTALLCONTEXT_MACHINE
4
Sertakan produk yang ada dalam konteks penginstalan per komputer. Ketika dwInstallContext diatur ke MSIINSTALLCONTEXT_MACHINE saja, parameter szUserSID harus NULL.

[in] dwIndex

Menentukan indeks komponen yang akan diambil. Parameter ini harus nol (0) untuk panggilan pertama ke fungsi MsiEnumComponentsEx . Untuk setiap panggilan berikutnya, indeks harus bertambah 1. Indeks hanya boleh dinaikkan jika panggilan sebelumnya ke fungsi mengembalikan ERROR_SUCCESS. Komponen tidak diurutkan dan dapat dikembalikan oleh fungsi dalam urutan apa pun.

[out, optional] szInstalledComponentCode

Buffer output yang menerima GUID kode komponen untuk komponen yang diinstal. Panjang buffer harus cukup besar untuk menahan nilai string yang dihentikan null yang berisi kode komponen. 38 karakter TCHAR pertama menerima GUID untuk komponen, dan karakter ke-39 menerima karakter NULL yang mengakhiri.

[out, optional] pdwInstalledContext

Bendera yang memberikan konteks penginstalan aplikasi yang menginstal komponen.

Bendera Makna
MSIINSTALLCONTEXT_USERMANAGED
1
Aplikasi ini diinstal dalam konteks penginstalan per-pengguna-terkelola.
MSIINSTALLCONTEXT_USERUNMANAGED
2
Aplikasi ini diinstal dalam konteks penginstalan per-pengguna-tidak terkelola.
MSIINSTALLCONTEXT_MACHINE
4
Aplikasi ini diinstal dalam konteks penginstalan penginstalan per komputer.

[out, optional] szSid

Menerima pengidentifikasi keamanan (SID) yang mengidentifikasi pengguna yang menginstal aplikasi yang memiliki komponen. Lokasi menerima string kosong jika instans aplikasi ini diinstal dalam konteks penginstalan per komputer.

Panjang buffer di lokasi ini harus cukup besar untuk menahan nilai string yang dihentikan null yang berisi SID. Jika buffer terlalu kecil, fungsi mengembalikan ERROR_MORE_DATA dan lokasi yang diacu oleh pcchSid menerima jumlah TCHAR dalam SID, tidak termasuk karakter NULL yang mengakhiri.

Jika szSid diatur ke NULL dan pcchSid adalah penunjuk yang valid ke lokasi dalam memori, fungsi mengembalikan ERROR_SUCCESS dan lokasi menerima jumlah TCHAR di SID, tidak termasuk karakter null yang mengakhiri. Fungsi kemudian dapat dipanggil lagi untuk mengambil nilai , dengan buffer szSid diubah ukurannya cukup besar untuk berisi *pcchSid + 1 karakter.

Jenis SID Makna
String kosong
Aplikasi ini diinstal dalam konteks penginstalan per komputer.
Pengidentifikasi keamanan pengguna
SID untuk pengguna dalam sistem yang menginstal aplikasi.

[in, out] pcchSid

Menerima jumlah TCHAR dalam SID, tidak termasuk karakter null yang mengakhiri. Ketika fungsi kembali, variabel ini diatur ke ukuran SID yang diminta apakah fungsi dapat berhasil menyalin SID dan mengakhiri karakter null ke lokasi buffer yang diacu oleh szSid. Ukuran dikembalikan sebagai jumlah TCHAR dalam nilai yang diminta, tidak termasuk karakter null yang mengakhiri.

Parameter ini dapat diatur ke NULL hanya jika szSid juga NULL, jika tidak, fungsi mengembalikan ERROR_INVALID_PARAMETER. Jika szSid dan pcchSid keduanya diatur ke NULL, fungsi mengembalikan ERROR_SUCCESS jika SID ada, tanpa mengambil nilai SID.

Mengembalikan nilai

Fungsi MsiEnumProductsEx mengembalikan salah satu nilai berikut.

Menampilkan kode Deskripsi
ERROR_ACCESS_DENIED
Hak istimewa administrator diperlukan untuk menghitung komponen aplikasi yang diinstal oleh pengguna selain pengguna saat ini.
ERROR_BAD_CONFIGURATION
Data konfigurasi rusak.
ERROR_INVALID_PARAMETER
Parameter yang tidak valid diteruskan ke fungsi.
ERROR_NO_MORE_ITEMS
Tidak ada lagi komponen yang perlu dijumlahkan.
ERROR_SUCCESS
Fungsi berhasil.
ERROR_MORE_DATA
Buffer yang disediakan terlalu kecil untuk menahan seluruh nilai.
ERROR_FUNCTION_FAILED
Fungsi gagal.

Keterangan

Catatan

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