Bagikan melalui


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

Attachakan 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

Createm_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 NULLstring 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 NULLstring 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 NULLstring 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 NULLstring yang dihentikan yang berisi nama nilai yang akan dikueri.

pszValue
Penunjuk ke buffer yang menerima data multistring. Multistring adalah array string NULLyang 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 NULLstring 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 NULLstring 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 NULLstring 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 NULLyang 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_SZatau 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.

Lihat juga

Sampel DCOM
Gambaran Umum Kelas