CRegKey
Klasa
Ta klasa udostępnia metody manipulowania wpisami w rejestrze systemowym.
Ważne
Tej klasy i jej składowych nie można używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows.
Składnia
class CRegKey
Elementy członkowskie
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
CRegKey::CRegKey |
Konstruktor. |
CRegKey::~CRegKey |
Destruktora. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
CRegKey::Attach |
Wywołaj tę metodę, aby dołączyć klucz HKEY do CRegKey obiektu, ustawiając uchwyt elementu m_hKey członkowskiego na hKey . |
CRegKey::Close |
Wywołaj tę metodę, aby zwolnić m_hKey uchwyt elementu członkowskiego i ustawić go na NULL . |
CRegKey::Create |
Wywołaj tę metodę, aby utworzyć określony klucz, jeśli nie istnieje jako podklucz hKeyParent . |
CRegKey::DeleteSubKey |
Wywołaj tę metodę, aby usunąć określony klucz z rejestru. |
CRegKey::DeleteValue |
Wywołaj tę metodę, aby usunąć pole wartości z m_hKey klasy . |
CRegKey::Detach |
Wywołaj tę metodę, aby odłączyć m_hKey uchwyt elementu członkowskiego od CRegKey obiektu i ustawić wartość m_hKey NULL . |
CRegKey::EnumKey |
Wywołaj tę metodę, aby wyliczyć podklucze otwartego klucza rejestru. |
CRegKey::Flush |
Wywołaj tę metodę, aby zapisać wszystkie atrybuty otwartego klucza rejestru w rejestrze. |
CRegKey::GetKeySecurity |
Wywołaj tę metodę, aby pobrać kopię deskryptora zabezpieczeń chroniącego otwarty klucz rejestru. |
CRegKey::NotifyChangeKeyValue |
Ta metoda powiadamia obiekt wywołujący o zmianach atrybutów lub zawartości otwartego klucza rejestru. |
CRegKey::Open |
Wywołaj tę metodę, aby otworzyć określony klucz i ustawić m_hKey uchwyt tego klucza. |
CRegKey::QueryBinaryValue |
Wywołaj tę metodę, aby pobrać dane binarne dla określonej nazwy wartości. |
CRegKey::QueryDWORDValue |
Wywołaj tę metodę, DWORD aby pobrać dane dla określonej nazwy wartości. |
CRegKey::QueryGUIDValue |
Wywołaj tę metodę, aby pobrać dane identyfikatora GUID dla określonej nazwy wartości. |
CRegKey::QueryMultiStringValue |
Wywołaj tę metodę, aby pobrać dane wielociągowe dla określonej nazwy wartości. |
CRegKey::QueryQWORDValue |
Wywołaj tę metodę, QWORD aby pobrać dane dla określonej nazwy wartości. |
CRegKey::QueryStringValue |
Wywołaj tę metodę, aby pobrać dane ciągu dla określonej nazwy wartości. |
CRegKey::QueryValue |
Wywołaj tę metodę, aby pobrać dane dla określonego pola wartości .m_hKey Wcześniejsze wersje tej metody nie są już obsługiwane i są oznaczone jako ATL_DEPRECATED . |
CRegKey::RecurseDeleteKey |
Wywołaj tę metodę, aby usunąć określony klucz z rejestru i jawnie usunąć wszystkie podklucze. |
CRegKey::SetBinaryValue |
Wywołaj tę metodę, aby ustawić wartość binarną klucza rejestru. |
CRegKey::SetDWORDValue |
Wywołaj tę metodę, aby ustawić DWORD wartość klucza rejestru. |
CRegKey::SetGUIDValue |
Wywołaj tę metodę, aby ustawić wartość identyfikatora GUID klucza rejestru. |
CRegKey::SetKeySecurity |
Wywołaj tę metodę, aby ustawić zabezpieczenia klucza rejestru. |
CRegKey::SetKeyValue |
Wywołaj tę metodę, aby przechowywać dane w określonym polu wartości określonego klucza. |
CRegKey::SetMultiStringValue |
Wywołaj tę metodę, aby ustawić wartość wielociągową klucza rejestru. |
CRegKey::SetQWORDValue |
Wywołaj tę metodę, aby ustawić QWORD wartość klucza rejestru. |
CRegKey::SetStringValue |
Wywołaj tę metodę, aby ustawić wartość ciągu klucza rejestru. |
CRegKey::SetValue |
Wywołaj tę metodę, aby przechowywać dane w określonym polu wartości .m_hKey Wcześniejsze wersje tej metody nie są już obsługiwane i są oznaczone jako ATL_DEPRECATED . |
Operatory publiczne
Nazwa/nazwisko | opis |
---|---|
CRegKey::operator HKEY |
Konwertuje CRegKey obiekt na HKEY obiekt . |
CRegKey::operator = |
Operator przypisania. |
Publiczne elementy członkowskie danych
Nazwa/nazwisko | opis |
---|---|
CRegKey::m_hKey |
Zawiera dojście klucza rejestru skojarzonego z obiektem CRegKey . |
CRegKey::m_pTM |
Wskaźnik do CAtlTransactionManager obiektu |
Uwagi
CRegKey
Udostępnia metody tworzenia i usuwania kluczy i wartości w rejestrze systemowym. Rejestr zawiera zestaw definicji specyficznych dla instalacji dla składników systemowych, takich jak numery wersji oprogramowania, logiczne mapowania zainstalowanego sprzętu i obiektów COM.
CRegKey
Udostępnia interfejs programowania do rejestru systemowego dla danej maszyny. Aby na przykład otworzyć określony klucz rejestru, wywołaj metodę CRegKey::Open
. Aby pobrać lub zmodyfikować wartość danych, wywołaj CRegKey::QueryValue
lub CRegKey::SetValue
, odpowiednio. Aby zamknąć klucz, wywołaj metodę CRegKey::Close
.
Po zamknięciu klucza jego dane rejestru są zapisywane (opróżniane) na dysku twardym. Ten proces może potrwać kilka sekund. Jeśli aplikacja musi jawnie zapisywać dane rejestru na dysku twardym, możesz wywołać RegFlushKey
funkcję Win32. RegFlushKey
Jednak używa wielu zasobów systemowych i powinny być wywoływane tylko wtedy, gdy jest to absolutnie konieczne.
Ważne
Wszystkie metody, które umożliwiają obiektowi wywołującym określenie lokalizacji rejestru, mogą odczytywać dane, których nie można zaufać. Metody, z których korzystają RegQueryValueEx
, powinny brać pod uwagę, że ta funkcja nie obsługuje jawnie ciągów, które są zakończone wartością null. Oba warunki powinny być sprawdzane przez kod wywołujący.
Wymagania
Nagłówek: atlbase.h
CRegKey::Attach
Wywołaj tę metodę, aby dołączyć HKEY
obiekt do CRegKey
obiektu, ustawiając uchwyt elementu m_hKey
członkowskiego na hKey
.
void Attach(HKEY hKey) throw();
Parametry
hKey
Dojście klucza rejestru.
Uwagi
Attach
będzie asercją, jeśli m_hKey
nie jestNULL
.
CRegKey::Close
Wywołaj tę metodę, aby zwolnić m_hKey
uchwyt elementu członkowskiego i ustawić go na NULL
.
LONG Close() throw();
Wartość zwracana
Jeśli operacja powiedzie się, zwraca ERROR_SUCCESS
wartość ; w przeciwnym razie zwraca wartość błędu.
CRegKey::Create
Wywołaj tę metodę, aby utworzyć określony klucz, jeśli nie istnieje jako podklucz 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();
Parametry
hKeyParent
Uchwyt otwartego klucza.
lpszKeyName
Określa nazwę klucza, który ma zostać utworzony lub otwarty. Ta nazwa musi być podkluczem .hKeyParent
lpszClass
Określa klasę klucza do utworzenia lub otwarcia. Wartość domyślna to REG_NONE.
dwOptions
Opcje klucza. Domyślna wartość to REG_OPTION_NON_VOLATILE
. Aby uzyskać listę możliwych wartości i opisów, zobacz RegCreateKeyEx
w zestawie Windows SDK.
samDesired
Dostęp zabezpieczeń dla klucza. Domyślna wartość to KEY_READ | KEY_WRITE
. Aby uzyskać listę możliwych wartości i opisów, zobacz RegCreateKeyEx
.
lpSecAttr
Wskaźnik do SECURITY_ATTRIBUTES
struktury, która wskazuje, czy uchwyt klucza może być dziedziczony przez proces podrzędny. Domyślnie ten parametr to NULL
(co oznacza, że nie można dziedziczyć uchwytu).
lpdwDisposition
[out] Jeśli nieNULL
, pobiera albo REG_CREATED_NEW_KEY
(jeśli klucz nie istnieje i został utworzony) lub REG_OPENED_EXISTING_KEY
(jeśli klucz istniał i został otwarty).
Wartość zwracana
Jeśli operacja powiedzie się, zwraca ERROR_SUCCESS
i otwiera klucz. Jeśli metoda zakończy się niepowodzeniem, zwracana wartość jest kodem błędu nonzero zdefiniowanym w pliku WINERROR.H
.
Uwagi
Create
ustawia element członkowski m_hKey
na uchwyt tego klucza.
CRegKey::CRegKey
Konstruktor.
CRegKey() throw();
CRegKey(CRegKey& key) throw();
explicit CRegKey(HKEY hKey) throw();
CRegKey(CAtlTransactionManager* pTM) throw();
Parametry
key
Odwołanie do CRegKey
obiektu.
hKey
Dojście do klucza rejestru.
pTM
Wskaźnik do CAtlTransactionManager
obiektu
Uwagi
Tworzy nowy CRegKey
obiekt. Obiekt można utworzyć na podstawie istniejącego CRegKey
obiektu lub z uchwytu do klucza rejestru.
CRegKey::~CRegKey
Destruktora.
~CRegKey() throw();
Uwagi
Destruktor zwalnia m_hKey
element .
CRegKey::DeleteSubKey
Wywołaj tę metodę, aby usunąć określony klucz z rejestru.
LONG DeleteSubKey(LPCTSTR lpszSubKey) throw();
Parametry
lpszSubKey
Określa nazwę klucza do usunięcia. Ta nazwa musi być podkluczem .m_hKey
Wartość zwracana
Jeśli operacja powiedzie się, zwraca wartość ERROR_SUCCESS
. Jeśli metoda zakończy się niepowodzeniem, zwracana wartość jest kodem błędu nonzero zdefiniowanym w pliku WINERROR.H
.
Uwagi
DeleteSubKey
może usuwać tylko klucz, który nie ma podkluczów. Jeśli klucz ma podklucze, wywołaj RecurseDeleteKey
zamiast tego.
CRegKey::DeleteValue
Wywołaj tę metodę, aby usunąć pole wartości z m_hKey
klasy .
LONG DeleteValue(LPCTSTR lpszValue) throw();
Parametry
lpszValue
Określa pole wartości do usunięcia.
Wartość zwracana
Jeśli operacja powiedzie się, zwraca wartość ERROR_SUCCESS
. Jeśli metoda zakończy się niepowodzeniem, zwracana wartość jest kodem błędu nonzero zdefiniowanym w pliku WINERROR.H
.
CRegKey::Detach
Wywołaj tę metodę, aby odłączyć m_hKey
uchwyt elementu członkowskiego od CRegKey
obiektu i ustawić wartość m_hKey
NULL
.
HKEY Detach() throw();
Wartość zwracana
Klucz HKEY skojarzony z obiektem CRegKey
.
CRegKey::EnumKey
Wywołaj tę metodę, aby wyliczyć podklucze otwartego klucza rejestru.
LONG EnumKey(
DWORD iIndex,
LPTSTR pszName,
LPDWORD pnNameLength,
FILETIME* pftLastWriteTime = NULL) throw();
Parametry
iIndex
Indeks podklucza. Ten parametr powinien być zerowy dla pierwszego wywołania, a następnie zwiększany dla kolejnych wywołań
pszName
Wskaźnik do buforu, który odbiera nazwę podklucza, w tym znak null zakończenia. Tylko nazwa podklucza jest kopiowana do buforu, a nie do pełnej hierarchii kluczy.
pnNameLength
Wskaźnik do zmiennej, która określa rozmiar w , TCHARs
buforu określonego pszName
przez parametr . Ten rozmiar powinien zawierać znak null zakończenia. Gdy metoda zwraca, zmienna wskazywana przez pnNameLength
element zawiera liczbę znaków przechowywanych w buforze. Zwrócona liczba nie zawiera znaku null zakończenia.
pftLastWriteTime
Wskaźnik do zmiennej, która odbiera czas ostatniego zapisania wyliczonego podklucza.
Wartość zwracana
Jeśli metoda powiedzie się, zwracana wartość to ERROR_SUCCESS
. Jeśli metoda zakończy się niepowodzeniem, zwracana wartość jest kodem błędu nonzero zdefiniowanym w pliku WINERROR.H
.
Uwagi
Aby wyliczyć podklucze, wywołaj CRegKey::EnumKey
metodę z indeksem zera. Zwiększa wartość indeksu i powtarzaj, aż metoda zwróci ERROR_NO_MORE_ITEMS
wartość . Aby uzyskać więcej informacji, zobacz RegEnumKeyEx
w zestawie Windows SDK.
CRegKey::Flush
Wywołaj tę metodę, aby zapisać wszystkie atrybuty otwartego klucza rejestru w rejestrze.
LONG Flush() throw();
Wartość zwracana
Jeśli metoda powiedzie się, zwracana wartość to ERROR_SUCCESS
. Jeśli metoda zakończy się niepowodzeniem, zwracana wartość jest kodem błędu nonzero zdefiniowanym w pliku WINERROR.H
.
Uwagi
Aby uzyskać więcej informacji, zobacz RegEnumFlush
w zestawie Windows SDK.
CRegKey::GetKeySecurity
Wywołaj tę metodę, aby pobrać kopię deskryptora zabezpieczeń chroniącego otwarty klucz rejestru.
LONG GetKeySecurity(
SECURITY_INFORMATION si,
PSECURITY_DESCRIPTOR psd,
LPDWORD pnBytes) throw();
Parametry
si
Wartość SECURITY_INFORMATION
wskazująca żądane informacje o zabezpieczeniach.
psd
Wskaźnik do buforu, który odbiera kopię żądanego deskryptora zabezpieczeń.
pnBytes
Rozmiar w bajtach buforu wskazywany przez psd
wartość .
Wartość zwracana
Jeśli metoda powiedzie się, zwracana wartość to ERROR_SUCCESS
. Jeśli metoda zakończy się niepowodzeniem, zwracana wartość jest kodem błędu nonzero jest zdefiniowany w pliku WINERROR.H
.
Uwagi
Aby uzyskać więcej informacji, zobacz RegGetKeySecurity
.
CRegKey::m_hKey
Zawiera dojście klucza rejestru skojarzonego z obiektem CRegKey
.
HKEY m_hKey;
CRegKey::m_pTM
Wskaźnik do CAtlTransactionManager
obiektu.
CAtlTransactionManager* m_pTM;
Uwagi
CRegKey::NotifyChangeKeyValue
Ta metoda powiadamia obiekt wywołujący o zmianach atrybutów lub zawartości otwartego klucza rejestru.
LONG NotifyChangeKeyValue(
BOOL bWatchSubtree,
DWORD dwNotifyFilter,
HANDLE hEvent,
BOOL bAsync = TRUE) throw();
Parametry
bWatchSubtree
Określa flagę wskazującą, czy zgłosić zmiany w określonym kluczu i wszystkich jego podkluczy, czy tylko w określonym kluczu. Jeśli ten parametr to TRUE
, metoda zgłasza zmiany w kluczu i jego podkluczach. Jeśli parametr ma FALSE
wartość , metoda zgłasza zmiany tylko w kluczu.
dwNotifyFilter
Określa zestaw flag, które kontrolują, które zmiany mają być zgłaszane. Ten parametr może być kombinacją następujących wartości:
Wartość | Znaczenie |
---|---|
REG_NOTIFY_CHANGE_NAME |
Powiadom obiekt wywołujący, jeśli podklucz zostanie dodany lub usunięty. |
REG_NOTIFY_CHANGE_ATTRIBUTES |
Powiadom obiekt wywołujący o zmianach atrybutów klucza, takich jak informacje deskryptora zabezpieczeń. |
REG_NOTIFY_CHANGE_LAST_SET |
Powiadom obiekt wywołujący o zmianach wartości klucza. Może to obejmować dodawanie lub usuwanie wartości albo zmianę istniejącej wartości. |
REG_NOTIFY_CHANGE_SECURITY |
Powiadom obiekt wywołujący o zmianach w deskryptorze zabezpieczeń klucza. |
hEvent
Obsługa zdarzenia. bAsync
Jeśli parametr ma TRUE
wartość , metoda zwraca natychmiast i zmiany są zgłaszane przez sygnalizowanie tego zdarzenia. Jeśli bAsync
wartość to FALSE
, hEvent
jest ignorowana.
bAsync
Określa flagę wskazującą, jak metoda zgłasza zmiany. Jeśli ten parametr to TRUE
, metoda zwraca natychmiast i zgłasza zmiany, sygnalizując określone zdarzenie. Gdy ten parametr ma FALSE
wartość , metoda nie zwraca się do momentu wystąpienia zmiany. Jeśli hEvent
nie określi prawidłowego zdarzenia, bAsync
parametr nie może mieć wartości TRUE
.
Wartość zwracana
Jeśli metoda powiedzie się, zwracana wartość to ERROR_SUCCESS
. Jeśli metoda zakończy się niepowodzeniem, zwracana wartość jest kodem błędu nonzero zdefiniowanym w pliku WINERROR.H
.
Uwagi
Uwaga
Ta metoda nie powiadamia obiektu wywołującego o usunięciu określonego klucza.
Aby uzyskać więcej informacji i przykładowy program, zobacz RegNotifyChangeKeyValue
.
CRegKey::Open
Wywołaj tę metodę, aby otworzyć określony klucz i ustawić m_hKey
uchwyt tego klucza.
LONG Open(
HKEY hKeyParent,
LPCTSTR lpszKeyName,
REGSAM samDesired = KEY_READ | KEY_WRITE) throw();
Parametry
hKeyParent
Uchwyt otwartego klucza.
lpszKeyName
Określa nazwę klucza, który ma zostać utworzony lub otwarty. Ta nazwa musi być podkluczem .hKeyParent
samDesired
Dostęp zabezpieczeń dla klucza. Domyślna wartość to KEY_ALL_ACCESS
. Aby uzyskać listę możliwych wartości i opisów, zobacz RegCreateKeyEx
w zestawie Windows SDK.
Wartość zwracana
Jeśli operacja powiedzie się, zwraca ERROR_SUCCESS
wartość ; w przeciwnym razie wartość błędu niezerowa zdefiniowana w pliku WINERROR.H
.
Uwagi
lpszKeyName
Jeśli parametr jest NULL
lub wskazuje pusty ciąg, Open
otwiera nowy uchwyt klucza zidentyfikowanego przez hKeyParent
element , ale nie zamyka żadnego wcześniej otwartego dojścia.
W przeciwieństwie do CRegKey::Create
metody , Open
nie utworzy określonego klucza, jeśli nie istnieje.
CRegKey::operator HKEY
Konwertuje CRegKey
obiekt na HKEY
obiekt .
operator HKEY() const throw();
CRegKey::operator =
Operator przypisania.
CRegKey& operator= (CRegKey& key) throw();
Parametry
key
Klucz do skopiowania.
Wartość zwracana
Zwraca odwołanie do nowego klucza.
Uwagi
Ten operator odłącza key
się od bieżącego CRegKey
obiektu i przypisuje go do obiektu.
CRegKey::QueryBinaryValue
Wywołaj tę metodę, aby pobrać dane binarne dla określonej nazwy wartości.
LONG QueryBinaryValue(
LPCTSTR pszValueName,
void* pValue,
ULONG* pnBytes) throw();
Parametry
pszValueName
Wskaźnik do NULL
-terminated ciąg zawierający nazwę wartości do zapytania.
pValue
Wskaźnik do buforu, który odbiera dane wartości.
pnBytes
Wskaźnik do zmiennej, która określa rozmiar w bajtach buforu wskazywanego pValue
przez parametr . Gdy metoda zwraca, ta zmienna zawiera rozmiar danych skopiowanych do buforu.
Wartość zwracana
Jeśli metoda powiedzie się, ERROR_SUCCESS
zostanie zwrócona. Jeśli nie można odczytać wartości metody, zwraca kod błędu niezerowy zdefiniowany w pliku WINERROR.H
. Jeśli przywoływane dane nie są typu REG_BINARY
, ERROR_INVALID_DATA
jest zwracany.
Uwagi
Ta metoda używa metody RegQueryValueEx
i potwierdza, że zwracany jest prawidłowy typ danych. Zobacz RegQueryValueEx
, aby uzyskać więcej szczegółów.
Ważne
Ta metoda umożliwia obiektowi wywołującym określenie dowolnej lokalizacji rejestru, potencjalnie odczytywanie danych, które nie mogą być zaufane. RegQueryValueEx
Ponadto funkcja używana przez tę metodę nie obsługuje jawnie ciągów, które są zakończone wartością null. Oba warunki powinny być sprawdzane przez kod wywołujący.
CRegKey::QueryDWORDValue
Wywołaj tę metodę, DWORD
aby pobrać dane dla określonej nazwy wartości.
LONG QueryDWORDValue(
LPCTSTR pszValueName,
DWORD& dwValue) throw();
Parametry
pszValueName
Wskaźnik do NULL
-terminated ciąg zawierający nazwę wartości do zapytania.
dwValue
Wskaźnik do buforu, który odbiera DWORD
element .
Wartość zwracana
Jeśli metoda powiedzie się, ERROR_SUCCESS
zostanie zwrócona. Jeśli nie można odczytać wartości metody, zwraca kod błędu niezerowy zdefiniowany w pliku WINERROR.H
. Jeśli przywoływane dane nie są typu REG_DWORD
, ERROR_INVALID_DATA
jest zwracany.
Uwagi
Ta metoda używa metody RegQueryValueEx
i potwierdza, że zwracany jest prawidłowy typ danych. Zobacz RegQueryValueEx
, aby uzyskać więcej szczegółów.
Ważne
Ta metoda umożliwia obiektowi wywołującym określenie dowolnej lokalizacji rejestru, potencjalnie odczytywanie danych, które nie mogą być zaufane. RegQueryValueEx
Ponadto funkcja używana przez tę metodę nie obsługuje jawnie ciągów, które są zakończone wartością null. Oba warunki powinny być sprawdzane przez kod wywołujący.
CRegKey::QueryGUIDValue
Wywołaj tę metodę, aby pobrać dane identyfikatora GUID dla określonej nazwy wartości.
LONG QueryGUIDValue(
LPCTSTR pszValueName,
GUID& guidValue) throw();
Parametry
pszValueName
Wskaźnik do NULL
-terminated ciąg zawierający nazwę wartości do zapytania.
guidValue
Wskaźnik do zmiennej, która odbiera identyfikator GUID.
Wartość zwracana
Jeśli metoda powiedzie się, ERROR_SUCCESS
zostanie zwrócona. Jeśli nie można odczytać wartości metody, zwraca kod błędu niezerowy zdefiniowany w pliku WINERROR.H
. Jeśli przywoływane dane nie są prawidłowym identyfikatorem GUID, ERROR_INVALID_DATA
zostanie zwrócony.
Uwagi
Ta metoda używa CRegKey::QueryStringValue
i konwertuje ciąg na identyfikator GUID przy użyciu polecenia CLSIDFromString
.
Ważne
Ta metoda umożliwia obiektowi wywołującym określenie dowolnej lokalizacji rejestru, potencjalnie odczytywanie danych, które nie mogą być zaufane.
CRegKey::QueryMultiStringValue
Wywołaj tę metodę, aby pobrać dane wielociągowe dla określonej nazwy wartości.
LONG QueryMultiStringValue(
LPCTSTR pszValueName,
LPTSTR pszValue,
ULONG* pnChars) throw();
Parametry
pszValueName
Wskaźnik do NULL
-terminated ciąg zawierający nazwę wartości do zapytania.
pszValue
Wskaźnik do buforu, który odbiera dane wielociągowe. Ciąg wielociągowy to tablica NULL
ciągów zakończonych przez dwa znaki null.
pnChars
Rozmiar , w , TCHARs
buforu wskazywany przez pszValue
. Gdy metoda zwraca wartość , pnChars
zawiera rozmiar w TCHARs
pliku pobranego wielociągowego, w tym znak o wartości null zakończenia.
Wartość zwracana
Jeśli metoda powiedzie się, ERROR_SUCCESS
zostanie zwrócona. Jeśli nie można odczytać wartości metody, zwraca kod błędu niezerowy zdefiniowany w pliku WINERROR.H
. Jeśli przywoływane dane nie są typu REG_MULTI_SZ
, ERROR_INVALID_DATA
jest zwracany.
Uwagi
Ta metoda używa metody RegQueryValueEx
i potwierdza, że zwracany jest prawidłowy typ danych. Zobacz RegQueryValueEx
, aby uzyskać więcej szczegółów.
Ważne
Ta metoda umożliwia obiektowi wywołującym określenie dowolnej lokalizacji rejestru, potencjalnie odczytywanie danych, które nie mogą być zaufane. RegQueryValueEx
Ponadto funkcja używana przez tę metodę nie obsługuje jawnie ciągów, które są zakończone wartością null. Oba warunki powinny być sprawdzane przez kod wywołujący.
CRegKey::QueryQWORDValue
Wywołaj tę metodę, QWORD
aby pobrać dane dla określonej nazwy wartości.
LONG QueryQWORDValue(
LPCTSTR pszValueName,
ULONGLONG& qwValue) throw();
Parametry
pszValueName
Wskaźnik do NULL
-terminated ciąg zawierający nazwę wartości do zapytania.
qwValue
Wskaźnik do buforu, który odbiera QWORD
element .
Wartość zwracana
Jeśli metoda powiedzie się, ERROR_SUCCESS
zostanie zwrócona. Jeśli nie można odczytać wartości metody, zwraca kod błędu niezerowy zdefiniowany w pliku WINERROR.H
. Jeśli przywoływane dane nie są typu REG_QWORD
, ERROR_INVALID_DATA
jest zwracany.
Uwagi
Ta metoda używa metody RegQueryValueEx
i potwierdza, że zwracany jest prawidłowy typ danych. Zobacz RegQueryValueEx
, aby uzyskać więcej szczegółów.
Ważne
Ta metoda umożliwia obiektowi wywołującym określenie dowolnej lokalizacji rejestru, potencjalnie odczytywanie danych, które nie mogą być zaufane. RegQueryValueEx
Ponadto funkcja używana przez tę metodę nie obsługuje jawnie ciągów, które są zakończone wartością null. Oba warunki powinny być sprawdzane przez kod wywołujący.
CRegKey::QueryStringValue
Wywołaj tę metodę, aby pobrać dane ciągu dla określonej nazwy wartości.
LONG QueryStringValue(
LPCTSTR pszValueName,
LPTSTR pszValue,
ULONG* pnChars) throw();
Parametry
pszValueName
Wskaźnik do NULL
-terminated ciąg zawierający nazwę wartości do zapytania.
pszValue
Wskaźnik do buforu, który odbiera dane ciągu.
pnChars
Rozmiar w TCHARs buforu wskazywany przez pszValue
. Gdy metoda zwraca wartość , pnChars
zawiera rozmiar w TCHARs
pliku pobranego ciągu, w tym znak null zakończenia.
Wartość zwracana
Jeśli metoda powiedzie się, ERROR_SUCCESS
zostanie zwrócona. Jeśli nie można odczytać wartości metody, zwraca kod błędu niezerowy zdefiniowany w pliku WINERROR.H
. Jeśli przywoływane dane nie są typu REG_SZ
, ERROR_INVALID_DATA
jest zwracany. Jeśli metoda zwraca ERROR_MORE_DATA
wartość , pnChars
równa się zero, a nie wymagany rozmiar buforu w bajtach.
Uwagi
Ta metoda używa metody RegQueryValueEx
i potwierdza, że zwracany jest prawidłowy typ danych. Zobacz RegQueryValueEx
, aby uzyskać więcej szczegółów.
Ważne
Ta metoda umożliwia obiektowi wywołującym określenie dowolnej lokalizacji rejestru, potencjalnie odczytywanie danych, które nie mogą być zaufane. RegQueryValueEx
Ponadto funkcja używana przez tę metodę nie obsługuje jawnie ciągów, które są zakończone wartością null. Oba warunki powinny być sprawdzane przez kod wywołujący.
CRegKey::QueryValue
Wywołaj tę metodę, aby pobrać dane dla określonego pola wartości .m_hKey
Wcześniejsze wersje tej metody nie są już obsługiwane i są oznaczone jako 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);
Parametry
pszValueName
Wskaźnik do NULL
-terminated ciąg zawierający nazwę wartości do zapytania. Jeśli pszValueName
ciąg jest NULL
lub jest pusty, ""
metoda pobiera typ i dane dla nienazwanych lub domyślnych wartości klucza, jeśli istnieje.
pdwType
Wskaźnik do zmiennej, która odbiera kod wskazujący typ danych przechowywanych w określonej wartości. Parametr pdwType
może być NULL
, jeśli kod typu nie jest wymagany.
pData
Wskaźnik do buforu, który odbiera dane wartości. Ten parametr może być NULL
taki, jeśli dane nie są wymagane.
pnBytes
Wskaźnik do zmiennej, która określa rozmiar w bajtach buforu wskazywanego pData
przez parametr . Gdy metoda zwraca, ta zmienna zawiera rozmiar danych skopiowanych do pData
metody .
dwValue
Dane liczbowe pola wartości.
lpszValueName
Określa pole wartości do odpytowania.
szValue
Dane ciągu pola wartości.
pdwCount
Rozmiar danych ciągu. Jego wartość jest początkowo ustawiana na rozmiar buforu szValue
.
Wartość zwracana
Jeśli operacja powiedzie się, zwraca wartość ERROR_SUCCESS
; w przeciwnym razie kod błędu niezerowy zdefiniowany w pliku WINERROR.H
.
Uwagi
Dwie oryginalne wersje programu QueryValue
nie są już obsługiwane i są oznaczone jako ATL_DEPRECATED
. Kompilator wyświetli ostrzeżenie, jeśli te formularze są używane.
Pozostała metoda wywołuje metodę RegQueryValueEx
.
Ważne
Ta metoda umożliwia obiektowi wywołującym określenie dowolnej lokalizacji rejestru, potencjalnie odczytywanie danych, które nie mogą być zaufane. RegQueryValueEx
Ponadto funkcja używana przez tę metodę nie obsługuje jawnie ciągów, które są zakończone wartością null. Oba warunki powinny być sprawdzane przez kod wywołujący.
CRegKey::RecurseDeleteKey
Wywołaj tę metodę, aby usunąć określony klucz z rejestru i jawnie usunąć wszystkie podklucze.
LONG RecurseDeleteKey(LPCTSTR lpszKey) throw();
Parametry
lpszKey
Określa nazwę klucza do usunięcia. Ta nazwa musi być podkluczem .m_hKey
Wartość zwracana
Jeśli operacja powiedzie się, zwraca ERROR_SUCCESS
wartość ; w przeciwnym razie wartość błędu niezerowa zdefiniowana w pliku WINERROR.H
.
Uwagi
Jeśli klucz ma podklucze, należy wywołać tę metodę, aby usunąć klucz.
CRegKey::SetBinaryValue
Wywołaj tę metodę, aby ustawić wartość binarną klucza rejestru.
LONG SetBinaryValue(
LPCTSTR pszValueName,
const void* pValue,
ULONG nBytes) throw();
Parametry
pszValueName
Wskaźnik do ciągu zawierającego nazwę wartości do ustawienia. Jeśli wartość o tej nazwie nie jest jeszcze obecna, metoda dodaje ją do klucza.
pValue
Wskaźnik do buforu zawierającego dane, które mają być przechowywane z określoną nazwą wartości.
nBytes
Określa rozmiar w bajtach informacji wskazywanych przez pValue
parametr .
Wartość zwracana
Jeśli metoda powiedzie się, zwracana wartość to ERROR_SUCCESS
. Jeśli metoda zakończy się niepowodzeniem, zwracana wartość jest kodem błędu nonzero zdefiniowanym w pliku WINERROR.H
.
Uwagi
Ta metoda używa RegSetValueEx
metody do zapisania wartości w rejestrze.
CRegKey::SetDWORDValue
Wywołaj tę metodę, aby ustawić DWORD
wartość klucza rejestru.
LONG SetDWORDValue(LPCTSTR pszValueName, DWORD dwValue) throw();
Parametry
pszValueName
Wskaźnik do ciągu zawierającego nazwę wartości do ustawienia. Jeśli wartość o tej nazwie nie jest jeszcze obecna, metoda dodaje ją do klucza.
dwValue
Dane DWORD
, które mają być przechowywane z określoną nazwą wartości.
Wartość zwracana
Jeśli metoda powiedzie się, zwracana wartość to ERROR_SUCCESS
. Jeśli metoda zakończy się niepowodzeniem, zwracana wartość jest kodem błędu nonzero zdefiniowanym w pliku WINERROR.H
.
Uwagi
Ta metoda używa RegSetValueEx
metody do zapisania wartości w rejestrze.
CRegKey::SetGUIDValue
Wywołaj tę metodę, aby ustawić wartość identyfikatora GUID klucza rejestru.
LONG SetGUIDValue(LPCTSTR pszValueName, REFGUID guidValue) throw();
Parametry
pszValueName
Wskaźnik do ciągu zawierającego nazwę wartości do ustawienia. Jeśli wartość o tej nazwie nie jest jeszcze obecna, metoda dodaje ją do klucza.
guidValue
Odwołanie do identyfikatora GUID, który ma być przechowywany z określoną nazwą wartości.
Wartość zwracana
Jeśli metoda powiedzie się, zwracana wartość to ERROR_SUCCESS
. Jeśli metoda zakończy się niepowodzeniem, zwracana wartość jest kodem błędu nonzero zdefiniowanym w pliku WINERROR.H
.
Uwagi
Ta metoda używa identyfikatora CRegKey::SetStringValue
GUID i konwertuje go na ciąg przy użyciu polecenia StringFromGUID2
.
CRegKey::SetKeyValue
Wywołaj tę metodę, aby przechowywać dane w określonym polu wartości określonego klucza.
LONG SetKeyValue(
LPCTSTR lpszKeyName,
LPCTSTR lpszValue,
LPCTSTR lpszValueName = NULL) throw();
Parametry
lpszKeyName
Określa nazwę klucza, który ma zostać utworzony lub otwarty. Ta nazwa musi być podkluczem .m_hKey
lpszValue
Określa dane, które mają być przechowywane. Ten parametr musi być innyNULL
niż.
lpszValueName
Określa pole wartości, które ma zostać ustawione. Jeśli pole wartości o tej nazwie jeszcze nie istnieje w kluczu, zostanie dodane.
Wartość zwracana
Jeśli operacja powiedzie się, zwraca wartość ERROR_SUCCESS
; w przeciwnym razie kod błędu niezerowy zdefiniowany w pliku WINERROR.H
.
Uwagi
Wywołaj tę metodę, aby utworzyć lub otworzyć lpszKeyName
klucz i zapisać lpszValue
dane w lpszValueName
polu wartości.
CRegKey::SetKeySecurity
Wywołaj tę metodę, aby ustawić zabezpieczenia klucza rejestru.
LONG SetKeySecurity(SECURITY_INFORMATION si, PSECURITY_DESCRIPTOR psd) throw();
Parametry
si
Określa składniki deskryptora zabezpieczeń do ustawienia. Wartość może być kombinacją następujących wartości:
Wartość | Znaczenie |
---|---|
DACL_SECURITY_INFORMATION |
Ustawia uznaniową listę kontroli dostępu klucza (DACL). Klucz musi mieć WRITE_DAC dostęp lub proces wywołujący musi być właścicielem obiektu. |
GROUP_SECURITY_INFORMATION |
Ustawia podstawowy identyfikator zabezpieczeń grupy klucza (SID). Klucz musi mieć WRITE_OWNER dostęp lub proces wywołujący musi być właścicielem obiektu. |
OWNER_SECURITY_INFORMATION |
Ustawia identyfikator SID właściciela klucza. Klucz musi mieć WRITE_OWNER dostęp lub proces wywołujący musi być właścicielem obiektu lub mieć SE_TAKE_OWNERSHIP_NAME włączone uprawnienia. |
SACL_SECURITY_INFORMATION |
Ustawia listę kontroli dostępu systemu klucza (SACL). Klucz musi mieć ACCESS_SYSTEM_SECURITY dostęp. Właściwym sposobem uzyskania tego dostępu jest włączenie SE_SECURITY_NAME uprawnień w bieżącym tokenie dostępu wywołującego, otwarcie dojścia ACCESS_SYSTEM_SECURITY dostępu, a następnie wyłączenie uprawnień. |
psd
Wskaźnik do SECURITY_DESCRIPTOR
struktury, która określa atrybuty zabezpieczeń do ustawienia dla określonego klucza.
Wartość zwracana
Jeśli metoda powiedzie się, zwracana wartość to ERROR_SUCCESS
. Jeśli metoda zakończy się niepowodzeniem, zwracana wartość jest kodem błędu nonzero zdefiniowanym w pliku WINERROR.H
.
Uwagi
Ustawia atrybuty zabezpieczeń klucza. Zobacz RegSetKeySecurity
, aby uzyskać więcej szczegółów.
CRegKey::SetMultiStringValue
Wywołaj tę metodę, aby ustawić wartość wielociągową klucza rejestru.
LONG SetMultiStringValue(LPCTSTR pszValueName, LPCTSTR pszValue) throw();
Parametry
pszValueName
Wskaźnik do ciągu zawierającego nazwę wartości do ustawienia. Jeśli wartość o tej nazwie nie jest jeszcze obecna, metoda dodaje ją do klucza.
pszValue
Wskaźnik do danych wielociągowych, które mają być przechowywane z określoną nazwą wartości. Ciąg wielociągowy to tablica NULL
ciągów zakończonych przez dwa znaki null.
Wartość zwracana
Jeśli metoda powiedzie się, zwracana wartość to ERROR_SUCCESS
. Jeśli metoda zakończy się niepowodzeniem, zwracana wartość jest kodem błędu nonzero zdefiniowanym w pliku WINERROR.H
.
Uwagi
Ta metoda używa RegSetValueEx
metody do zapisania wartości w rejestrze.
CRegKey::SetQWORDValue
Wywołaj tę metodę, aby ustawić QWORD
wartość klucza rejestru.
LONG SetQWORDValue(LPCTSTR pszValueName, ULONGLONG qwValue) throw();
Parametry
pszValueName
Wskaźnik do ciągu zawierającego nazwę wartości do ustawienia. Jeśli wartość o tej nazwie nie jest jeszcze obecna, metoda dodaje ją do klucza.
qwValue
Dane QWORD
, które mają być przechowywane z określoną nazwą wartości.
Wartość zwracana
Jeśli metoda powiedzie się, zwracana wartość to ERROR_SUCCESS
. Jeśli metoda zakończy się niepowodzeniem, zwracana wartość jest kodem błędu nonzero zdefiniowanym w pliku WINERROR.H
.
Uwagi
Ta metoda używa RegSetValueEx
metody do zapisania wartości w rejestrze.
CRegKey::SetStringValue
Wywołaj tę metodę, aby ustawić wartość ciągu klucza rejestru.
LONG SetStringValue(
LPCTSTR pszValueName,
LPCTSTR pszValue,
DWORD dwType = REG_SZ) throw();
Parametry
pszValueName
Wskaźnik do ciągu zawierającego nazwę wartości do ustawienia. Jeśli wartość o tej nazwie nie jest jeszcze obecna, metoda dodaje ją do klucza.
pszValue
Wskaźnik do danych ciągu, które mają być przechowywane z określoną nazwą wartości.
dwType
Typ ciągu do zapisu w rejestrze: REG_SZ
(wartość domyślna) lub REG_EXPAND_SZ
(w przypadku wielociągów).
Wartość zwracana
Jeśli metoda powiedzie się, zwracana wartość to ERROR_SUCCESS
. Jeśli metoda zakończy się niepowodzeniem, zwracana wartość jest kodem błędu nonzero zdefiniowanym w pliku WINERROR.H
.
Uwagi
Ta metoda używa RegSetValueEx
metody do zapisania wartości w rejestrze.
CRegKey::SetValue
Wywołaj tę metodę, aby przechowywać dane w określonym polu wartości .m_hKey
Wcześniejsze wersje tej metody nie są już obsługiwane i są oznaczone jako 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);
Parametry
pszValueName
Wskaźnik do ciągu zawierającego nazwę wartości do ustawienia. Jeśli wartość o tej nazwie nie jest jeszcze obecna w kluczu, metoda dodaje ją do klucza. Jeśli pszValueName
ciąg jest NULL
lub pusty, ""
metoda ustawia typ i dane dla nienazwanej lub domyślnej wartości klucza.
dwType
Określa kod wskazujący typ danych wskazywanych przez pValue
parametr .
pValue
Wskaźnik do buforu zawierającego dane, które mają być przechowywane z określoną nazwą wartości.
nBytes
Określa rozmiar w bajtach informacji wskazywanych przez pValue
parametr . Jeśli dane mają typ REG_SZ
, REG_EXPAND_SZ
lub REG_MULTI_SZ
, nBytes
muszą zawierać rozmiar znaku null zakończenia.
hKeyParent
Uchwyt otwartego klucza.
lpszKeyName
Określa nazwę klucza, który ma zostać utworzony lub otwarty. Ta nazwa musi być podkluczem .hKeyParent
lpszValue
Określa dane, które mają być przechowywane. Ten parametr musi być innyNULL
niż.
lpszValueName
Określa pole wartości, które ma zostać ustawione. Jeśli pole wartości o tej nazwie jeszcze nie istnieje w kluczu, zostanie dodane.
dwValue
Określa dane, które mają być przechowywane.
bMulti
Jeśli wartość false, wskazuje, że ciąg ma typ REG_SZ
. Jeśli wartość true, wskazuje, że ciąg jest ciągiem wielociągowym typu REG_MULTI_SZ
.
nValueLen
Jeśli bMulti
wartość ma wartość true, nValueLen
to długość lpszValue
ciągu w znakach. Jeśli bMulti
ma wartość false, wartość -1 wskazuje, że metoda obliczy długość automatycznie.
Wartość zwracana
Jeśli operacja powiedzie się, zwraca wartość ERROR_SUCCESS
; w przeciwnym razie kod błędu niezerowy zdefiniowany w pliku WINERROR.H
.
Uwagi
Dwie oryginalne wersje SetValue
programu są oznaczone jako ATL_DEPRECATED
i nie powinny być już używane. Kompilator wyświetli ostrzeżenie, jeśli te formularze są używane.
Trzecia metoda wywołuje metodę RegSetValueEx
.