Fungsi MsiEnumProductsExA (msi.h)
Fungsi
Sintaksis
UINT MsiEnumProductsExA(
[in, optional] LPCSTR szProductCode,
[in] LPCSTR szUserSid,
[in] DWORD dwContext,
[in] DWORD dwIndex,
[out, optional] CHAR [39] szInstalledProductCode,
[out, optional] MSIINSTALLCONTEXT *pdwInstalledContext,
[out, optional] LPSTR szSid,
[in, out, optional] LPDWORD pcchSid
);
Parameter
[in, optional] szProductCode
ProductCode GUID produk yang akan dijumlahkan. Hanya instans produk dalam cakupan konteks yang ditentukan oleh parameter szUserSid dan dwContext yang dijumlahkan. Parameter ini dapat diatur ke NULL untuk menghitung semua produk dalam konteks yang ditentukan.
[in] szUserSid
String yang dihentikan null yang menentukan pengidentifikasi keamanan (SID) yang membatasi konteks enumerasi. String SID khusus s-1-1-0 (Semua Orang) menentukan enumerasi di semua pengguna dalam sistem. Nilai SID selain s-1-1-0 dianggap sebagai user-SID dan membatasi enumerasi untuk pengguna saat ini atau pengguna apa pun dalam sistem. Parameter ini dapat diatur ke NULL untuk membatasi cakupan enumerasi ke pengguna saat ini.
[in] dwContext
Membatasi enumerasi ke konteks. Parameter ini bisa berupa salah satu atau kombinasi nilai yang diperlihatkan dalam tabel berikut.
[in] dwIndex
Menentukan indeks produk yang akan diambil. Parameter ini harus nol untuk panggilan pertama ke fungsi MsiEnumProductsEx lalu ditahapkan untuk panggilan berikutnya. Indeks harus dinaikkan, hanya jika panggilan sebelumnya telah mengembalikan ERROR_SUCCESS. Karena produk tidak dipesan, produk baru apa pun memiliki indeks arbitrer. Ini berarti bahwa fungsi dapat mengembalikan produk dalam urutan apa pun.
[out, optional] szInstalledProductCode
String TCHAR
[out, optional] pdwInstalledContext
Mengembalikan konteks instans produk yang sedang dijumlahkan. Nilai output dapat MSIINSTALLCONTEXT_USERMANAGED, MSIINSTALLCONTEXT_USERUNMANAGED, atau MSIINSTALLCONTEXT_MACHINE. Parameter ini dapat null.
[out, optional] szSid
Buffer output yang menerima string SID akun tempat instans produk ini berada. Buffer ini mengembalikan string kosong untuk instans yang diinstal dalam konteks per komputer.
Buffer ini harus cukup besar untuk berisi SID. Jika buffer terlalu kecil, fungsi mengembalikan ERROR_MORE_DATA dan mengatur *
Jika szSid diatur ke NULL dan pcchSid diatur ke penunjuk yang valid, fungsi mengembalikan ERROR_SUCCESS dan mengatur * pcchSid ke jumlah TCHAR dalam nilai, tidak termasuk null. Fungsi kemudian dapat dipanggil lagi untuk mengambil nilai, dengan buffer szSid
Jika szSid dan pcchSid keduanya diatur ke null, fungsi mengembalikan ERROR_SUCCESS jika nilai ada, tanpa mengambil nilai.
[in, out, optional] pcchSid
Saat memanggil fungsi, parameter ini harus menjadi penunjuk ke variabel yang menentukan jumlah
Parameter ini dapat diatur ke NULL hanya jika szSid juga NULL, jika tidak, fungsi mengembalikan ERROR_INVALID_PARAMETER.
Mengembalikan nilai
Fungsi
Mengembalikan kode | Deskripsi |
---|---|
|
Jika cakupan menyertakan pengguna selain pengguna saat ini, Anda memerlukan hak istimewa administrator. |
|
Data konfigurasi rusak. |
|
Parameter yang tidak valid diteruskan ke fungsi. |
|
Tidak ada lagi produk untuk dijumlahkan. |
|
Produk dijumlahkan. |
|
Parameter szSid |
|
Produk tidak diinstal pada komputer dalam konteks yang ditentukan. |
|
Kegagalan internal yang tidak terduga. |
Komentar
Untuk menghitung produk, aplikasi awalnya harus memanggil fungsi
Saat melakukan beberapa panggilan ke MsiEnumProductsEx untuk menghitung semua produk, setiap panggilan harus dilakukan dari utas yang sama.
Pengguna harus memiliki hak istimewa administrator untuk menghitung produk di semua akun pengguna atau akun pengguna selain akun pengguna saat ini. Enumerasi melompati produk yang hanya diiklankan (seperti produk yang tidak diinstal) dalam konteks per pengguna yang tidak dikelola saat menghitung di semua pengguna atau pengguna selain pengguna saat ini.
Gunakan MsiGetProductInfoEx untuk mendapatkan status atau informasi lain tentang setiap instans produk yang dijumlahkan oleh MsiEnumProductsEx.
Nota
Header msi.h mendefinisikan MsiEnumProductsEx 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. Windows Installer 4.0 atau Windows Installer 4.5 pada Windows Server 2008 atau Windows Vista. Windows Installer 3.0 atau yang lebih baru pada Windows Server 2003 atau Windows XP. 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
Tidak Didukung di Windows Installer 2.0 dan yang lebih lama
ProductCode