Delen via


CRegKey-klasse

Opmerking

De ATL (Active Template Library) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Deze klasse biedt methoden voor het bewerken van vermeldingen in het systeemregister.

Belangrijk

Deze klasse en de bijbehorende leden kunnen niet worden gebruikt in toepassingen die worden uitgevoerd in Windows Runtime.

Syntaxis

class CRegKey

Leden

Openbare constructors

Naam Description
CRegKey::CRegKey De constructor.
CRegKey::~CRegKey De destructor.

Openbare methoden

Naam Description
CRegKey::Attach Roep deze methode aan om een HKEY aan het CRegKey object toe te voegen door de m_hKey lidgreep in te stellen op hKey.
CRegKey::Close Roep deze methode aan om de m_hKey lidhandgreep vrij te geven en in te stellen op NULL.
CRegKey::Create Roep deze methode aan om de opgegeven sleutel te maken, als deze niet bestaat als een subsleutel van hKeyParent.
CRegKey::DeleteSubKey Roep deze methode aan om de opgegeven sleutel uit het register te verwijderen.
CRegKey::DeleteValue Roep deze methode aan om een waardeveld uit m_hKeyte verwijderen.
CRegKey::Detach Roep deze methode aan om de m_hKey lidgreep los te koppelen van het CRegKey object en in te stellen m_hKey op NULL.
CRegKey::EnumKey Roep deze methode aan om de subsleutels van de geopende registersleutel op te sommen.
CRegKey::Flush Roep deze methode aan om alle kenmerken van de open registersleutel naar het register te schrijven.
CRegKey::GetKeySecurity Roep deze methode aan om een kopie van de beveiligingsdescriptor op te halen die de open registersleutel beveiligt.
CRegKey::NotifyChangeKeyValue Met deze methode wordt de aanroeper gewaarschuwd over wijzigingen in de kenmerken of inhoud van de geopende registersleutel.
CRegKey::Open Roep deze methode aan om de opgegeven sleutel te openen en in te stellen m_hKey op de ingang van deze sleutel.
CRegKey::QueryBinaryValue Roep deze methode aan om de binaire gegevens voor een opgegeven waardenaam op te halen.
CRegKey::QueryDWORDValue Roep deze methode aan om de DWORD gegevens voor een opgegeven waardenaam op te halen.
CRegKey::QueryGUIDValue Roep deze methode aan om de GUID-gegevens voor een opgegeven waardenaam op te halen.
CRegKey::QueryMultiStringValue Roep deze methode aan om de gegevens met meerdere tekenreeksen op te halen voor een opgegeven waardenaam.
CRegKey::QueryQWORDValue Roep deze methode aan om de QWORD gegevens voor een opgegeven waardenaam op te halen.
CRegKey::QueryStringValue Roep deze methode aan om de tekenreeksgegevens voor een opgegeven waardenaam op te halen.
CRegKey::QueryValue Roep deze methode aan om de gegevens op te halen voor het opgegeven waardeveld van m_hKey. Eerdere versies van deze methode worden niet meer ondersteund en zijn gemarkeerd als ATL_DEPRECATED.
CRegKey::RecurseDeleteKey Roep deze methode aan om de opgegeven sleutel uit het register te verwijderen en expliciet subsleutels te verwijderen.
CRegKey::SetBinaryValue Roep deze methode aan om de binaire waarde van de registersleutel in te stellen.
CRegKey::SetDWORDValue Roep deze methode aan om de DWORD waarde van de registersleutel in te stellen.
CRegKey::SetGUIDValue Roep deze methode aan om de GUID-waarde van de registersleutel in te stellen.
CRegKey::SetKeySecurity Roep deze methode aan om de beveiliging van de registersleutel in te stellen.
CRegKey::SetKeyValue Roep deze methode aan om gegevens op te slaan in een opgegeven waardeveld van een opgegeven sleutel.
CRegKey::SetMultiStringValue Roep deze methode aan om de multistringwaarde van de registersleutel in te stellen.
CRegKey::SetQWORDValue Roep deze methode aan om de QWORD waarde van de registersleutel in te stellen.
CRegKey::SetStringValue Roep deze methode aan om de tekenreekswaarde van de registersleutel in te stellen.
CRegKey::SetValue Roep deze methode aan om gegevens op te slaan in het opgegeven waardeveld van m_hKey. Eerdere versies van deze methode worden niet meer ondersteund en zijn gemarkeerd als ATL_DEPRECATED.

Openbare operators

Naam Description
CRegKey::operator HKEY Converteert een CRegKey object naar een HKEY.
CRegKey::operator = Toewijzingsoperator.

Publieke dataleden

Naam Description
CRegKey::m_hKey Bevat een ingang van de registersleutel die aan het CRegKey object is gekoppeld.
CRegKey::m_pTM Aanwijzer naar CAtlTransactionManager object

Opmerkingen

CRegKey biedt methoden voor het maken en verwijderen van sleutels en waarden in het systeemregister. Het register bevat een installatiespecifieke set definities voor systeemonderdelen, zoals softwareversienummers, logische naar fysieke toewijzingen van geïnstalleerde hardware en COM-objecten.

CRegKey biedt een programmeerinterface voor het systeemregister voor een bepaalde computer. Als u bijvoorbeeld een bepaalde registersleutel wilt openen, roept u CRegKey::Openaan. Een gegevenswaarde, aanroep CRegKey::QueryValue of , respectievelijk, ophalen of CRegKey::SetValuewijzigen. Als u een sleutel wilt sluiten, roept u CRegKey::Closeaan.

