Bagikan melalui


Fungsi OREnumValue

Menghitung nilai untuk kunci registri terbuka yang ditentukan dalam sarang registri offline. Fungsi ini mengambil informasi untuk satu nilai di bawah kunci yang ditentukan setiap kali fungsi dipanggil.

Sintaks

DWORD OREnumValue(
  _In_        ORHKEY Handle,
  _In_        DWORD  dwIndex,
  _Out_       PWSTR  lpValueName,
  _Inout_     PDWORD lpcValueName,
  _Out_opt_   PDWORD lpType,
  _Out_opt_   PBYTE  lpData,
  _Inout_opt_ PDWORD lpcbData
);

Parameter

Handel [in]

Handel ke kunci registri terbuka di sarang registri offline.

dwIndex [in]

Indeks nilai yang akan diambil. Parameter ini harus nol untuk panggilan pertama ke fungsi dan kemudian dinaikkan untuk panggilan berikutnya.

Karena nilai tidak diurutkan, nilai baru apa pun akan memiliki indeks arbitrer. Ini berarti bahwa fungsi dapat mengembalikan nilai dalam urutan apa pun.

lpValueName [out]

Penunjuk ke buffer yang menerima nama nilai sebagai string yang dihentikan null. Buffer ini harus cukup besar untuk menyertakan karakter null yang mengakhiri.

Untuk informasi selengkapnya, lihat Batas Ukuran Elemen Registri.

lpcValueName [in, out]

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 yang mengakhiri.

lpType [keluar, opsional]

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 berupa NULL jika kode jenis tidak diperlukan.

lpData [keluar, opsional]

Penunjuk ke buffer yang menerima data untuk entri nilai. Parameter ini bisa NULL jika data tidak diperlukan.

Jika lpData adalah NULL dan lpcbData bukan NULL, fungsi menyimpan ukuran data, dalam byte, dalam variabel yang ditunjukkan oleh lpcbData. Ini memungkinkan aplikasi untuk menentukan cara terbaik untuk mengalokasikan buffer untuk data.

lpcbData [masuk, keluar, opsional]

Penunjuk ke variabel yang menentukan ukuran buffer yang diacu oleh parameter lpData , dalam byte. Ketika fungsi kembali, variabel menerima jumlah byte yang disimpan dalam buffer.

Parameter ini bisa NULL hanya jika lpDataNULL.

Jika data memiliki jenis REG_SZ, REG_MULTI_SZ, atau REG_EXPAND_SZ, ukuran ini menyertakan karakter atau karakter null yang mengakhiri. Untuk informasi selengkapnya, lihat Keterangan.

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, isi lpData tidak terdefinisi.

Menampilkan nilai

Jika fungsi berhasil, nilai yang dikembalikan ERROR_SUCCESS.

Jika fungsi gagal, nilai yang dikembalikan adalah kode kesalahan bukan nol yang ditentukan dalam Winerror.h. Anda dapat menggunakan fungsi FormatMessage dengan bendera FORMAT_MESSAGE_FROM_SYSTEM untuk mendapatkan deskripsi umum tentang kesalahan tersebut.

Jika buffer lpData terlalu kecil untuk menerima nilai, fungsi akan mengembalikan ERROR_MORE_DATA.

Keterangan

Untuk menghitung nilai, aplikasi awalnya harus memanggil fungsi OREnumValue dengan parameter dwIndex diatur ke nol. Aplikasi kemudian harus menaikkan dwIndex dan memanggil fungsi OREnumValue sampai tidak ada nilai lagi (sampai fungsi kembali ERROR_NO_MORE_ITEMS).

Aplikasi juga dapat mengatur dwIndex ke indeks nilai terakhir pada panggilan pertama ke fungsi dan menurunkan indeks hingga nilai dengan indeks 0 dijumlahkan. Untuk mengambil indeks nilai terakhir, gunakan fungsi ORQueryInfoKey .

Saat menggunakan OREnumValue, aplikasi tidak boleh memanggil fungsi registri offline yang mungkin mengubah kunci yang sedang dikueri.

Jika data memiliki jenis REG_SZ, REG_MULTI_SZ, atau REG_EXPAND_SZ, string mungkin belum disimpan dengan karakter null-terminating yang tepat. Oleh karena itu, bahkan jika fungsi mengembalikan ERROR_SUCCESS, aplikasi harus memastikan bahwa string dihentikan dengan benar sebelum menggunakannya; jika tidak, itu dapat menimpa buffer. (Perhatikan bahwa string REG_MULTI_SZ harus memiliki dua karakter null-terminating.)

Untuk menentukan ukuran maksimum nama dan buffer data, gunakan fungsi ORQueryInfoKey .

Persyaratan

Persyaratan Nilai
Redistribusi
Pustaka Windows Offline Registry versi 1.0 atau yang lebih baru
Header
Offreg.h
DLL
Offreg.dll

Lihat juga

ORCreateKey

OREnumKey

OROpenKey

ORQueryInfoKey