Udostępnij za pośrednictwem


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_hKeyklasy .
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 HKEYobiekt .
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_SUCCESSwartość ; 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_hKeyelement .

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_hKeyklasy .

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 , TCHARsbuforu 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_ITEMSwartość . 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 psdwartość .

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 FALSEwartość , 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 TRUEwartość , 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 FALSEwartość , 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_SUCCESSwartość ; 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 hKeyParentelement , ale nie zamyka żadnego wcześniej otwartego dojścia.

W przeciwieństwie do CRegKey::Createmetody , Open nie utworzy określonego klucza, jeśli nie istnieje.

CRegKey::operator HKEY

Konwertuje CRegKey obiekt na HKEYobiekt .

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 DWORDelement .

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 NULLciągów zakończonych przez dwa znaki null.

pnChars
Rozmiar , w , TCHARsbuforu wskazywany przez pszValue. Gdy metoda zwraca wartość , pnChars zawiera rozmiar w TCHARspliku 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 QWORDelement .

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 TCHARspliku 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_DATAwartość , 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 pDatametody .

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_SUCCESSwartość ; 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 NULLcią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_SZlub 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.

Zobacz też

Przykład MODELU DCOM
Omówienie klasy