Wanneer u een sleutel sluit, worden de registergegevens naar de harde schijf geschreven (leeggemaakt). Dit proces kan enkele seconden duren. Als uw toepassing registergegevens expliciet naar de harde schijf moet schrijven, kunt u de RegFlushKey Win32-functie aanroepen. RegFlushKey Maakt echter gebruik van veel systeembronnen en moet alleen worden aangeroepen wanneer dit absoluut noodzakelijk is.

Belangrijk

Methoden waarmee de aanroeper een registerlocatie kan opgeven, kunnen gegevens lezen die niet kunnen worden vertrouwd. Bij methoden die gebruikmaken van RegQueryValueEx deze functie moet rekening worden gehouden met het feit dat deze functie niet expliciet tekenreeksen verwerkt die null-beëindigd zijn. Beide voorwaarden moeten worden gecontroleerd door de aanroepende code.

Requirements

Rubriek:atlbase.h

CRegKey::Attach

Roep deze methode aan om een HKEY aan het CRegKey object toe te voegen door de m_hKey lidgreep in te stellen op hKey.

void Attach(HKEY hKey) throw();

Parameterwaarden

hKey
De ingang van een registersleutel.

Opmerkingen

Attach zal bevestigen als m_hKey dat niet hetNULL is.

CRegKey::Close

Roep deze methode aan om de m_hKey lidhandgreep vrij te geven en in te stellen op NULL.

LONG Close() throw();

Retourwaarde

Als dit lukt, wordt de foutwaarde geretourneerd ERROR_SUCCESS. Anders wordt een foutwaarde geretourneerd.

CRegKey::Create

Roep deze methode aan om de opgegeven sleutel te maken, als deze niet bestaat als een subsleutel van 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();

Parameterwaarden

hKeyParent
De greep van een open sleutel.

lpszKeyName
Hiermee geeft u de naam van een sleutel die moet worden gemaakt of geopend. Deze naam moet een subsleutel van hKeyParent.

lpszClass
Hiermee geeft u de klasse van de sleutel die moet worden gemaakt of geopend. De standaardwaarde is REG_NONE.

dwOptions
Opties voor de sleutel. De standaardwaarde is REG_OPTION_NON_VOLATILE. Zie de Windows SDK voor een lijst met mogelijke waarden en beschrijvingen RegCreateKeyEx .

samDesired
De beveiligingstoegang voor de sleutel. De standaardwaarde is KEY_READ | KEY_WRITE. Zie voor een lijst met mogelijke waarden en beschrijvingen RegCreateKeyEx.

lpSecAttr
Een aanwijzer naar een SECURITY_ATTRIBUTES structuur die aangeeft of de ingang van de sleutel kan worden overgenomen door een onderliggend proces. Deze parameter is NULL standaard (wat betekent dat de handle niet kan worden overgenomen).

lpdwDisposition
[uit] Als dit nietNULL het geval is, wordt een van REG_CREATED_NEW_KEY beide opgehaald (als de sleutel niet bestond en is gemaakt) of REG_OPENED_EXISTING_KEY (als de sleutel bestond en is geopend).

Retourwaarde

Als dit lukt, wordt de sleutel geretourneerd ERROR_SUCCESS en geopend. Als de methode mislukt, is de retourwaarde een niet-nulfoutcode die is gedefinieerd in WINERROR.H.

Opmerkingen

Create stelt het m_hKey lid in op de ingang van deze sleutel.

CRegKey::CRegKey

De constructor.

CRegKey() throw();
CRegKey(CRegKey& key) throw();
explicit CRegKey(HKEY hKey) throw();
CRegKey(CAtlTransactionManager* pTM) throw();

Parameterwaarden

key
Een verwijzing naar een CRegKey object.

hKey
Een ingang naar een registersleutel.

pTM
Aanwijzer naar CAtlTransactionManager object

Opmerkingen

Hiermee maakt u een nieuw CRegKey object. Het object kan worden gemaakt van een bestaand CRegKey object of van een ingang naar een registersleutel.

CRegKey::~CRegKey

De destructor.

~CRegKey() throw();

Opmerkingen

De destructor releases m_hKey.

CRegKey::DeleteSubKey

Roep deze methode aan om de opgegeven sleutel uit het register te verwijderen.

LONG DeleteSubKey(LPCTSTR lpszSubKey) throw();

Parameterwaarden

lpszSubKey
Hiermee geeft u de naam van de sleutel die moet worden verwijderd. Deze naam moet een subsleutel van m_hKey.

Retourwaarde

Als dit lukt, wordt het resultaat geretourneerd ERROR_SUCCESS. Als de methode mislukt, is de retourwaarde een niet-nulfoutcode die is gedefinieerd in WINERROR.H.

Opmerkingen

DeleteSubKey kan alleen een sleutel met geen subsleutels verwijderen. Als de sleutel subsleutels heeft, roept RecurseDeleteKey u in plaats daarvan aan.

CRegKey::DeleteValue

Roep deze methode aan om een waardeveld uit m_hKeyte verwijderen.

LONG DeleteValue(LPCTSTR lpszValue) throw();

Parameterwaarden

lpszValue
Hiermee geeft u het waardeveld dat moet worden verwijderd.

Retourwaarde

Als dit lukt, wordt het resultaat geretourneerd ERROR_SUCCESS. Als de methode mislukt, is de retourwaarde een niet-nulfoutcode die is gedefinieerd in WINERROR.H.

