Fungsi RegEnumValueA (winreg.h)
Menghitung nilai untuk kunci registri terbuka yang ditentukan. Fungsi menyalin satu nama nilai terindeks dan blok data untuk kunci setiap kali dipanggil.
Sintaksis
LSTATUS RegEnumValueA(
[in] HKEY hKey,
[in] DWORD dwIndex,
[out] LPSTR lpValueName,
[in, out] LPDWORD lpcchValueName,
LPDWORD lpReserved,
[out, optional] LPDWORD lpType,
[out, optional] LPBYTE lpData,
[in, out, optional] LPDWORD lpcbData
);
Parameter
[in] hKey
Handel ke kunci registri terbuka. Kunci harus dibuka dengan hak akses KEY_QUERY_VALUE. Untuk informasi selengkapnya, lihat Keamanan Kunci Registri dan Hak Akses.
Handel ini dikembalikan oleh RegCreateKeyEx, RegCreateKeyTransacted, RegOpenKeyEx, atau fungsi RegOpenKeyTransacted. Ini juga bisa menjadi salah satu kunci berikut yang telah ditentukan sebelumnya:
- HKEY_CLASSES_ROOT
- HKEY_CURRENT_CONFIG
- HKEY_CURRENT_USER
- HKEY_LOCAL_MACHINE
- HKEY_PERFORMANCE_DATA
- HKEY_USERS
[in] dwIndex
Indeks nilai yang akan diambil. Parameter ini harus nol untuk panggilan pertama ke fungsi
Karena nilai tidak diurutkan, nilai baru apa pun akan memiliki indeks arbitrer. Ini berarti bahwa fungsi dapat mengembalikan nilai dalam urutan apa pun.
[out] lpValueName
Penunjuk ke buffer yang menerima nama nilai sebagai string nulldihentikan.
Buffer ini harus cukup besar untuk menyertakan karakter null yang dihentikan.
Untuk informasi selengkapnya, lihat Batas Ukuran Elemen Registri.
[in, out] lpcchValueName
Penunjuk ke variabel yang menentukan ukuran buffer yang diacu oleh parameter lpValueName, dalam karakter. Ketika fungsi kembali, variabel menerima jumlah karakter yang disimpan dalam buffer, tidak termasuk karakter null
Jika buffer yang ditentukan oleh lpValueName tidak cukup besar untuk menyimpan data, fungsi mengembalikan ERROR_MORE_DATA dan ukuran buffer dalam variabel yang ditunjukkan oleh lpValueName tidak diubah. Dalam hal ini, konten lpcchValueName tidak terdefinisi.
Nama nilai registri dibatasi hingga 32.767 byte. Versi ANSI dari fungsi ini memperlakukan parameter ini sebagai nilai SHORT
lpReserved
Parameter ini dicadangkan dan harus NULL.
[out, optional] lpType
Penunjuk ke variabel yang menerima kode yang menunjukkan jenis data yang disimpan dalam nilai yang ditentukan. Untuk daftar kode jenis yang mungkin, lihat Jenis Nilai Registri . Parameter lpType dapat null jika kode jenis tidak diperlukan.
[out, optional] lpData
Penunjuk ke buffer yang menerima data untuk entri nilai. Parameter ini dapat NULL jika data tidak diperlukan.
Jika
[in, out, optional] lpcbData
Penunjuk ke variabel yang menentukan ukuran buffer yang diacu oleh parameter lpData
Parameter ini dapat
Jika data memiliki jenis REG_SZ, REG_MULTI_SZ, atau REG_EXPAND_SZ, ukuran ini mencakup karakter atau karakter null
Jika buffer yang ditentukan oleh lpData tidak cukup besar untuk menyimpan data, fungsi mengembalikan ERROR_MORE_DATA dan menyimpan ukuran buffer yang diperlukan dalam variabel yang ditunjukkan oleh lpcbData. Dalam hal ini, konten lpData
Mengembalikan nilai
Jika fungsi berhasil, nilai yang dikembalikan adalah ERROR_SUCCESS.
Jika fungsi gagal, nilai yang dikembalikan adalah kode kesalahan sistem . Jika tidak ada nilai lagi yang tersedia, fungsi akan mengembalikan ERROR_NO_MORE_ITEMS.
Jika buffer yang ditentukan oleh lpValueName atau lpData terlalu kecil untuk menerima nilai, fungsi mengembalikan ERROR_MORE_DATA.
Komentar
Untuk menghitung nilai, aplikasi awalnya harus memanggil fungsi
Aplikasi juga dapat mengatur dwIndex ke indeks nilai terakhir pada panggilan pertama ke fungsi dan mengurangi indeks hingga nilai dengan indeks 0 dijumlahkan. Untuk mengambil indeks nilai terakhir, gunakan fungsi
Saat menggunakan RegEnumValue, aplikasi tidak boleh memanggil fungsi registri apa pun yang mungkin mengubah kunci yang dikueri.
Jika data memiliki jenis REG_SZ, REG_MULTI_SZ, atau REG_EXPAND_SZ, string mungkin belum disimpan dengan karakternull
Untuk menentukan ukuran maksimum nama dan buffer data, gunakan fungsi
Nota
Pada versi Windows lama, API ini juga diekspos oleh kernel32.dll.
Contoh
Misalnya, lihat Menghitung Subkunci Registri.
Nota
Header winreg.h mendefinisikan RegEnumValue 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 2000 Professional [hanya aplikasi desktop] |
server minimum yang didukung |
Windows 2000 Server [hanya aplikasi desktop] |
Platform Target |
Windows |
Header |
winreg.h (termasuk Windows.h) |
Pustaka |
Advapi32.lib |
DLL |
Advapi32.dll |
Lihat juga
Fungsi Registri
Gambaran Umum