CRegKey
Kelas
Kelas ini menyediakan metode untuk memanipulasi entri dalam registri sistem.
Penting
Kelas ini dan anggotanya tidak dapat digunakan dalam aplikasi yang dijalankan di Windows Runtime.
Sintaks
class CRegKey
Anggota
Konstruktor Publik
Nama | Deskripsi |
---|---|
CRegKey::CRegKey |
Konstruktor. |
CRegKey::~CRegKey |
Destruktor. |
Metode Publik
Nama | Deskripsi |
---|---|
CRegKey::Attach |
Panggil metode ini untuk melampirkan HKEY ke CRegKey objek dengan mengatur m_hKey handel anggota ke hKey . |
CRegKey::Close |
Panggil metode ini untuk merilis m_hKey handel anggota dan mengaturnya ke NULL . |
CRegKey::Create |
Panggil metode ini untuk membuat kunci yang ditentukan, jika tidak ada sebagai subkunci dari hKeyParent . |
CRegKey::DeleteSubKey |
Panggil metode ini untuk menghapus kunci yang ditentukan dari registri. |
CRegKey::DeleteValue |
Panggil metode ini untuk menghapus bidang nilai dari m_hKey . |
CRegKey::Detach |
Panggil metode ini untuk melepaskan m_hKey handel anggota dari CRegKey objek dan atur m_hKey ke NULL . |
CRegKey::EnumKey |
Panggil metode ini untuk menghitung subkunci kunci registri terbuka. |
CRegKey::Flush |
Panggil metode ini untuk menulis semua atribut kunci registri terbuka ke dalam registri. |
CRegKey::GetKeySecurity |
Panggil metode ini untuk mengambil salinan deskriptor keamanan yang melindungi kunci registri terbuka. |
CRegKey::NotifyChangeKeyValue |
Metode ini memberi tahu pemanggil tentang perubahan pada atribut atau konten kunci registri terbuka. |
CRegKey::Open |
Panggil metode ini untuk membuka kunci yang ditentukan dan atur m_hKey ke handel kunci ini. |
CRegKey::QueryBinaryValue |
Panggil metode ini untuk mengambil data biner untuk nama nilai tertentu. |
CRegKey::QueryDWORDValue |
Panggil metode ini untuk mengambil DWORD data untuk nama nilai tertentu. |
CRegKey::QueryGUIDValue |
Panggil metode ini untuk mengambil data GUID untuk nama nilai tertentu. |
CRegKey::QueryMultiStringValue |
Panggil metode ini untuk mengambil data multistring untuk nama nilai tertentu. |
CRegKey::QueryQWORDValue |
Panggil metode ini untuk mengambil QWORD data untuk nama nilai tertentu. |
CRegKey::QueryStringValue |
Panggil metode ini untuk mengambil data string untuk nama nilai tertentu. |
CRegKey::QueryValue |
Panggil metode ini untuk mengambil data untuk bidang nilai yang ditentukan dari m_hKey . Versi sebelumnya dari metode ini tidak lagi didukung dan ditandai sebagai ATL_DEPRECATED . |
CRegKey::RecurseDeleteKey |
Panggil metode ini untuk menghapus kunci yang ditentukan dari registri dan secara eksplisit menghapus subkunjung apa pun. |
CRegKey::SetBinaryValue |
Panggil metode ini untuk mengatur nilai biner kunci registri. |
CRegKey::SetDWORDValue |
Panggil metode ini untuk mengatur DWORD nilai kunci registri. |
CRegKey::SetGUIDValue |
Panggil metode ini untuk mengatur nilai GUID kunci registri. |
CRegKey::SetKeySecurity |
Panggil metode ini untuk mengatur keamanan kunci registri. |
CRegKey::SetKeyValue |
Panggil metode ini untuk menyimpan data dalam bidang nilai tertentu dari kunci tertentu. |
CRegKey::SetMultiStringValue |
Panggil metode ini untuk mengatur nilai multistring kunci registri. |
CRegKey::SetQWORDValue |
Panggil metode ini untuk mengatur QWORD nilai kunci registri. |
CRegKey::SetStringValue |
Panggil metode ini untuk mengatur nilai string kunci registri. |
CRegKey::SetValue |
Panggil metode ini untuk menyimpan data di bidang nilai yang ditentukan dari m_hKey . Versi sebelumnya dari metode ini tidak lagi didukung dan ditandai sebagai ATL_DEPRECATED . |
Operator Publik
Nama | Deskripsi |
---|---|
CRegKey::operator HKEY |
CRegKey Mengonversi objek menjadi HKEY . |
CRegKey::operator = |
Operator penugasan. |
Anggota Data Publik
Nama | Deskripsi |
---|---|
CRegKey::m_hKey |
Berisi handel kunci registri yang terkait dengan CRegKey objek. |
CRegKey::m_pTM |
Penunjuk ke CAtlTransactionManager objek |
Keterangan
CRegKey
menyediakan metode untuk membuat dan menghapus kunci dan nilai dalam registri sistem. Registri berisi sekumpulan definisi khusus penginstalan untuk komponen sistem, seperti nomor versi perangkat lunak, pemetaan logis-ke-fisik perangkat keras yang diinstal, dan objek COM.
CRegKey
menyediakan antarmuka pemrograman ke registri sistem untuk komputer tertentu. Misalnya, untuk membuka kunci registri tertentu, panggil CRegKey::Open
. Untuk mengambil atau mengubah nilai data, panggilan CRegKey::QueryValue
, atau CRegKey::SetValue
, masing-masing. Untuk menutup kunci, panggil CRegKey::Close
.
Saat Anda menutup kunci, data registrinya ditulis (dihapus) ke hard disk. Proses ini mungkin memakan waktu beberapa detik. Jika aplikasi Anda harus menulis data registri secara eksplisit ke hard disk, Anda dapat memanggil RegFlushKey
fungsi Win32. Namun, RegFlushKey
menggunakan banyak sumber daya sistem dan harus dipanggil hanya jika benar-benar diperlukan.
Penting
Metode apa pun yang memungkinkan penelepon menentukan lokasi registri berpotensi membaca data yang tidak dapat dipercaya. Metode yang memanfaatkan RegQueryValueEx
harus mempertimbangkan bahwa fungsi ini tidak secara eksplisit menangani string yang dihentikan null. Kedua kondisi harus diperiksa oleh kode panggilan.
Persyaratan
Header: atlbase.h
CRegKey::Attach
Panggil metode ini untuk melampirkan HKEY
ke CRegKey
objek dengan mengatur m_hKey
handel anggota ke hKey
.
void Attach(HKEY hKey) throw();
Parameter
hKey
Handel kunci registri.
Keterangan
Attach
akan menegaskan jika m_hKey
bukan.NULL
CRegKey::Close
Panggil metode ini untuk merilis m_hKey
handel anggota dan mengaturnya ke NULL
.
LONG Close() throw();
Tampilkan Nilai
Jika berhasil, mengembalikan ERROR_SUCCESS
; jika tidak, mengembalikan nilai kesalahan.
CRegKey::Create
Panggil metode ini untuk membuat kunci yang ditentukan, jika tidak ada sebagai subkunci dari hKeyParent
.
LONG Create(
HKEY hKeyParent,
LPCTSTR lpszKeyName,
LPTSTR lpszClass = REG_NONE,
DWORD dwOptions = REG_OPTION_NON_VOLATILE,
REGSAM samDesired = KEY_READ | KEY_WRITE,
LPSECURITY_ATTRIBUTES lpSecAttr = NULL,
LPDWORD lpdwDisposition = NULL) throw();
Parameter
hKeyParent
Handel kunci terbuka.
lpszKeyName
Menentukan nama kunci yang akan dibuat atau dibuka. Nama ini harus berupa subkunjuk dari hKeyParent
.
lpszClass
Menentukan kelas kunci yang akan dibuat atau dibuka. Nilai defaultnya adalah REG_NONE.
dwOptions
Opsi untuk kunci. Nilai defaultnya adalah REG_OPTION_NON_VOLATILE
. Untuk daftar nilai dan deskripsi yang mungkin, lihat RegCreateKeyEx
di Windows SDK.
samDesired
Akses keamanan untuk kunci. Nilai defaultnya adalah KEY_READ | KEY_WRITE
. Untuk daftar nilai dan deskripsi yang mungkin, lihat RegCreateKeyEx
.
lpSecAttr
Penunjuk ke SECURITY_ATTRIBUTES
struktur yang menunjukkan apakah handel kunci dapat diwariskan oleh proses anak. Secara default, parameter ini adalah NULL
(yang berarti handel tidak dapat diwariskan).
lpdwDisposition
[out] Jika non-NULL
, mengambil baik REG_CREATED_NEW_KEY
(jika kunci tidak ada dan dibuat) atau REG_OPENED_EXISTING_KEY
(jika kunci ada dan dibuka).
Tampilkan Nilai
Jika berhasil, mengembalikan ERROR_SUCCESS
dan membuka kunci. Jika metode gagal, nilai pengembalian adalah kode kesalahan bukan nol yang ditentukan dalam WINERROR.H
.
Keterangan
Create
m_hKey
mengatur anggota ke handel kunci ini.
CRegKey::CRegKey
Konstruktor.
CRegKey() throw();
CRegKey(CRegKey& key) throw();
explicit CRegKey(HKEY hKey) throw();
CRegKey(CAtlTransactionManager* pTM) throw();
Parameter
key
Referensi ke CRegKey
objek.
hKey
Handel ke kunci registri.
pTM
Penunjuk ke CAtlTransactionManager
objek
Keterangan
Membuat objek baru CRegKey
. Objek dapat dibuat dari objek yang ada CRegKey
, atau dari handel ke kunci registri.
CRegKey::~CRegKey
Destruktor.
~CRegKey() throw();
Keterangan
Destruktor merilis m_hKey
.
CRegKey::DeleteSubKey
Panggil metode ini untuk menghapus kunci yang ditentukan dari registri.
LONG DeleteSubKey(LPCTSTR lpszSubKey) throw();
Parameter
lpszSubKey
Menentukan nama kunci yang akan dihapus. Nama ini harus berupa subkunjuk dari m_hKey
.
Tampilkan Nilai
Jika berhasil, mengembalikan ERROR_SUCCESS
. Jika metode gagal, nilai pengembalian adalah kode kesalahan bukan nol yang ditentukan dalam WINERROR.H
.
Keterangan
DeleteSubKey
hanya dapat menghapus kunci yang tidak memiliki subkunde. Jika kunci memiliki subkunjuk, panggil RecurseDeleteKey
sebagai gantinya.
CRegKey::DeleteValue
Panggil metode ini untuk menghapus bidang nilai dari m_hKey
.
LONG DeleteValue(LPCTSTR lpszValue) throw();
Parameter
lpszValue
Menentukan bidang nilai yang akan dihapus.
Tampilkan Nilai
Jika berhasil, mengembalikan ERROR_SUCCESS
. Jika metode gagal, nilai pengembalian adalah kode kesalahan bukan nol yang ditentukan dalam WINERROR.H
.
CRegKey::Detach
Panggil metode ini untuk melepaskan m_hKey
handel anggota dari CRegKey
objek dan atur m_hKey
ke NULL
.
HKEY Detach() throw();
Tampilkan Nilai
HKEY yang CRegKey
terkait dengan objek .
CRegKey::EnumKey
Panggil metode ini untuk menghitung subkunci kunci registri terbuka.
LONG EnumKey(
DWORD iIndex,
LPTSTR pszName,
LPDWORD pnNameLength,
FILETIME* pftLastWriteTime = NULL) throw();
Parameter
iIndex
Indeks subkunde. Parameter ini harus nol untuk panggilan pertama lalu dinaikkan untuk panggilan berikutnya
pszName
Penunjuk ke buffer yang menerima nama subkunci, termasuk karakter null yang mengakhiri. Hanya nama subkunci yang disalin ke buffer, bukan hierarki kunci lengkap.
pnNameLength
Penunjuk ke variabel yang menentukan ukuran, dalam TCHARs
, dari buffer yang ditentukan oleh pszName
parameter . Ukuran ini harus mencakup karakter null yang mengakhiri. Ketika metode kembali, variabel yang ditujukkan dengan pnNameLength
berisi jumlah karakter yang disimpan dalam buffer. Jumlah yang dikembalikan tidak menyertakan karakter null yang dihentikan.
pftLastWriteTime
Pointer ke variabel yang menerima waktu subkunci enumerasi terakhir ditulis.
Tampilkan Nilai
Jika metode berhasil, nilai yang dikembalikan adalah ERROR_SUCCESS
. Jika metode gagal, nilai pengembalian adalah kode kesalahan bukan nol yang ditentukan dalam WINERROR.H
.
Keterangan
Untuk menghitung subkunci, panggil CRegKey::EnumKey
dengan indeks nol. Tingkatkan nilai indeks dan ulangi hingga metode mengembalikan ERROR_NO_MORE_ITEMS
. Untuk informasi selengkapnya, lihat RegEnumKeyEx
di Windows SDK.
CRegKey::Flush
Panggil metode ini untuk menulis semua atribut kunci registri terbuka ke dalam registri.
LONG Flush() throw();
Tampilkan Nilai
Jika metode berhasil, nilai yang dikembalikan adalah ERROR_SUCCESS
. Jika metode gagal, nilai pengembalian adalah kode kesalahan bukan nol yang ditentukan dalam WINERROR.H
.
Keterangan
Untuk informasi selengkapnya, lihat RegEnumFlush
di Windows SDK.
CRegKey::GetKeySecurity
Panggil metode ini untuk mengambil salinan deskriptor keamanan yang melindungi kunci registri terbuka.
LONG GetKeySecurity(
SECURITY_INFORMATION si,
PSECURITY_DESCRIPTOR psd,
LPDWORD pnBytes) throw();
Parameter
si
Nilai SECURITY_INFORMATION
yang menunjukkan informasi keamanan yang diminta.
psd
Penunjuk ke buffer yang menerima salinan deskriptor keamanan yang diminta.
pnBytes
Ukuran, dalam byte, dari buffer yang diacu oleh psd
.
Tampilkan Nilai
Jika metode berhasil, nilai yang dikembalikan adalah ERROR_SUCCESS
. Jika metode gagal, nilai yang dikembalikan adalah kode kesalahan bukan nol didefinisikan dalam WINERROR.H
.
Keterangan
Untuk informasi selengkapnya, lihat RegGetKeySecurity
.
CRegKey::m_hKey
Berisi handel kunci registri yang terkait dengan CRegKey
objek.
HKEY m_hKey;
CRegKey::m_pTM
Penunjuk CAtlTransactionManager
ke objek.
CAtlTransactionManager* m_pTM;
Keterangan
CRegKey::NotifyChangeKeyValue
Metode ini memberi tahu pemanggil tentang perubahan pada atribut atau konten kunci registri terbuka.
LONG NotifyChangeKeyValue(
BOOL bWatchSubtree,
DWORD dwNotifyFilter,
HANDLE hEvent,
BOOL bAsync = TRUE) throw();
Parameter
bWatchSubtree
Menentukan bendera yang menunjukkan apakah akan melaporkan perubahan dalam kunci yang ditentukan dan semua subkunjuknya atau hanya di kunci yang ditentukan. Jika parameter ini adalah TRUE
, metode melaporkan perubahan pada kunci dan subkundenya. Jika parameter adalah FALSE
, metode melaporkan perubahan hanya di kunci.
dwNotifyFilter
Menentukan sekumpulan bendera yang mengontrol perubahan mana yang harus dilaporkan. Parameter ini bisa menjadi kombinasi dari nilai berikut:
Nilai | Makna |
---|---|
REG_NOTIFY_CHANGE_NAME |
Beri tahu pemanggil jika subkunci ditambahkan atau dihapus. |
REG_NOTIFY_CHANGE_ATTRIBUTES |
Beri tahu pemanggil perubahan pada atribut kunci, seperti informasi deskriptor keamanan. |
REG_NOTIFY_CHANGE_LAST_SET |
Beri tahu pemanggil perubahan pada nilai kunci. Ini dapat mencakup menambahkan atau menghapus nilai, atau mengubah nilai yang ada. |
REG_NOTIFY_CHANGE_SECURITY |
Beri tahu pemanggil perubahan pada deskriptor keamanan kunci. |
hEvent
Menangani ke peristiwa. bAsync
Jika parameter adalah TRUE
, metode segera kembali dan perubahan dilaporkan dengan memberi sinyal peristiwa ini. Jika bAsync
adalah FALSE
, hEvent
diabaikan.
bAsync
Menentukan bendera yang menunjukkan bagaimana metode melaporkan perubahan. Jika parameter ini adalah TRUE
, metode segera kembali dan melaporkan perubahan dengan memberi sinyal peristiwa yang ditentukan. Ketika parameter ini adalah FALSE
, metode tidak kembali sampai perubahan terjadi. Jika hEvent
tidak menentukan peristiwa yang valid, bAsync
parameter tidak boleh TRUE
.
Tampilkan Nilai
Jika metode berhasil, nilai yang dikembalikan adalah ERROR_SUCCESS
. Jika metode gagal, nilai pengembalian adalah kode kesalahan bukan nol yang ditentukan dalam WINERROR.H
.
Keterangan
Catatan
Metode ini tidak memberi tahu pemanggil jika kunci yang ditentukan dihapus.
Untuk detail selengkapnya dan program sampel, lihat RegNotifyChangeKeyValue
.
CRegKey::Open
Panggil metode ini untuk membuka kunci yang ditentukan dan atur m_hKey
ke handel kunci ini.
LONG Open(
HKEY hKeyParent,
LPCTSTR lpszKeyName,
REGSAM samDesired = KEY_READ | KEY_WRITE) throw();
Parameter
hKeyParent
Handel kunci terbuka.
lpszKeyName
Menentukan nama kunci yang akan dibuat atau dibuka. Nama ini harus berupa subkunjuk dari hKeyParent
.
samDesired
Akses keamanan untuk kunci. Nilai defaultnya adalah KEY_ALL_ACCESS
. Untuk daftar nilai dan deskripsi yang mungkin, lihat RegCreateKeyEx
di Windows SDK.
Tampilkan Nilai
Jika berhasil, mengembalikan ERROR_SUCCESS
; jika tidak, nilai kesalahan bukan nol yang ditentukan dalam WINERROR.H
.
Keterangan
lpszKeyName
Jika parameter adalah NULL
atau menunjuk ke string kosong, Open
membuka handel baru kunci yang diidentifikasi oleh hKeyParent
, tetapi tidak menutup handel yang dibuka sebelumnya.
Tidak seperti CRegKey::Create
, Open
tidak akan membuat kunci yang ditentukan jika tidak ada.
CRegKey::operator HKEY
CRegKey
Mengonversi objek menjadi HKEY
.
operator HKEY() const throw();
CRegKey::operator =
Operator penugasan.
CRegKey& operator= (CRegKey& key) throw();
Parameter
key
Kunci untuk disalin.
Tampilkan Nilai
Mengembalikan referensi ke kunci baru.
Keterangan
Operator ini melepaskan key
dari objeknya saat ini dan menetapkannya ke CRegKey
objek sebagai gantinya.
CRegKey::QueryBinaryValue
Panggil metode ini untuk mengambil data biner untuk nama nilai tertentu.
LONG QueryBinaryValue(
LPCTSTR pszValueName,
void* pValue,
ULONG* pnBytes) throw();
Parameter
pszValueName
Penunjuk ke NULL
string yang dihentikan yang berisi nama nilai yang akan dikueri.
pValue
Penunjuk ke buffer yang menerima data nilai.
pnBytes
Penunjuk ke variabel yang menentukan ukuran, dalam byte, dari buffer yang diacu oleh pValue
parameter . Ketika metode kembali, variabel ini berisi ukuran data yang disalin ke buffer.
Tampilkan Nilai
Jika metode berhasil, ERROR_SUCCESS
dikembalikan. Jika metode gagal membaca nilai, metode mengembalikan kode kesalahan bukan nol yang ditentukan dalam WINERROR.H
. Jika data yang direferensikan bukan tipe REG_BINARY
, ERROR_INVALID_DATA
dikembalikan.
Keterangan
Metode ini menggunakan RegQueryValueEx
dan mengonfirmasi bahwa jenis data yang benar dikembalikan. Lihat RegQueryValueEx
untuk detail selengkapnya.
Penting
Metode ini memungkinkan pemanggil untuk menentukan lokasi registri apa pun, berpotensi membaca data yang tidak dapat dipercaya. Selain itu, fungsi yang RegQueryValueEx
digunakan oleh metode ini tidak secara eksplisit menangani string yang dihentikan null. Kedua kondisi harus diperiksa oleh kode panggilan.
CRegKey::QueryDWORDValue
Panggil metode ini untuk mengambil DWORD
data untuk nama nilai tertentu.
LONG QueryDWORDValue(
LPCTSTR pszValueName,
DWORD& dwValue) throw();
Parameter
pszValueName
Penunjuk ke NULL
string yang dihentikan yang berisi nama nilai yang akan dikueri.
dwValue
Penunjuk ke buffer yang menerima DWORD
.
Tampilkan Nilai
Jika metode berhasil, ERROR_SUCCESS
dikembalikan. Jika metode gagal membaca nilai, metode mengembalikan kode kesalahan bukan nol yang ditentukan dalam WINERROR.H
. Jika data yang direferensikan bukan tipe REG_DWORD
, ERROR_INVALID_DATA
dikembalikan.
Keterangan
Metode ini menggunakan RegQueryValueEx
dan mengonfirmasi bahwa jenis data yang benar dikembalikan. Lihat RegQueryValueEx
untuk detail selengkapnya.
Penting
Metode ini memungkinkan pemanggil untuk menentukan lokasi registri apa pun, berpotensi membaca data yang tidak dapat dipercaya. Selain itu, fungsi yang RegQueryValueEx
digunakan oleh metode ini tidak secara eksplisit menangani string yang dihentikan null. Kedua kondisi harus diperiksa oleh kode panggilan.
CRegKey::QueryGUIDValue
Panggil metode ini untuk mengambil data GUID untuk nama nilai tertentu.
LONG QueryGUIDValue(
LPCTSTR pszValueName,
GUID& guidValue) throw();
Parameter
pszValueName
Penunjuk ke NULL
string yang dihentikan yang berisi nama nilai yang akan dikueri.
guidValue
Penunjuk ke variabel yang menerima GUID.
Tampilkan Nilai
Jika metode berhasil, ERROR_SUCCESS
dikembalikan. Jika metode gagal membaca nilai, metode mengembalikan kode kesalahan bukan nol yang ditentukan dalam WINERROR.H
. Jika data yang direferensikan bukan GUID yang valid, ERROR_INVALID_DATA
dikembalikan.
Keterangan
Metode ini menggunakan CRegKey::QueryStringValue
dan mengonversi string menjadi GUID menggunakan CLSIDFromString
.
Penting
Metode ini memungkinkan pemanggil untuk menentukan lokasi registri apa pun, berpotensi membaca data yang tidak dapat dipercaya.
CRegKey::QueryMultiStringValue
Panggil metode ini untuk mengambil data multistring untuk nama nilai tertentu.
LONG QueryMultiStringValue(
LPCTSTR pszValueName,
LPTSTR pszValue,
ULONG* pnChars) throw();
Parameter
pszValueName
Penunjuk ke NULL
string yang dihentikan yang berisi nama nilai yang akan dikueri.
pszValue
Penunjuk ke buffer yang menerima data multistring. Multistring adalah array string NULL
yang dihentikan, dihentikan oleh dua karakter null.
pnChars
Ukuran, dalam TCHARs
, dari buffer yang ditujukkan oleh pszValue
. Ketika metode kembali, pnChars
berisi ukuran, dalam TCHARs
, dari multistring yang diambil, termasuk karakter null yang mengakhiri.
Tampilkan Nilai
Jika metode berhasil, ERROR_SUCCESS
dikembalikan. Jika metode gagal membaca nilai, metode mengembalikan kode kesalahan bukan nol yang ditentukan dalam WINERROR.H
. Jika data yang direferensikan bukan tipe REG_MULTI_SZ
, ERROR_INVALID_DATA
dikembalikan.
Keterangan
Metode ini menggunakan RegQueryValueEx
dan mengonfirmasi bahwa jenis data yang benar dikembalikan. Lihat RegQueryValueEx
untuk detail selengkapnya.
Penting
Metode ini memungkinkan pemanggil untuk menentukan lokasi registri apa pun, berpotensi membaca data yang tidak dapat dipercaya. Selain itu, fungsi yang RegQueryValueEx
digunakan oleh metode ini tidak secara eksplisit menangani string yang dihentikan null. Kedua kondisi harus diperiksa oleh kode panggilan.
CRegKey::QueryQWORDValue
Panggil metode ini untuk mengambil QWORD
data untuk nama nilai tertentu.
LONG QueryQWORDValue(
LPCTSTR pszValueName,
ULONGLONG& qwValue) throw();
Parameter
pszValueName
Penunjuk ke NULL
string yang dihentikan yang berisi nama nilai yang akan dikueri.
qwValue
Penunjuk ke buffer yang menerima QWORD
.
Tampilkan Nilai
Jika metode berhasil, ERROR_SUCCESS
dikembalikan. Jika metode gagal membaca nilai, metode mengembalikan kode kesalahan bukan nol yang ditentukan dalam WINERROR.H
. Jika data yang direferensikan bukan tipe REG_QWORD
, ERROR_INVALID_DATA
dikembalikan.
Keterangan
Metode ini menggunakan RegQueryValueEx
dan mengonfirmasi bahwa jenis data yang benar dikembalikan. Lihat RegQueryValueEx
untuk detail selengkapnya.
Penting
Metode ini memungkinkan pemanggil untuk menentukan lokasi registri apa pun, berpotensi membaca data yang tidak dapat dipercaya. Selain itu, fungsi yang RegQueryValueEx
digunakan oleh metode ini tidak secara eksplisit menangani string yang dihentikan null. Kedua kondisi harus diperiksa oleh kode panggilan.
CRegKey::QueryStringValue
Panggil metode ini untuk mengambil data string untuk nama nilai tertentu.
LONG QueryStringValue(
LPCTSTR pszValueName,
LPTSTR pszValue,
ULONG* pnChars) throw();
Parameter
pszValueName
Penunjuk ke NULL
string yang dihentikan yang berisi nama nilai yang akan dikueri.
pszValue
Penunjuk ke buffer yang menerima data string.
pnChars
Ukuran, dalam TCHAR, dari buffer yang ditujukkan oleh pszValue
. Saat metode kembali, pnChars
berisi ukuran, dalam TCHARs
, dari string yang diambil, termasuk karakter null yang mengakhiri.
Tampilkan Nilai
Jika metode berhasil, ERROR_SUCCESS
dikembalikan. Jika metode gagal membaca nilai, metode mengembalikan kode kesalahan bukan nol yang ditentukan dalam WINERROR.H
. Jika data yang direferensikan bukan tipe REG_SZ
, ERROR_INVALID_DATA
dikembalikan. Jika metode mengembalikan ERROR_MORE_DATA
, pnChars
sama dengan nol, bukan ukuran buffer yang diperlukan dalam byte.
Keterangan
Metode ini menggunakan RegQueryValueEx
dan mengonfirmasi bahwa jenis data yang benar dikembalikan. Lihat RegQueryValueEx
untuk detail selengkapnya.
Penting
Metode ini memungkinkan pemanggil untuk menentukan lokasi registri apa pun, berpotensi membaca data yang tidak dapat dipercaya. Selain itu, fungsi yang RegQueryValueEx
digunakan oleh metode ini tidak secara eksplisit menangani string yang dihentikan null. Kedua kondisi harus diperiksa oleh kode panggilan.
CRegKey::QueryValue
Panggil metode ini untuk mengambil data untuk bidang nilai yang ditentukan dari m_hKey
. Versi sebelumnya dari metode ini tidak lagi didukung dan ditandai sebagai ATL_DEPRECATED
.
LONG QueryValue(
LPCTSTR pszValueName,
DWORD* pdwType,
void* pData,
ULONG* pnBytes) throw();
ATL_DEPRECATED LONG QueryValue(
DWORD& dwValue,
LPCTSTR lpszValueName);
ATL_DEPRECATED LONG QueryValue(
LPTSTR szValue,
LPCTSTR lpszValueName,
DWORD* pdwCount);
Parameter
pszValueName
Penunjuk ke NULL
string yang dihentikan yang berisi nama nilai yang akan dikueri. Jika pszValueName
adalah NULL
atau string kosong, ""
, metode mengambil jenis dan data untuk nilai kunci yang tidak disebutkan namanya atau default, jika ada.
pdwType
Penunjuk ke variabel yang menerima kode yang menunjukkan jenis data yang disimpan dalam nilai yang ditentukan. Parameter pdwType
dapat jika NULL
kode jenis tidak diperlukan.
pData
Penunjuk ke buffer yang menerima data nilai. Parameter ini bisa jika NULL
data tidak diperlukan.
pnBytes
Penunjuk ke variabel yang menentukan ukuran, dalam byte, dari buffer yang diacu oleh pData
parameter . Ketika metode kembali, variabel ini berisi ukuran data yang disalin ke pData
.
dwValue
Data numerik bidang nilai.
lpszValueName
Menentukan bidang nilai yang akan dikueri.
szValue
Data string bidang nilai.
pdwCount
Ukuran data string. Nilainya awalnya diatur ke ukuran szValue
buffer.
Tampilkan Nilai
Jika berhasil, mengembalikan ERROR_SUCCESS
; jika tidak, kode kesalahan bukan nol yang ditentukan dalam WINERROR.H
.
Keterangan
Dua versi QueryValue
asli tidak lagi didukung dan ditandai sebagai ATL_DEPRECATED
. Pengkompilasi akan mengeluarkan peringatan jika formulir ini digunakan.
Metode yang tersisa memanggil RegQueryValueEx
.
Penting
Metode ini memungkinkan pemanggil untuk menentukan lokasi registri apa pun, berpotensi membaca data yang tidak dapat dipercaya. Selain itu, fungsi yang RegQueryValueEx
digunakan oleh metode ini tidak secara eksplisit menangani string yang dihentikan null. Kedua kondisi harus diperiksa oleh kode panggilan.
CRegKey::RecurseDeleteKey
Panggil metode ini untuk menghapus kunci yang ditentukan dari registri dan secara eksplisit menghapus subkunjung apa pun.
LONG RecurseDeleteKey(LPCTSTR lpszKey) throw();
Parameter
lpszKey
Menentukan nama kunci yang akan dihapus. Nama ini harus berupa subkunjuk dari m_hKey
.
Tampilkan Nilai
Jika berhasil, mengembalikan ERROR_SUCCESS
; jika tidak, nilai kesalahan bukan nol yang ditentukan dalam WINERROR.H
.
Keterangan
Jika kunci memiliki subkunjuk, Anda harus memanggil metode ini untuk menghapus kunci.
CRegKey::SetBinaryValue
Panggil metode ini untuk mengatur nilai biner kunci registri.
LONG SetBinaryValue(
LPCTSTR pszValueName,
const void* pValue,
ULONG nBytes) throw();
Parameter
pszValueName
Penunjuk ke string yang berisi nama nilai yang akan diatur. Jika nilai dengan nama ini belum ada, metode menambahkannya ke kunci.
pValue
Penunjuk ke buffer yang berisi data yang akan disimpan dengan nama nilai yang ditentukan.
nBytes
Menentukan ukuran, dalam byte, dari informasi yang ditujukkan oleh pValue
parameter .
Tampilkan Nilai
Jika metode berhasil, nilai yang dikembalikan adalah ERROR_SUCCESS
. Jika metode gagal, nilai pengembalian adalah kode kesalahan bukan nol yang ditentukan dalam WINERROR.H
.
Keterangan
Metode ini menggunakan untuk menulis nilai ke registri RegSetValueEx
.
CRegKey::SetDWORDValue
Panggil metode ini untuk mengatur DWORD
nilai kunci registri.
LONG SetDWORDValue(LPCTSTR pszValueName, DWORD dwValue) throw();
Parameter
pszValueName
Penunjuk ke string yang berisi nama nilai yang akan diatur. Jika nilai dengan nama ini belum ada, metode menambahkannya ke kunci.
dwValue
Data DWORD
yang akan disimpan dengan nama nilai yang ditentukan.
Tampilkan Nilai
Jika metode berhasil, nilai yang dikembalikan adalah ERROR_SUCCESS
. Jika metode gagal, nilai pengembalian adalah kode kesalahan bukan nol yang ditentukan dalam WINERROR.H
.
Keterangan
Metode ini menggunakan untuk menulis nilai ke registri RegSetValueEx
.
CRegKey::SetGUIDValue
Panggil metode ini untuk mengatur nilai GUID kunci registri.
LONG SetGUIDValue(LPCTSTR pszValueName, REFGUID guidValue) throw();
Parameter
pszValueName
Penunjuk ke string yang berisi nama nilai yang akan diatur. Jika nilai dengan nama ini belum ada, metode menambahkannya ke kunci.
guidValue
Referensi ke GUID untuk disimpan dengan nama nilai yang ditentukan.
Tampilkan Nilai
Jika metode berhasil, nilai yang dikembalikan adalah ERROR_SUCCESS
. Jika metode gagal, nilai pengembalian adalah kode kesalahan bukan nol yang ditentukan dalam WINERROR.H
.
Keterangan
Metode ini menggunakan CRegKey::SetStringValue
dan mengonversi GUID menjadi string menggunakan StringFromGUID2
.
CRegKey::SetKeyValue
Panggil metode ini untuk menyimpan data dalam bidang nilai tertentu dari kunci tertentu.
LONG SetKeyValue(
LPCTSTR lpszKeyName,
LPCTSTR lpszValue,
LPCTSTR lpszValueName = NULL) throw();
Parameter
lpszKeyName
Menentukan nama kunci yang akan dibuat atau dibuka. Nama ini harus berupa subkunjuk dari m_hKey
.
lpszValue
Menentukan data yang akan disimpan. Parameter ini harus non-NULL
.
lpszValueName
Menentukan bidang nilai yang akan ditetapkan. Jika bidang nilai dengan nama ini belum ada di kunci, bidang tersebut akan ditambahkan.
Tampilkan Nilai
Jika berhasil, mengembalikan ERROR_SUCCESS
; jika tidak, kode kesalahan bukan nol yang ditentukan dalam WINERROR.H
.
Keterangan
Panggil metode ini untuk membuat atau membuka lpszKeyName
kunci dan menyimpan lpszValue
data di lpszValueName
bidang nilai.
CRegKey::SetKeySecurity
Panggil metode ini untuk mengatur keamanan kunci registri.
LONG SetKeySecurity(SECURITY_INFORMATION si, PSECURITY_DESCRIPTOR psd) throw();
Parameter
si
Menentukan komponen pendeskripsi keamanan yang akan diatur. Nilainya bisa berupa kombinasi dari nilai berikut:
Nilai | Makna |
---|---|
DACL_SECURITY_INFORMATION |
Mengatur daftar kontrol akses diskresi (DACL) kunci. Kunci harus memiliki WRITE_DAC akses, atau proses panggilan harus menjadi pemilik objek. |
GROUP_SECURITY_INFORMATION |
Mengatur pengidentifikasi keamanan grup utama (SID) kunci. Kunci harus memiliki WRITE_OWNER akses, atau proses panggilan harus menjadi pemilik objek. |
OWNER_SECURITY_INFORMATION |
Mengatur SID pemilik kunci. Kunci harus memiliki WRITE_OWNER akses, atau proses panggilan harus menjadi pemilik objek atau SE_TAKE_OWNERSHIP_NAME mengaktifkan hak istimewa. |
SACL_SECURITY_INFORMATION |
Mengatur daftar kontrol akses sistem (SACL) kunci. Kunci harus memiliki ACCESS_SYSTEM_SECURITY akses. Cara yang tepat untuk mendapatkan akses ini adalah dengan mengaktifkan SE_SECURITY_NAME hak istimewa dalam token akses penelepon saat ini, buka handel untuk ACCESS_SYSTEM_SECURITY akses, lalu nonaktifkan hak istimewa. |
psd
Penunjuk ke SECURITY_DESCRIPTOR
struktur yang menentukan atribut keamanan yang akan diatur untuk kunci yang ditentukan.
Tampilkan Nilai
Jika metode berhasil, nilai yang dikembalikan adalah ERROR_SUCCESS
. Jika metode gagal, nilai pengembalian adalah kode kesalahan bukan nol yang ditentukan dalam WINERROR.H
.
Keterangan
Mengatur atribut keamanan kunci. Lihat RegSetKeySecurity
untuk detail selengkapnya.
CRegKey::SetMultiStringValue
Panggil metode ini untuk mengatur nilai multistring kunci registri.
LONG SetMultiStringValue(LPCTSTR pszValueName, LPCTSTR pszValue) throw();
Parameter
pszValueName
Penunjuk ke string yang berisi nama nilai yang akan diatur. Jika nilai dengan nama ini belum ada, metode menambahkannya ke kunci.
pszValue
Penunjuk ke data multistring untuk disimpan dengan nama nilai yang ditentukan. Multistring adalah array string NULL
yang dihentikan, dihentikan oleh dua karakter null.
Tampilkan Nilai
Jika metode berhasil, nilai yang dikembalikan adalah ERROR_SUCCESS
. Jika metode gagal, nilai pengembalian adalah kode kesalahan bukan nol yang ditentukan dalam WINERROR.H
.
Keterangan
Metode ini menggunakan untuk menulis nilai ke registri RegSetValueEx
.
CRegKey::SetQWORDValue
Panggil metode ini untuk mengatur QWORD
nilai kunci registri.
LONG SetQWORDValue(LPCTSTR pszValueName, ULONGLONG qwValue) throw();
Parameter
pszValueName
Penunjuk ke string yang berisi nama nilai yang akan diatur. Jika nilai dengan nama ini belum ada, metode menambahkannya ke kunci.
qwValue
Data QWORD
yang akan disimpan dengan nama nilai yang ditentukan.
Tampilkan Nilai
Jika metode berhasil, nilai yang dikembalikan adalah ERROR_SUCCESS
. Jika metode gagal, nilai pengembalian adalah kode kesalahan bukan nol yang ditentukan dalam WINERROR.H
.
Keterangan
Metode ini menggunakan untuk menulis nilai ke registri RegSetValueEx
.
CRegKey::SetStringValue
Panggil metode ini untuk mengatur nilai string kunci registri.
LONG SetStringValue(
LPCTSTR pszValueName,
LPCTSTR pszValue,
DWORD dwType = REG_SZ) throw();
Parameter
pszValueName
Penunjuk ke string yang berisi nama nilai yang akan diatur. Jika nilai dengan nama ini belum ada, metode menambahkannya ke kunci.
pszValue
Penunjuk ke data string yang akan disimpan dengan nama nilai yang ditentukan.
dwType
Jenis string yang akan ditulis ke registri: baik REG_SZ
(default) atau REG_EXPAND_SZ
(untuk multistring).
Tampilkan Nilai
Jika metode berhasil, nilai yang dikembalikan adalah ERROR_SUCCESS
. Jika metode gagal, nilai pengembalian adalah kode kesalahan bukan nol yang ditentukan dalam WINERROR.H
.
Keterangan
Metode ini menggunakan untuk menulis nilai ke registri RegSetValueEx
.
CRegKey::SetValue
Panggil metode ini untuk menyimpan data di bidang nilai yang ditentukan dari m_hKey
. Versi sebelumnya dari metode ini tidak lagi didukung dan ditandai sebagai ATL_DEPRECATED
.
LONG SetValue(
LPCTSTR pszValueName,
DWORD dwType,
const void* pValue,
ULONG nBytes) throw();
static LONG WINAPI SetValue(
HKEY hKeyParent,
LPCTSTR lpszKeyName,
LPCTSTR lpszValue,
LPCTSTR lpszValueName = NULL);
ATL_DEPRECATED LONG SetValue(
DWORD dwValue,
LPCTSTR lpszValueName);
ATL_DEPRECATED LONG SetValue(
LPCTSTR lpszValue,
LPCTSTR lpszValueName = NULL,
bool bMulti = false,
int nValueLen = -1);
Parameter
pszValueName
Penunjuk ke string yang berisi nama nilai yang akan diatur. Jika nilai dengan nama ini belum ada di kunci, metode menambahkannya ke kunci. Jika pszValueName
adalah NULL
atau string kosong, ""
, metode mengatur jenis dan data untuk nilai kunci yang tidak disebutkan namanya atau default.
dwType
Menentukan kode yang menunjukkan jenis data yang diacu oleh pValue
parameter .
pValue
Penunjuk ke buffer yang berisi data yang akan disimpan dengan nama nilai yang ditentukan.
nBytes
Menentukan ukuran, dalam byte, dari informasi yang ditujukkan oleh pValue
parameter . Jika data berjenis REG_SZ
, , REG_EXPAND_SZ
atau REG_MULTI_SZ
, nBytes
harus menyertakan ukuran karakter null yang dihentikan.
hKeyParent
Handel kunci terbuka.
lpszKeyName
Menentukan nama kunci yang akan dibuat atau dibuka. Nama ini harus berupa subkunjuk dari hKeyParent
.
lpszValue
Menentukan data yang akan disimpan. Parameter ini harus non-NULL
.
lpszValueName
Menentukan bidang nilai yang akan ditetapkan. Jika bidang nilai dengan nama ini belum ada di kunci, bidang tersebut akan ditambahkan.
dwValue
Menentukan data yang akan disimpan.
bMulti
Jika false, menunjukkan string berjenis REG_SZ
. Jika true, menunjukkan string adalah multistring jenis REG_MULTI_SZ
.
nValueLen
Jika bMulti
true, nValueLen
adalah panjang lpszValue
string dalam karakter. Jika bMulti
false, nilai -1 menunjukkan bahwa metode akan menghitung panjang secara otomatis.
Tampilkan Nilai
Jika berhasil, mengembalikan ERROR_SUCCESS
; jika tidak, kode kesalahan bukan nol yang ditentukan dalam WINERROR.H
.
Keterangan
Dua versi SetValue
asli ditandai sebagai ATL_DEPRECATED
dan tidak boleh lagi digunakan. Pengkompilasi akan mengeluarkan peringatan jika formulir ini digunakan.
Metode ketiga memanggil RegSetValueEx
.