CRegKey::Detach

Roep deze methode aan om de m_hKey lidgreep los te koppelen van het CRegKey object en in te stellen m_hKey op NULL.

HKEY Detach() throw();

Retourwaarde

De HKEY die aan het CRegKey object is gekoppeld.

CRegKey::EnumKey

Roep deze methode aan om de subsleutels van de geopende registersleutel op te sommen.

LONG EnumKey(
    DWORD iIndex,
    LPTSTR pszName,
    LPDWORD pnNameLength,
    FILETIME* pftLastWriteTime = NULL) throw();

Parameterwaarden

iIndex
De subsleutelindex. Deze parameter moet nul zijn voor de eerste aanroep en vervolgens verhoogd voor volgende aanroepen

pszName
Wijs een buffer aan die de naam van de subsleutel ontvangt, inclusief het null-teken dat wordt beëindigd. Alleen de naam van de subsleutel wordt gekopieerd naar de buffer, niet naar de volledige sleutelhiërarchie.

pnNameLength
Wijs een variabele aan die de grootte aangeeft van TCHARsde buffer die is opgegeven door de pszName parameter. Deze grootte moet het eind-null-teken bevatten. Wanneer de methode retourneert, bevat de variabele waarop wordt verwezen pnNameLength het aantal tekens dat in de buffer is opgeslagen. Het geretourneerde aantal bevat niet het null-teken dat wordt beëindigd.

pftLastWriteTime
Wijs een variabele aan die de tijd ontvangt waarop de opgesomde subsleutel voor het laatst is geschreven.

Retourwaarde

Als de methode slaagt, is ERROR_SUCCESSde retourwaarde . Als de methode mislukt, is de retourwaarde een niet-nulfoutcode die is gedefinieerd in WINERROR.H.

Opmerkingen

Als u de subsleutels wilt inventariseren, roept CRegKey::EnumKey u aan met een index van nul. Verhoog de indexwaarde en herhaal deze totdat de methode retourneert ERROR_NO_MORE_ITEMS. Zie de Windows SDK voor meer informatie RegEnumKeyEx .

CRegKey::Flush

Roep deze methode aan om alle kenmerken van de open registersleutel naar het register te schrijven.

LONG Flush() throw();

Retourwaarde

Als de methode slaagt, is ERROR_SUCCESSde retourwaarde . Als de methode mislukt, is de retourwaarde een niet-nulfoutcode die is gedefinieerd in WINERROR.H.

Opmerkingen

Zie de Windows SDK voor meer informatie RegEnumFlush .

CRegKey::GetKeySecurity

Roep deze methode aan om een kopie van de beveiligingsdescriptor op te halen die de open registersleutel beveiligt.

LONG GetKeySecurity(
    SECURITY_INFORMATION si,
    PSECURITY_DESCRIPTOR psd,
    LPDWORD pnBytes) throw();

Parameterwaarden

si
De SECURITY_INFORMATION waarde die de aangevraagde beveiligingsgegevens aangeeft.

psd
Een aanwijzer naar een buffer die een kopie van de aangevraagde beveiligingsdescriptor ontvangt.

pnBytes
De grootte, in bytes, van de buffer die door psd.

Retourwaarde

Als de methode slaagt, is ERROR_SUCCESSde retourwaarde . Als de methode mislukt, is de retourwaarde een niet-nulfoutcode gedefinieerd in WINERROR.H.

Opmerkingen

Zie RegGetKeySecurity voor meer informatie.

CRegKey::m_hKey

Bevat een ingang van de registersleutel die aan het CRegKey object is gekoppeld.

HKEY m_hKey;

CRegKey::m_pTM

Aanwijzer naar een CAtlTransactionManager-object.

CAtlTransactionManager* m_pTM;

Opmerkingen

CRegKey::NotifyChangeKeyValue

Met deze methode wordt de aanroeper gewaarschuwd over wijzigingen in de kenmerken of inhoud van de geopende registersleutel.

LONG NotifyChangeKeyValue(
    BOOL bWatchSubtree,
    DWORD dwNotifyFilter,
    HANDLE hEvent,
    BOOL bAsync = TRUE) throw();

Parameterwaarden

bWatchSubtree
Hiermee geeft u een vlag op die aangeeft of wijzigingen in de opgegeven sleutel en alle subsleutels moeten worden vermeld of alleen in de opgegeven sleutel. Als deze parameter is TRUE, rapporteert de methode wijzigingen in de sleutel en de bijbehorende subsleutels. Als de parameter is FALSE, rapporteert de methode alleen wijzigingen in de sleutel.

dwNotifyFilter
Hiermee geeft u een set vlaggen op waarmee wordt bepaald welke wijzigingen moeten worden gerapporteerd. Deze parameter kan een combinatie van de volgende waarden zijn:

Waarde Meaning
REG_NOTIFY_CHANGE_NAME Informeer de beller als er een subsleutel wordt toegevoegd of verwijderd.
REG_NOTIFY_CHANGE_ATTRIBUTES Informeer de aanroeper over wijzigingen in de kenmerken van de sleutel, zoals de beveiligingsdescriptorgegevens.
REG_NOTIFY_CHANGE_LAST_SET De aanroeper op de hoogte stellen van wijzigingen in een waarde van de sleutel. Dit kan bestaan uit het toevoegen of verwijderen van een waarde of het wijzigen van een bestaande waarde.
REG_NOTIFY_CHANGE_SECURITY Informeer de aanroeper over wijzigingen in de beveiligingsdescriptor van de sleutel.

hEvent
Verwerken naar een gebeurtenis. Als de bAsync parameter is TRUE, retourneert de methode onmiddellijk en worden wijzigingen gerapporteerd door deze gebeurtenis aan te geven. Als bAsync dat het is FALSE, hEvent wordt genegeerd.

bAsync
Hiermee geeft u een vlag op die aangeeft hoe de methode wijzigingen rapporteert. Als deze parameter is TRUE, retourneert de methode onmiddellijk en rapporteert de wijzigingen door de opgegeven gebeurtenis aan te geven. Wanneer deze parameter is FALSE, wordt de methode pas geretourneerd als er een wijziging is opgetreden. Als hEvent er geen geldige gebeurtenis wordt opgegeven, kan de bAsync parameter dat niet zijn TRUE.

Retourwaarde

Als de methode slaagt, is ERROR_SUCCESSde retourwaarde . Als de methode mislukt, is de retourwaarde een niet-nulfoutcode die is gedefinieerd in WINERROR.H.

Opmerkingen

Opmerking

Met deze methode wordt de aanroeper niet op de hoogte gesteld als de opgegeven sleutel wordt verwijderd.

Zie RegNotifyChangeKeyValuevoor meer informatie en een voorbeeldprogramma.

CRegKey::Open

Roep deze methode aan om de opgegeven sleutel te openen en in te stellen m_hKey op de ingang van deze sleutel.

LONG Open(
    HKEY hKeyParent,
    LPCTSTR lpszKeyName,
    REGSAM samDesired = KEY_READ | KEY_WRITE) throw();

Parameterwaarden

hKeyParent
De greep van een open sleutel.

lpszKeyName
Hiermee geeft u de naam van een sleutel die moet worden gemaakt of geopend. Deze naam moet een subsleutel van hKeyParent.

samDesired
De beveiligingstoegang voor de sleutel. De standaardwaarde is KEY_ALL_ACCESS. Zie de Windows SDK voor een lijst met mogelijke waarden en beschrijvingen RegCreateKeyEx .

Retourwaarde

Als dit lukt, wordt geretourneerd ERROR_SUCCESS; anders wordt een niet-nul-foutwaarde gedefinieerd in WINERROR.H.

Opmerkingen

Als de lpszKeyName parameter een lege tekenreeks is NULL of verwijst, Open opent u een nieuwe ingang van de sleutel die is geïdentificeerd door hKeyParent, maar sluit geen eerder geopende ingang.

In tegenstelling tot CRegKey::Create, Open wordt de opgegeven sleutel niet gemaakt als deze niet bestaat.

CRegKey::operator HKEY

Converteert een CRegKey object naar een HKEY.

operator HKEY() const throw();

CRegKey::operator =

Toewijzingsoperator.

CRegKey& operator= (CRegKey& key) throw();

Parameterwaarden

key
De sleutel die moet worden gekopieerd.

Retourwaarde

Retourneert een verwijzing naar de nieuwe sleutel.

Opmerkingen

Deze operator loskoppelt key van het huidige object en wijst dit toe aan het CRegKey object.

CRegKey::QueryBinaryValue

Roep deze methode aan om de binaire gegevens voor een opgegeven waardenaam op te halen.

LONG QueryBinaryValue(
    LPCTSTR pszValueName,
    void* pValue,
    ULONG* pnBytes) throw();

Parameterwaarden

pszValueName
Aanwijzer naar een NULL-beëindigde tekenreeks met de naam van de waarde die moet worden opgevraagd.

pValue
Wijs een buffer aan die de gegevens van de waarde ontvangt.

pnBytes
Wijs een variabele aan die de grootte, in bytes, van de buffer aanwijst waarnaar de pValue parameter verwijst. Wanneer de methode wordt geretourneerd, bevat deze variabele de grootte van de gegevens die naar de buffer zijn gekopieerd.

Retourwaarde

Als de methode slaagt, ERROR_SUCCESS wordt deze geretourneerd. Als de methode een waarde niet kan lezen, retourneert deze een niet-nulfoutcode die is gedefinieerd in WINERROR.H. Als de gegevens waarnaar wordt verwezen niet van het type REG_BINARYzijn, ERROR_INVALID_DATA worden geretourneerd.

Opmerkingen

Deze methode maakt gebruik van RegQueryValueEx en bevestigt dat het juiste type gegevens wordt geretourneerd. Zie RegQueryValueEx voor meer informatie.

Belangrijk

Met deze methode kan de aanroeper een registerlocatie opgeven, mogelijk gegevens lezen die niet kunnen worden vertrouwd. De functie die door deze methode wordt gebruikt, RegQueryValueEx verwerkt ook niet expliciet tekenreeksen die null-beëindigd zijn. Beide voorwaarden moeten worden gecontroleerd door de aanroepende code.

CRegKey::QueryDWORDValue

Roep deze methode aan om de DWORD gegevens voor een opgegeven waardenaam op te halen.

LONG QueryDWORDValue(
    LPCTSTR pszValueName,
    DWORD& dwValue) throw();

Parameterwaarden

pszValueName
Aanwijzer naar een NULL-beëindigde tekenreeks met de naam van de waarde die moet worden opgevraagd.

dwValue
Wijs een buffer aan die de DWORD.

Retourwaarde

Als de methode slaagt, ERROR_SUCCESS wordt deze geretourneerd. Als de methode een waarde niet kan lezen, retourneert deze een niet-nulfoutcode die is gedefinieerd in WINERROR.H. Als de gegevens waarnaar wordt verwezen niet van het type REG_DWORDzijn, ERROR_INVALID_DATA worden geretourneerd.

Opmerkingen

Deze methode maakt gebruik van RegQueryValueEx en bevestigt dat het juiste type gegevens wordt geretourneerd. Zie RegQueryValueEx voor meer informatie.

Belangrijk

Met deze methode kan de aanroeper een registerlocatie opgeven, mogelijk gegevens lezen die niet kunnen worden vertrouwd. De functie die door deze methode wordt gebruikt, RegQueryValueEx verwerkt ook niet expliciet tekenreeksen die null-beëindigd zijn. Beide voorwaarden moeten worden gecontroleerd door de aanroepende code.

CRegKey::QueryGUIDValue

Roep deze methode aan om de GUID-gegevens voor een opgegeven waardenaam op te halen.

LONG QueryGUIDValue(
    LPCTSTR pszValueName,
    GUID& guidValue) throw();

Parameterwaarden

pszValueName
Aanwijzer naar een NULL-beëindigde tekenreeks met de naam van de waarde die moet worden opgevraagd.

guidValue
Wijs een variabele aan die de GUID ontvangt.

Retourwaarde

Als de methode slaagt, ERROR_SUCCESS wordt deze geretourneerd. Als de methode een waarde niet kan lezen, retourneert deze een niet-nulfoutcode die is gedefinieerd in WINERROR.H. Als de gegevens waarnaar wordt verwezen geen geldige GUID zijn, ERROR_INVALID_DATA worden geretourneerd.

Opmerkingen

Deze methode maakt gebruik van CRegKey::QueryStringValue en converteert de tekenreeks naar een GUID met behulp van CLSIDFromString.

Belangrijk

Met deze methode kan de aanroeper een registerlocatie opgeven, mogelijk gegevens lezen die niet kunnen worden vertrouwd.

CRegKey::QueryMultiStringValue

Roep deze methode aan om de gegevens met meerdere tekenreeksen op te halen voor een opgegeven waardenaam.

LONG QueryMultiStringValue(
    LPCTSTR pszValueName,
    LPTSTR pszValue,
    ULONG* pnChars) throw();

Parameterwaarden

pszValueName
Aanwijzer naar een NULL-beëindigde tekenreeks met de naam van de waarde die moet worden opgevraagd.

pszValue
Wijs een buffer aan die de multistring-gegevens ontvangt. Een multistring is een matrix van NULL-beëindigde tekenreeksen, beëindigd door twee null-tekens.

pnChars
De grootte, in TCHARs, van de buffer die door pszValue. Wanneer de methode retourneert, pnChars bevat de grootte, in TCHARs, van de opgehaalde multistring, inclusief een afsluit null-teken.

Retourwaarde

Als de methode slaagt, ERROR_SUCCESS wordt deze geretourneerd. Als de methode een waarde niet kan lezen, retourneert deze een niet-nulfoutcode die is gedefinieerd in WINERROR.H. Als de gegevens waarnaar wordt verwezen niet van het type REG_MULTI_SZzijn, ERROR_INVALID_DATA worden geretourneerd.

Opmerkingen

Deze methode maakt gebruik van RegQueryValueEx en bevestigt dat het juiste type gegevens wordt geretourneerd. Zie RegQueryValueEx voor meer informatie.

Belangrijk

Met deze methode kan de aanroeper een registerlocatie opgeven, mogelijk gegevens lezen die niet kunnen worden vertrouwd. De functie die door deze methode wordt gebruikt, RegQueryValueEx verwerkt ook niet expliciet tekenreeksen die null-beëindigd zijn. Beide voorwaarden moeten worden gecontroleerd door de aanroepende code.

CRegKey::QueryQWORDValue

Roep deze methode aan om de QWORD gegevens voor een opgegeven waardenaam op te halen.

LONG QueryQWORDValue(
    LPCTSTR pszValueName,
    ULONGLONG& qwValue) throw();

Parameterwaarden

pszValueName
Aanwijzer naar een NULL-beëindigde tekenreeks met de naam van de waarde die moet worden opgevraagd.

qwValue
Wijs een buffer aan die de QWORD.

Retourwaarde

Als de methode slaagt, ERROR_SUCCESS wordt deze geretourneerd. Als de methode een waarde niet kan lezen, retourneert deze een niet-nulfoutcode die is gedefinieerd in WINERROR.H. Als de gegevens waarnaar wordt verwezen niet van het type REG_QWORDzijn, ERROR_INVALID_DATA worden geretourneerd.

Opmerkingen

Deze methode maakt gebruik van RegQueryValueEx en bevestigt dat het juiste type gegevens wordt geretourneerd. Zie RegQueryValueEx voor meer informatie.

Belangrijk

Met deze methode kan de aanroeper een registerlocatie opgeven, mogelijk gegevens lezen die niet kunnen worden vertrouwd. De functie die door deze methode wordt gebruikt, RegQueryValueEx verwerkt ook niet expliciet tekenreeksen die null-beëindigd zijn. Beide voorwaarden moeten worden gecontroleerd door de aanroepende code.

CRegKey::QueryStringValue

Roep deze methode aan om de tekenreeksgegevens voor een opgegeven waardenaam op te halen.

LONG QueryStringValue(
    LPCTSTR pszValueName,
    LPTSTR pszValue,
    ULONG* pnChars) throw();

Parameterwaarden

pszValueName
Aanwijzer naar een NULL-beëindigde tekenreeks met de naam van de waarde die moet worden opgevraagd.

pszValue
Wijs een buffer aan die de tekenreeksgegevens ontvangt.

pnChars
De grootte, in TCHAR's, van de buffer die door pszValue. Wanneer de methode retourneert, pnChars bevat deze de grootte, in TCHARs, van de tekenreeks die is opgehaald, inclusief een afsluit null-teken.

Retourwaarde

Als de methode slaagt, ERROR_SUCCESS wordt deze geretourneerd. Als de methode een waarde niet kan lezen, retourneert deze een niet-nulfoutcode die is gedefinieerd in WINERROR.H. Als de gegevens waarnaar wordt verwezen niet van het type REG_SZzijn, ERROR_INVALID_DATA worden geretourneerd. Als de methode retourneert ERROR_MORE_DATA, pnChars is deze gelijk aan nul, niet de vereiste buffergrootte in bytes.

Opmerkingen

Deze methode maakt gebruik van RegQueryValueEx en bevestigt dat het juiste type gegevens wordt geretourneerd. Zie RegQueryValueEx voor meer informatie.

Belangrijk

Met deze methode kan de aanroeper een registerlocatie opgeven, mogelijk gegevens lezen die niet kunnen worden vertrouwd. De functie die door deze methode wordt gebruikt, RegQueryValueEx verwerkt ook niet expliciet tekenreeksen die null-beëindigd zijn. Beide voorwaarden moeten worden gecontroleerd door de aanroepende code.

CRegKey::QueryValue

Roep deze methode aan om de gegevens op te halen voor het opgegeven waardeveld van m_hKey. Eerdere versies van deze methode worden niet meer ondersteund en zijn gemarkeerd als 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);

Parameterwaarden

pszValueName
Aanwijzer naar een NULL-beëindigde tekenreeks met de naam van de waarde die moet worden opgevraagd. Als pszValueName dit een of een lege tekenreeks is NULL , ""haalt de methode het type en de gegevens op voor de niet-benoemde of standaardwaarde van de sleutel, indien van toepassing.

pdwType
Wijs een variabele aan die een code ontvangt die het type gegevens aangeeft dat is opgeslagen in de opgegeven waarde. De pdwType parameter kan zijn NULL als de typecode niet vereist is.

pData
Wijs een buffer aan die de gegevens van de waarde ontvangt. Deze parameter kan zijn NULL als de gegevens niet vereist zijn.

pnBytes
Wijs een variabele aan die de grootte, in bytes, van de buffer aanwijst waarnaar de pData parameter verwijst. Wanneer de methode wordt geretourneerd, bevat deze variabele de grootte van de gekopieerde pDatagegevens.

dwValue
De numerieke gegevens van het waardeveld.

lpszValueName
Hiermee geeft u het waardeveld dat moet worden opgevraagd.

szValue
De tekenreeksgegevens van het waardeveld.

pdwCount
De grootte van de tekenreeksgegevens. De waarde wordt in eerste instantie ingesteld op de grootte van de szValue buffer.

Retourwaarde

Als dit lukt, retourneert ERROR_SUCCESS; anders wordt er een niet-nulfoutcode gedefinieerd in WINERROR.H.

Opmerkingen

De twee oorspronkelijke versies van QueryValue worden niet meer ondersteund en zijn gemarkeerd als ATL_DEPRECATED. De compiler geeft een waarschuwing als deze formulieren worden gebruikt.

De resterende methode roept aan RegQueryValueEx.

Belangrijk

Met deze methode kan de aanroeper een registerlocatie opgeven, mogelijk gegevens lezen die niet kunnen worden vertrouwd. De functie die door deze methode wordt gebruikt, RegQueryValueEx verwerkt ook niet expliciet tekenreeksen die null-beëindigd zijn. Beide voorwaarden moeten worden gecontroleerd door de aanroepende code.

CRegKey::RecurseDeleteKey

Roep deze methode aan om de opgegeven sleutel uit het register te verwijderen en expliciet subsleutels te verwijderen.

LONG RecurseDeleteKey(LPCTSTR lpszKey) throw();

Parameterwaarden

lpszKey
Hiermee geeft u de naam van de sleutel die moet worden verwijderd. Deze naam moet een subsleutel van m_hKey.

Retourwaarde

Als dit lukt, wordt geretourneerd ERROR_SUCCESS; anders wordt een niet-nul-foutwaarde gedefinieerd in WINERROR.H.

Opmerkingen

Als de sleutel subsleutels heeft, moet u deze methode aanroepen om de sleutel te verwijderen.

CRegKey::SetBinaryValue

Roep deze methode aan om de binaire waarde van de registersleutel in te stellen.

LONG SetBinaryValue(
    LPCTSTR pszValueName,
    const void* pValue,
    ULONG nBytes) throw();

Parameterwaarden

pszValueName
Wijs een tekenreeks aan met de naam van de waarde die moet worden ingesteld. Als een waarde met deze naam nog niet aanwezig is, voegt de methode deze toe aan de sleutel.

pValue
Wijs een buffer aan die de gegevens bevat die moeten worden opgeslagen met de opgegeven waardenaam.

nBytes
Hiermee geeft u de grootte, in bytes, van de informatie die wordt verwezen door de pValue parameter.

Retourwaarde

Als de methode slaagt, is ERROR_SUCCESSde retourwaarde . Als de methode mislukt, is de retourwaarde een niet-nulfoutcode die is gedefinieerd in WINERROR.H.

Opmerkingen

Deze methode gebruikt RegSetValueEx om de waarde naar het register te schrijven.

CRegKey::SetDWORDValue

Roep deze methode aan om de DWORD waarde van de registersleutel in te stellen.

LONG SetDWORDValue(LPCTSTR pszValueName, DWORD dwValue) throw();

Parameterwaarden

pszValueName
Wijs een tekenreeks aan met de naam van de waarde die moet worden ingesteld. Als een waarde met deze naam nog niet aanwezig is, voegt de methode deze toe aan de sleutel.

dwValue
De DWORD gegevens die moeten worden opgeslagen met de opgegeven waardenaam.

Retourwaarde

Als de methode slaagt, is ERROR_SUCCESSde retourwaarde . Als de methode mislukt, is de retourwaarde een niet-nulfoutcode die is gedefinieerd in WINERROR.H.

Opmerkingen

Deze methode gebruikt RegSetValueEx om de waarde naar het register te schrijven.

CRegKey::SetGUIDValue

Roep deze methode aan om de GUID-waarde van de registersleutel in te stellen.

LONG SetGUIDValue(LPCTSTR pszValueName, REFGUID guidValue) throw();

Parameterwaarden

pszValueName
Wijs een tekenreeks aan met de naam van de waarde die moet worden ingesteld. Als een waarde met deze naam nog niet aanwezig is, voegt de methode deze toe aan de sleutel.

guidValue
Verwijzing naar de GUID die moet worden opgeslagen met de opgegeven waardenaam.

Retourwaarde

Als de methode slaagt, is ERROR_SUCCESSde retourwaarde . Als de methode mislukt, is de retourwaarde een niet-nulfoutcode die is gedefinieerd in WINERROR.H.

Opmerkingen

Deze methode maakt gebruik van CRegKey::SetStringValue en converteert de GUID naar een tekenreeks met behulp van StringFromGUID2.

CRegKey::SetKeyValue

Roep deze methode aan om gegevens op te slaan in een opgegeven waardeveld van een opgegeven sleutel.

LONG SetKeyValue(
    LPCTSTR lpszKeyName,
    LPCTSTR lpszValue,
    LPCTSTR lpszValueName = NULL) throw();

Parameterwaarden

lpszKeyName
Hiermee geeft u de naam van de sleutel die moet worden gemaakt of geopend. Deze naam moet een subsleutel van m_hKey.

lpszValue
Hiermee geeft u de gegevens op die moeten worden opgeslagen. Deze parameter moet niet zijnNULL.

lpszValueName
Hiermee geeft u het waardeveld dat moet worden ingesteld. Als er nog geen waardeveld met deze naam in de sleutel bestaat, wordt het toegevoegd.

Retourwaarde

Als dit lukt, retourneert ERROR_SUCCESS; anders wordt er een niet-nulfoutcode gedefinieerd in WINERROR.H.

Opmerkingen

Roep deze methode aan om de lpszKeyName sleutel te maken of te openen en de lpszValue gegevens op te slaan in het lpszValueName waardeveld.

CRegKey::SetKeySecurity

Roep deze methode aan om de beveiliging van de registersleutel in te stellen.

LONG SetKeySecurity(SECURITY_INFORMATION si, PSECURITY_DESCRIPTOR psd) throw();

Parameterwaarden

si
Hiermee geeft u de onderdelen van de beveiligingsdescriptor die moet worden ingesteld. De waarde kan een combinatie van de volgende waarden zijn:

Waarde Meaning
DACL_SECURITY_INFORMATION Hiermee stelt u de discretionaire toegangsbeheerlijst (DACL) van de sleutel in. De sleutel moet toegang hebben WRITE_DAC of het aanroepende proces moet de eigenaar van het object zijn.
GROUP_SECURITY_INFORMATION Hiermee stelt u de primaire groepsbeveiligings-id (SID) van de sleutel in. De sleutel moet toegang hebben WRITE_OWNER of het aanroepende proces moet de eigenaar van het object zijn.
OWNER_SECURITY_INFORMATION Hiermee stelt u de eigenaar-SID van de sleutel in. De sleutel moet toegang hebben WRITE_OWNER of het aanroepende proces moet de eigenaar van het object zijn of de SE_TAKE_OWNERSHIP_NAME bevoegdheid hebben ingeschakeld.
SACL_SECURITY_INFORMATION Hiermee stelt u de systeemtoegangsbeheerlijst (SACL) van de sleutel in. De sleutel moet toegang hebben ACCESS_SYSTEM_SECURITY . De juiste manier om deze toegang te krijgen, is door de SE_SECURITY_NAMEbevoegdheid in te schakelen in het huidige toegangstoken van de beller, de ingang voor ACCESS_SYSTEM_SECURITY toegang te openen en vervolgens de bevoegdheid uit te schakelen.

psd
Wijs een SECURITY_DESCRIPTOR structuur aan waarmee de beveiligingskenmerken worden opgegeven die voor de opgegeven sleutel moeten worden ingesteld.

Retourwaarde

Als de methode slaagt, is ERROR_SUCCESSde retourwaarde . Als de methode mislukt, is de retourwaarde een niet-nulfoutcode die is gedefinieerd in WINERROR.H.

Opmerkingen

Hiermee stelt u de beveiligingskenmerken van de sleutel in. Zie RegSetKeySecurity voor meer informatie.

CRegKey::SetMultiStringValue

Roep deze methode aan om de multistringwaarde van de registersleutel in te stellen.

LONG SetMultiStringValue(LPCTSTR pszValueName, LPCTSTR pszValue) throw();

Parameterwaarden

pszValueName
Wijs een tekenreeks aan met de naam van de waarde die moet worden ingesteld. Als een waarde met deze naam nog niet aanwezig is, voegt de methode deze toe aan de sleutel.

pszValue
Wijs de multistringgegevens aan die moeten worden opgeslagen met de opgegeven waardenaam. Een multistring is een matrix van NULL-beëindigde tekenreeksen, beëindigd door twee null-tekens.

Retourwaarde

Als de methode slaagt, is ERROR_SUCCESSde retourwaarde . Als de methode mislukt, is de retourwaarde een niet-nulfoutcode die is gedefinieerd in WINERROR.H.

Opmerkingen

Deze methode gebruikt RegSetValueEx om de waarde naar het register te schrijven.

CRegKey::SetQWORDValue

Roep deze methode aan om de QWORD waarde van de registersleutel in te stellen.

LONG SetQWORDValue(LPCTSTR pszValueName, ULONGLONG qwValue) throw();

Parameterwaarden

pszValueName
Wijs een tekenreeks aan met de naam van de waarde die moet worden ingesteld. Als een waarde met deze naam nog niet aanwezig is, voegt de methode deze toe aan de sleutel.

qwValue
De QWORD gegevens die moeten worden opgeslagen met de opgegeven waardenaam.

Retourwaarde

Als de methode slaagt, is ERROR_SUCCESSde retourwaarde . Als de methode mislukt, is de retourwaarde een niet-nulfoutcode die is gedefinieerd in WINERROR.H.

Opmerkingen

Deze methode gebruikt RegSetValueEx om de waarde naar het register te schrijven.

CRegKey::SetStringValue

Roep deze methode aan om de tekenreekswaarde van de registersleutel in te stellen.

LONG SetStringValue(
    LPCTSTR pszValueName,
    LPCTSTR pszValue,
    DWORD dwType = REG_SZ) throw();

Parameterwaarden

pszValueName
Wijs een tekenreeks aan met de naam van de waarde die moet worden ingesteld. Als een waarde met deze naam nog niet aanwezig is, voegt de methode deze toe aan de sleutel.

pszValue
Wijs de tekenreeksgegevens aan die moeten worden opgeslagen met de opgegeven waardenaam.

dwType
Het type tekenreeks dat naar het register moet worden geschreven: REG_SZ (de standaardinstelling) of REG_EXPAND_SZ (voor multistrings).

Retourwaarde

Als de methode slaagt, is ERROR_SUCCESSde retourwaarde . Als de methode mislukt, is de retourwaarde een niet-nulfoutcode die is gedefinieerd in WINERROR.H.

Opmerkingen

Deze methode gebruikt RegSetValueEx om de waarde naar het register te schrijven.

CRegKey::SetValue

Roep deze methode aan om gegevens op te slaan in het opgegeven waardeveld van m_hKey. Eerdere versies van deze methode worden niet meer ondersteund en zijn gemarkeerd als 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);

Parameterwaarden

pszValueName
Wijs een tekenreeks aan met de naam van de waarde die moet worden ingesteld. Als een waarde met deze naam nog niet aanwezig is in de sleutel, voegt de methode deze toe aan de sleutel. Als pszValueName dit een lege tekenreeks is NULL , ""stelt de methode het type en de gegevens in voor de niet-benoemde of standaardwaarde van de sleutel.

dwType
Hiermee geeft u een code die het type gegevens aangeeft dat door de pValue parameter wordt verwezen.

pValue
Wijs een buffer aan die de gegevens bevat die moeten worden opgeslagen met de opgegeven waardenaam.

nBytes
Hiermee geeft u de grootte, in bytes, van de informatie die wordt verwezen door de pValue parameter. Als de gegevens van het type REG_SZ, REG_EXPAND_SZof REG_MULTI_SZ, nBytes moeten de grootte van het eind-null-teken bevatten.

hKeyParent
De greep van een open sleutel.

lpszKeyName
Hiermee geeft u de naam van een sleutel die moet worden gemaakt of geopend. Deze naam moet een subsleutel van hKeyParent.

lpszValue
Hiermee geeft u de gegevens op die moeten worden opgeslagen. Deze parameter moet niet zijnNULL.

lpszValueName
Hiermee geeft u het waardeveld dat moet worden ingesteld. Als er nog geen waardeveld met deze naam in de sleutel bestaat, wordt het toegevoegd.

dwValue
Hiermee geeft u de gegevens op die moeten worden opgeslagen.

bMulti
Als dit onwaar is, geeft u aan dat de tekenreeks van het type REG_SZis. Als waar, geeft u aan dat de tekenreeks een multistring van het type REG_MULTI_SZis.

nValueLen
Als bMulti waar is, nValueLen is de lengte van de lpszValue tekenreeks in tekens. Als bMulti dit onwaar is, geeft een waarde van -1 aan dat de methode automatisch de lengte berekent.

Retourwaarde

Als dit lukt, retourneert ERROR_SUCCESS; anders wordt er een niet-nulfoutcode gedefinieerd in WINERROR.H.

Opmerkingen

De twee oorspronkelijke versies zijn SetValue gemarkeerd als ATL_DEPRECATED en mogen niet meer worden gebruikt. De compiler geeft een waarschuwing als deze formulieren worden gebruikt.

Met de derde methode wordt aangeroepen RegSetValueEx.

Zie ook

DCOM-voorbeeld
Overzicht van klassen