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.
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.
[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.
[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 |
---|---|
|
Aplikasi ini diinstal dalam konteks penginstalan per komputer. |
|
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 |
---|---|
|
Hak istimewa administrator diperlukan untuk menghitung komponen aplikasi yang diinstal oleh pengguna selain pengguna saat ini. |
|
Data konfigurasi rusak. |
|
Parameter yang tidak valid diteruskan ke fungsi. |
|
Tidak ada lagi komponen yang perlu dijumlahkan. |
|
Fungsi berhasil. |
|
Buffer yang disediakan terlalu kecil untuk menahan seluruh nilai. |
|
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 |
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk