CRegKey
Třída
Tato třída poskytuje metody pro manipulaci s položkami v systémovém registru.
Důležité
Tuto třídu a její členy nelze použít v aplikacích, které se spouští v prostředí Windows Runtime.
Syntaxe
class CRegKey
Členové
Veřejné konstruktory
Název | Popis |
---|---|
CRegKey::CRegKey |
Konstruktor |
CRegKey::~CRegKey |
Destruktor. |
Veřejné metody
Název | Popis |
---|---|
CRegKey::Attach |
Voláním této metody připojíte HKEY k objektu CRegKey nastavením popisovače člena m_hKey na hKey . |
CRegKey::Close |
Voláním této metody uvolněte popisovač člena m_hKey a nastavte ho na NULL . |
CRegKey::Create |
Voláním této metody vytvořte zadaný klíč, pokud neexistuje jako podklíč .hKeyParent |
CRegKey::DeleteSubKey |
Voláním této metody odeberete zadaný klíč z registru. |
CRegKey::DeleteValue |
Voláním této metody odeberete pole hodnoty z m_hKey . |
CRegKey::Detach |
Voláním této metody odpojíte popisovač člena m_hKey od objektu CRegKey a nastavíte m_hKey na NULL . |
CRegKey::EnumKey |
Voláním této metody vytvořte výčet podklíčů otevřeného klíče registru. |
CRegKey::Flush |
Voláním této metody zapíšete všechny atributy otevřeného klíče registru do registru. |
CRegKey::GetKeySecurity |
Voláním této metody načtěte kopii popisovače zabezpečení, která chrání otevřený klíč registru. |
CRegKey::NotifyChangeKeyValue |
Tato metoda upozorní volajícího na změny atributů nebo obsahu otevřeného klíče registru. |
CRegKey::Open |
Voláním této metody otevřete zadaný klíč a nastavíte m_hKey ho na popisovač tohoto klíče. |
CRegKey::QueryBinaryValue |
Voláním této metody načtěte binární data pro zadaný název hodnoty. |
CRegKey::QueryDWORDValue |
Voláním této metody načtěte DWORD data pro zadaný název hodnoty. |
CRegKey::QueryGUIDValue |
Voláním této metody načtěte data GUID pro zadaný název hodnoty. |
CRegKey::QueryMultiStringValue |
Voláním této metody načtěte víceřetězová data pro zadaný název hodnoty. |
CRegKey::QueryQWORDValue |
Voláním této metody načtěte QWORD data pro zadaný název hodnoty. |
CRegKey::QueryStringValue |
Voláním této metody načtěte řetězcová data pro zadaný název hodnoty. |
CRegKey::QueryValue |
Voláním této metody načtěte data pro zadané pole m_hKey hodnoty pole . Starší verze této metody již nejsou podporovány a jsou označeny jako ATL_DEPRECATED . |
CRegKey::RecurseDeleteKey |
Voláním této metody odeberete zadaný klíč z registru a explicitně odeberete všechny podklíče. |
CRegKey::SetBinaryValue |
Voláním této metody nastavíte binární hodnotu klíče registru. |
CRegKey::SetDWORDValue |
Voláním této metody nastavíte DWORD hodnotu klíče registru. |
CRegKey::SetGUIDValue |
Voláním této metody nastavíte hodnotu GUID klíče registru. |
CRegKey::SetKeySecurity |
Voláním této metody nastavíte zabezpečení klíče registru. |
CRegKey::SetKeyValue |
Voláním této metody uložíte data do zadaného pole hodnoty zadaného klíče. |
CRegKey::SetMultiStringValue |
Voláním této metody nastavíte hodnotu víceřetězce klíče registru. |
CRegKey::SetQWORDValue |
Voláním této metody nastavíte QWORD hodnotu klíče registru. |
CRegKey::SetStringValue |
Voláním této metody nastavíte řetězcovou hodnotu klíče registru. |
CRegKey::SetValue |
Voláním této metody uložíte data do zadaného pole m_hKey hodnoty . Starší verze této metody již nejsou podporovány a jsou označeny jako ATL_DEPRECATED . |
Veřejné operátory
Název | Popis |
---|---|
CRegKey::operator HKEY |
Převede CRegKey objekt na objekt HKEY . |
CRegKey::operator = |
Operátor přiřazení. |
Veřejné datové členy
Název | Popis |
---|---|
CRegKey::m_hKey |
Obsahuje popisovač klíče registru přidruženého k objektu CRegKey . |
CRegKey::m_pTM |
Ukazatel na CAtlTransactionManager objekt |
Poznámky
CRegKey
poskytuje metody pro vytváření a odstraňování klíčů a hodnot v systémovém registru. Registr obsahuje sadu definic specifických pro instalaci systémových komponent, jako jsou čísla verzí softwaru, logická mapování nainstalovaného hardwaru a objekty MODELU COM.
CRegKey
poskytuje programovací rozhraní systémového registru pro daný počítač. Chcete-li například otevřít konkrétní klíč registru, zavolejte CRegKey::Open
. Načtení nebo úprava datové hodnoty, volání CRegKey::QueryValue
nebo CRegKey::SetValue
, v uvedeném pořadí. Pokud chcete klíč zavřít, zavolejte CRegKey::Close
.
Když klíč zavřete, jeho data registru se zapíšou (vyprázdní) na pevný disk. Tento proces může trvat několik sekund. Pokud aplikace musí explicitně zapisovat data registru na pevný disk, můžete volat RegFlushKey
funkci Win32. RegFlushKey
Používá však mnoho systémových prostředků a měl by být volána pouze v případě, že je to naprosto nezbytné.
Důležité
Všechny metody, které volajícímu umožňují zadat umístění registru, mají potenciál číst data, která nelze považovat za důvěryhodnou. Metody, které využívají RegQueryValueEx
, by měly vzít v úvahu, že tato funkce explicitně nezpracovává řetězce, které jsou ukončeny null. Obě podmínky by měly být kontrolovány volajícím kódem.
Požadavky
Záhlaví: atlbase.h
CRegKey::Attach
Voláním této metody připojíte HKEY
k objektu CRegKey
nastavením popisovače člena m_hKey
na hKey
.
void Attach(HKEY hKey) throw();
Parametry
hKey
Popisovač klíče registru.
Poznámky
Attach
bude uplatňovat, pokud m_hKey
není.NULL
CRegKey::Close
Voláním této metody uvolněte popisovač člena m_hKey
a nastavte ho na NULL
.
LONG Close() throw();
Návratová hodnota
V případě úspěchu vrátí hodnotu ERROR_SUCCESS
; v opačném případě vrátí chybovou hodnotu.
CRegKey::Create
Voláním této metody vytvořte zadaný klíč, pokud neexistuje jako podklíč .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
Popisovač otevřeného klíče.
lpszKeyName
Určuje název klíče, který se má vytvořit nebo otevřít. Tento název musí být podklíčem hKeyParent
.
lpszClass
Určuje třídu klíče, která se má vytvořit nebo otevřít. Výchozí hodnota je REG_NONE.
dwOptions
Možnosti klíče Výchozí hodnota je REG_OPTION_NON_VOLATILE
. Seznam možných hodnot a popisů najdete RegCreateKeyEx
v sadě Windows SDK.
samDesired
Přístup k zabezpečení klíče. Výchozí hodnota je KEY_READ | KEY_WRITE
. Seznam možných hodnot a popisů najdete v tématu RegCreateKeyEx
.
lpSecAttr
Ukazatel na SECURITY_ATTRIBUTES
strukturu, která označuje, zda popisovač klíče může být zděděný podřízeným procesem. Ve výchozím nastavení je NULL
tento parametr (což znamená, že popisovač nelze zdědit).
lpdwDisposition
[ven] Pokud neNULL
, načte buď REG_CREATED_NEW_KEY
(pokud klíč neexistuje a byl vytvořen), nebo REG_OPENED_EXISTING_KEY
(pokud klíč existoval a byl otevřen).
Návratová hodnota
V případě úspěchu se vrátí ERROR_SUCCESS
a otevře klíč. Pokud metoda selže, návratová hodnota je nenulový kód chyby definovaný v WINERROR.H
.
Poznámky
Create
m_hKey
nastaví člena na popisovač tohoto klíče.
CRegKey::CRegKey
Konstruktor
CRegKey() throw();
CRegKey(CRegKey& key) throw();
explicit CRegKey(HKEY hKey) throw();
CRegKey(CAtlTransactionManager* pTM) throw();
Parametry
key
Odkaz na CRegKey
objekt.
hKey
Popisovač klíče registru.
pTM
Ukazatel na CAtlTransactionManager
objekt
Poznámky
Vytvoří nový CRegKey
objekt. Objekt lze vytvořit z existujícího CRegKey
objektu nebo z popisovače na klíč registru.
CRegKey::~CRegKey
Destruktor.
~CRegKey() throw();
Poznámky
Destruktor uvolní m_hKey
.
CRegKey::DeleteSubKey
Voláním této metody odeberete zadaný klíč z registru.
LONG DeleteSubKey(LPCTSTR lpszSubKey) throw();
Parametry
lpszSubKey
Určuje název klíče, který se má odstranit. Tento název musí být podklíčem m_hKey
.
Návratová hodnota
V případě úspěchu vrátí hodnotu ERROR_SUCCESS
. Pokud metoda selže, návratová hodnota je nenulový kód chyby definovaný v WINERROR.H
.
Poznámky
DeleteSubKey
může odstranit pouze klíč, který nemá žádné podklíče. Pokud klíč obsahuje podklíče, zavolejte RecurseDeleteKey
místo toho.
CRegKey::DeleteValue
Voláním této metody odeberete pole hodnoty z m_hKey
.
LONG DeleteValue(LPCTSTR lpszValue) throw();
Parametry
lpszValue
Určuje pole hodnoty, které se má odebrat.
Návratová hodnota
V případě úspěchu vrátí hodnotu ERROR_SUCCESS
. Pokud metoda selže, návratová hodnota je nenulový kód chyby definovaný v WINERROR.H
.
CRegKey::Detach
Voláním této metody odpojíte popisovač člena m_hKey
od objektu CRegKey
a nastavíte m_hKey
na NULL
.
HKEY Detach() throw();
Návratová hodnota
HKEY přidružené k objektu CRegKey
.
CRegKey::EnumKey
Voláním této metody vytvořte výčet podklíčů otevřeného klíče registru.
LONG EnumKey(
DWORD iIndex,
LPTSTR pszName,
LPDWORD pnNameLength,
FILETIME* pftLastWriteTime = NULL) throw();
Parametry
iIndex
Index podklíče. Tento parametr by měl být pro první volání nulový a následně by se měl zvýšit pro následná volání.
pszName
Ukazatel na vyrovnávací paměť, která přijímá název podklíče, včetně ukončujícího znaku null. Do vyrovnávací paměti se zkopíruje pouze název podklíče, nikoli do celé hierarchie klíčů.
pnNameLength
Ukazatel na proměnnou, která určuje velikost vyrovnávací TCHARs
paměti určenou parametrem pszName
. Tato velikost by měla obsahovat ukončující znak null. Když metoda vrátí, proměnná, na kterou pnNameLength
odkazuje, obsahuje počet znaků uložených ve vyrovnávací paměti. Vrácený počet neobsahuje ukončující znak null.
pftLastWriteTime
Ukazatel na proměnnou, která přijímá čas posledního zápisu výčtu podklíče.
Návratová hodnota
Pokud je metoda úspěšná, návratová hodnota je ERROR_SUCCESS
. Pokud metoda selže, návratová hodnota je nenulový kód chyby definovaný v WINERROR.H
.
Poznámky
Pokud chcete vytvořit výčet podklíčů, zavolejte CRegKey::EnumKey
index nuly. Zvýšení hodnoty indexu a opakování, dokud metoda nevrátí ERROR_NO_MORE_ITEMS
. Další informace najdete RegEnumKeyEx
v sadě Windows SDK.
CRegKey::Flush
Voláním této metody zapíšete všechny atributy otevřeného klíče registru do registru.
LONG Flush() throw();
Návratová hodnota
Pokud je metoda úspěšná, návratová hodnota je ERROR_SUCCESS
. Pokud metoda selže, návratová hodnota je nenulový kód chyby definovaný v WINERROR.H
.
Poznámky
Další informace najdete RegEnumFlush
v sadě Windows SDK.
CRegKey::GetKeySecurity
Voláním této metody načtěte kopii popisovače zabezpečení, která chrání otevřený klíč registru.
LONG GetKeySecurity(
SECURITY_INFORMATION si,
PSECURITY_DESCRIPTOR psd,
LPDWORD pnBytes) throw();
Parametry
si
Hodnota SECURITY_INFORMATION
, která označuje požadované informace o zabezpečení.
psd
Ukazatel na vyrovnávací paměť, která obdrží kopii požadovaného popisovače zabezpečení.
pnBytes
Velikost vyrovnávací paměti, na kterou psd
odkazuje .
Návratová hodnota
Pokud je metoda úspěšná, návratová hodnota je ERROR_SUCCESS
. Pokud metoda selže, návratová hodnota je nenulový kód chyby je definován v WINERROR.H
.
Poznámky
Další informace najdete na webu RegGetKeySecurity
.
CRegKey::m_hKey
Obsahuje popisovač klíče registru přidruženého k objektu CRegKey
.
HKEY m_hKey;
CRegKey::m_pTM
Ukazatel na CAtlTransactionManager
objekt.
CAtlTransactionManager* m_pTM;
Poznámky
CRegKey::NotifyChangeKeyValue
Tato metoda upozorní volajícího na změny atributů nebo obsahu otevřeného klíče registru.
LONG NotifyChangeKeyValue(
BOOL bWatchSubtree,
DWORD dwNotifyFilter,
HANDLE hEvent,
BOOL bAsync = TRUE) throw();
Parametry
bWatchSubtree
Určuje příznak, který určuje, zda se mají hlásit změny v zadaném klíči a všech jeho podklíčích nebo pouze v zadaném klíči. Pokud je TRUE
tento parametr , metoda hlásí změny v klíči a jeho podklíčích. Pokud je FALSE
parametr , metoda hlásí změny pouze v klíči.
dwNotifyFilter
Určuje sadu příznaků, které řídí, které změny mají být hlášeny. Tento parametr může být kombinací následujících hodnot:
Hodnota | Význam |
---|---|
REG_NOTIFY_CHANGE_NAME |
Upozorněte volajícího, pokud je přidaný nebo odstraněný podklíč. |
REG_NOTIFY_CHANGE_ATTRIBUTES |
Upozorněte volajícího na změny atributů klíče, například informace popisovače zabezpečení. |
REG_NOTIFY_CHANGE_LAST_SET |
Upozorněte volajícího na změny hodnoty klíče. Může to zahrnovat přidání nebo odstranění hodnoty nebo změnu existující hodnoty. |
REG_NOTIFY_CHANGE_SECURITY |
Upozorněte volajícího na změny popisovače zabezpečení klíče. |
hEvent
Zpracování události bAsync
Pokud je TRUE
parametr , metoda vrátí okamžitě a změny jsou hlášeny signálem této události. Pokud bAsync
je , hEvent
FALSE
je ignorována.
bAsync
Určuje příznak, který označuje, jak se metoda hlásí změny. Pokud je TRUE
tento parametr , metoda vrátí okamžitě a hlásí změny signálem zadané události. Pokud je FALSE
tento parametr , metoda se nevrací, dokud nedojde ke změně. Pokud hEvent
nezadáte platnou událost, bAsync
parametr nemůže být TRUE
.
Návratová hodnota
Pokud je metoda úspěšná, návratová hodnota je ERROR_SUCCESS
. Pokud metoda selže, návratová hodnota je nenulový kód chyby definovaný v WINERROR.H
.
Poznámky
Poznámka:
Tato metoda neoznámí volajícího, pokud je zadaný klíč odstraněn.
Další podrobnosti a ukázkový program najdete v tématu RegNotifyChangeKeyValue
.
CRegKey::Open
Voláním této metody otevřete zadaný klíč a nastavíte m_hKey
ho na popisovač tohoto klíče.
LONG Open(
HKEY hKeyParent,
LPCTSTR lpszKeyName,
REGSAM samDesired = KEY_READ | KEY_WRITE) throw();
Parametry
hKeyParent
Popisovač otevřeného klíče.
lpszKeyName
Určuje název klíče, který se má vytvořit nebo otevřít. Tento název musí být podklíčem hKeyParent
.
samDesired
Přístup k zabezpečení klíče. Výchozí hodnota je KEY_ALL_ACCESS
. Seznam možných hodnot a popisů najdete RegCreateKeyEx
v sadě Windows SDK.
Návratová hodnota
V případě úspěchu vrátí hodnotu ERROR_SUCCESS
, v opačném případě nenulovou chybovou hodnotu definovanou v WINERROR.H
.
Poznámky
lpszKeyName
Pokud je NULL
parametr nebo odkazuje na prázdný řetězec, Open
otevře nový popisovač klíče identifikovaný pomocí hKeyParent
, ale nezavře žádné dříve otevřené popisovače.
Na rozdíl od CRegKey::Create
příkazu nevytvoří Open
zadaný klíč, pokud neexistuje.
CRegKey::operator HKEY
Převede CRegKey
objekt na objekt HKEY
.
operator HKEY() const throw();
CRegKey::operator =
Operátor přiřazení.
CRegKey& operator= (CRegKey& key) throw();
Parametry
key
Klíč, který chcete zkopírovat.
Návratová hodnota
Vrátí odkaz na nový klíč.
Poznámky
Tento operátor oddělí key
od aktuálního objektu a místo toho ho přiřadí k objektu CRegKey
.
CRegKey::QueryBinaryValue
Voláním této metody načtěte binární data pro zadaný název hodnoty.
LONG QueryBinaryValue(
LPCTSTR pszValueName,
void* pValue,
ULONG* pnBytes) throw();
Parametry
pszValueName
Ukazatel na NULL
řetězec -terminated obsahující název hodnoty, na kterou se má dotazovat.
pValue
Ukazatel na vyrovnávací paměť, která přijímá data hodnoty.
pnBytes
Ukazatel na proměnnou, která určuje velikost vyrovnávací paměti odkazované parametrem pValue
v bajtech. Když metoda vrátí, tato proměnná obsahuje velikost dat zkopírovaných do vyrovnávací paměti.
Návratová hodnota
Pokud je metoda úspěšná, ERROR_SUCCESS
vrátí se. Pokud metoda nepřečte hodnotu, vrátí nenulový kód chyby definovaný v WINERROR.H
. Pokud odkazovaná data nejsou typu REG_BINARY
, ERROR_INVALID_DATA
vrátí se.
Poznámky
Tato metoda používá RegQueryValueEx
a potvrzuje, že je vrácen správný typ dat. Další RegQueryValueEx
podrobnosti najdete.
Důležité
Tato metoda umožňuje volajícímu zadat libovolné umístění registru, potenciálně číst data, která nemohou být důvěryhodná. RegQueryValueEx
Funkce používaná touto metodou také explicitně nezpracovává řetězce, které jsou ukončeny hodnotou null. Obě podmínky by měly být kontrolovány volajícím kódem.
CRegKey::QueryDWORDValue
Voláním této metody načtěte DWORD
data pro zadaný název hodnoty.
LONG QueryDWORDValue(
LPCTSTR pszValueName,
DWORD& dwValue) throw();
Parametry
pszValueName
Ukazatel na NULL
řetězec -terminated obsahující název hodnoty, na kterou se má dotazovat.
dwValue
Ukazatel na vyrovnávací paměť, která přijímá DWORD
.
Návratová hodnota
Pokud je metoda úspěšná, ERROR_SUCCESS
vrátí se. Pokud metoda nepřečte hodnotu, vrátí nenulový kód chyby definovaný v WINERROR.H
. Pokud odkazovaná data nejsou typu REG_DWORD
, ERROR_INVALID_DATA
vrátí se.
Poznámky
Tato metoda používá RegQueryValueEx
a potvrzuje, že je vrácen správný typ dat. Další RegQueryValueEx
podrobnosti najdete.
Důležité
Tato metoda umožňuje volajícímu zadat libovolné umístění registru, potenciálně číst data, která nemohou být důvěryhodná. RegQueryValueEx
Funkce používaná touto metodou také explicitně nezpracovává řetězce, které jsou ukončeny hodnotou null. Obě podmínky by měly být kontrolovány volajícím kódem.
CRegKey::QueryGUIDValue
Voláním této metody načtěte data GUID pro zadaný název hodnoty.
LONG QueryGUIDValue(
LPCTSTR pszValueName,
GUID& guidValue) throw();
Parametry
pszValueName
Ukazatel na NULL
řetězec -terminated obsahující název hodnoty, na kterou se má dotazovat.
guidValue
Ukazatel na proměnnou, která přijímá identifikátor GUID.
Návratová hodnota
Pokud je metoda úspěšná, ERROR_SUCCESS
vrátí se. Pokud metoda nepřečte hodnotu, vrátí nenulový kód chyby definovaný v WINERROR.H
. Pokud odkazovaná data nejsou platným identifikátorem GUID, ERROR_INVALID_DATA
vrátí se.
Poznámky
Tato metoda používá CRegKey::QueryStringValue
a převádí řetězec na identifikátor GUID pomocí CLSIDFromString
.
Důležité
Tato metoda umožňuje volajícímu zadat libovolné umístění registru, potenciálně číst data, která nemohou být důvěryhodná.
CRegKey::QueryMultiStringValue
Voláním této metody načtěte víceřetězová data pro zadaný název hodnoty.
LONG QueryMultiStringValue(
LPCTSTR pszValueName,
LPTSTR pszValue,
ULONG* pnChars) throw();
Parametry
pszValueName
Ukazatel na NULL
řetězec -terminated obsahující název hodnoty, na kterou se má dotazovat.
pszValue
Ukazatel na vyrovnávací paměť, která přijímá víceřetězí data. Víceřetězc je pole NULL
řetězců -terminated ukončených dvěma znaky null.
pnChars
Velikost TCHARs
vyrovnávací paměti, na kterou pszValue
odkazuje . Když metoda vrátí, pnChars
obsahuje velikost, v TCHARs
, víceřetězení načten, včetně ukončující null znak.
Návratová hodnota
Pokud je metoda úspěšná, ERROR_SUCCESS
vrátí se. Pokud metoda nepřečte hodnotu, vrátí nenulový kód chyby definovaný v WINERROR.H
. Pokud odkazovaná data nejsou typu REG_MULTI_SZ
, ERROR_INVALID_DATA
vrátí se.
Poznámky
Tato metoda používá RegQueryValueEx
a potvrzuje, že je vrácen správný typ dat. Další RegQueryValueEx
podrobnosti najdete.
Důležité
Tato metoda umožňuje volajícímu zadat libovolné umístění registru, potenciálně číst data, která nemohou být důvěryhodná. RegQueryValueEx
Funkce používaná touto metodou také explicitně nezpracovává řetězce, které jsou ukončeny hodnotou null. Obě podmínky by měly být kontrolovány volajícím kódem.
CRegKey::QueryQWORDValue
Voláním této metody načtěte QWORD
data pro zadaný název hodnoty.
LONG QueryQWORDValue(
LPCTSTR pszValueName,
ULONGLONG& qwValue) throw();
Parametry
pszValueName
Ukazatel na NULL
řetězec -terminated obsahující název hodnoty, na kterou se má dotazovat.
qwValue
Ukazatel na vyrovnávací paměť, která přijímá QWORD
.
Návratová hodnota
Pokud je metoda úspěšná, ERROR_SUCCESS
vrátí se. Pokud metoda nepřečte hodnotu, vrátí nenulový kód chyby definovaný v WINERROR.H
. Pokud odkazovaná data nejsou typu REG_QWORD
, ERROR_INVALID_DATA
vrátí se.
Poznámky
Tato metoda používá RegQueryValueEx
a potvrzuje, že je vrácen správný typ dat. Další RegQueryValueEx
podrobnosti najdete.
Důležité
Tato metoda umožňuje volajícímu zadat libovolné umístění registru, potenciálně číst data, která nemohou být důvěryhodná. RegQueryValueEx
Funkce používaná touto metodou také explicitně nezpracovává řetězce, které jsou ukončeny hodnotou null. Obě podmínky by měly být kontrolovány volajícím kódem.
CRegKey::QueryStringValue
Voláním této metody načtěte řetězcová data pro zadaný název hodnoty.
LONG QueryStringValue(
LPCTSTR pszValueName,
LPTSTR pszValue,
ULONG* pnChars) throw();
Parametry
pszValueName
Ukazatel na NULL
řetězec -terminated obsahující název hodnoty, na kterou se má dotazovat.
pszValue
Ukazatel na vyrovnávací paměť, která přijímá řetězcová data.
pnChars
Velikost vyrovnávací paměti v TCHARS, na kterou pszValue
odkazuje . Když metoda vrátí, pnChars
obsahuje velikost, v , v TCHARs
řetězci načten, včetně ukončující null znak.
Návratová hodnota
Pokud je metoda úspěšná, ERROR_SUCCESS
vrátí se. Pokud metoda nepřečte hodnotu, vrátí nenulový kód chyby definovaný v WINERROR.H
. Pokud odkazovaná data nejsou typu REG_SZ
, ERROR_INVALID_DATA
vrátí se. Pokud metoda vrátí ERROR_MORE_DATA
, pnChars
rovná nule, ne požadovanou velikost vyrovnávací paměti v bajtech.
Poznámky
Tato metoda používá RegQueryValueEx
a potvrzuje, že je vrácen správný typ dat. Další RegQueryValueEx
podrobnosti najdete.
Důležité
Tato metoda umožňuje volajícímu zadat libovolné umístění registru, potenciálně číst data, která nemohou být důvěryhodná. RegQueryValueEx
Funkce používaná touto metodou také explicitně nezpracovává řetězce, které jsou ukončeny hodnotou null. Obě podmínky by měly být kontrolovány volajícím kódem.
CRegKey::QueryValue
Voláním této metody načtěte data pro zadané pole m_hKey
hodnoty pole . Starší verze této metody již nejsou podporovány a jsou označeny 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
Ukazatel na NULL
řetězec -terminated obsahující název hodnoty, na kterou se má dotazovat. Pokud pszValueName
je NULL
nebo prázdný řetězec, ""
metoda načte typ a data pro nepojmenovanou nebo výchozí hodnotu klíče, pokud existuje.
pdwType
Ukazatel na proměnnou, která přijímá kód označující typ dat uložených v zadané hodnotě. Parametr pdwType
může být NULL
v případě, že kód typu není povinný.
pData
Ukazatel na vyrovnávací paměť, která přijímá data hodnoty. Tento parametr může být NULL
v případě, že data nejsou povinná.
pnBytes
Ukazatel na proměnnou, která určuje velikost vyrovnávací paměti odkazované parametrem pData
v bajtech. Když metoda vrátí, tato proměnná obsahuje velikost dat zkopírovaných do pData
.
dwValue
Číselná data pole hodnoty.
lpszValueName
Určuje pole hodnoty, které se má dotazovat.
szValue
Řetězcová data pole hodnoty.
pdwCount
Velikost řetězcových dat. Jeho hodnota je původně nastavena na velikost szValue
vyrovnávací paměti.
Návratová hodnota
V případě úspěchu vrátí hodnotu ERROR_SUCCESS
; v opačném případě nenulový kód chyby definovaný v WINERROR.H
.
Poznámky
Dvě původní verze QueryValue
již nejsou podporovány a jsou označeny jako ATL_DEPRECATED
. Kompilátor vydá upozornění, pokud se tyto formuláře použijí.
Zbývající metoda volá RegQueryValueEx
.
Důležité
Tato metoda umožňuje volajícímu zadat libovolné umístění registru, potenciálně číst data, která nemohou být důvěryhodná. RegQueryValueEx
Funkce používaná touto metodou také explicitně nezpracovává řetězce, které jsou ukončeny hodnotou null. Obě podmínky by měly být kontrolovány volajícím kódem.
CRegKey::RecurseDeleteKey
Voláním této metody odeberete zadaný klíč z registru a explicitně odeberete všechny podklíče.
LONG RecurseDeleteKey(LPCTSTR lpszKey) throw();
Parametry
lpszKey
Určuje název klíče, který se má odstranit. Tento název musí být podklíčem m_hKey
.
Návratová hodnota
V případě úspěchu vrátí hodnotu ERROR_SUCCESS
, v opačném případě nenulovou chybovou hodnotu definovanou v WINERROR.H
.
Poznámky
Pokud klíč obsahuje podklíče, musíte volat tuto metodu pro odstranění klíče.
CRegKey::SetBinaryValue
Voláním této metody nastavíte binární hodnotu klíče registru.
LONG SetBinaryValue(
LPCTSTR pszValueName,
const void* pValue,
ULONG nBytes) throw();
Parametry
pszValueName
Ukazatel na řetězec obsahující název hodnoty, kterou chcete nastavit. Pokud hodnota s tímto názvem ještě není k dispozici, metoda ji přidá do klíče.
pValue
Ukazatel na vyrovnávací paměť obsahující data, která mají být uložena se zadaným názvem hodnoty.
nBytes
Určuje velikost informací odkazovaných parametrem pValue
v bajtech.
Návratová hodnota
Pokud je metoda úspěšná, návratová hodnota je ERROR_SUCCESS
. Pokud metoda selže, návratová hodnota je nenulový kód chyby definovaný v WINERROR.H
.
Poznámky
Tato metoda používá RegSetValueEx
k zápisu hodnoty do registru.
CRegKey::SetDWORDValue
Voláním této metody nastavíte DWORD
hodnotu klíče registru.
LONG SetDWORDValue(LPCTSTR pszValueName, DWORD dwValue) throw();
Parametry
pszValueName
Ukazatel na řetězec obsahující název hodnoty, kterou chcete nastavit. Pokud hodnota s tímto názvem ještě není k dispozici, metoda ji přidá do klíče.
dwValue
DWORD
Data, která se mají uložit se zadaným názvem hodnoty.
Návratová hodnota
Pokud je metoda úspěšná, návratová hodnota je ERROR_SUCCESS
. Pokud metoda selže, návratová hodnota je nenulový kód chyby definovaný v WINERROR.H
.
Poznámky
Tato metoda používá RegSetValueEx
k zápisu hodnoty do registru.
CRegKey::SetGUIDValue
Voláním této metody nastavíte hodnotu GUID klíče registru.
LONG SetGUIDValue(LPCTSTR pszValueName, REFGUID guidValue) throw();
Parametry
pszValueName
Ukazatel na řetězec obsahující název hodnoty, kterou chcete nastavit. Pokud hodnota s tímto názvem ještě není k dispozici, metoda ji přidá do klíče.
guidValue
Odkaz na identifikátor GUID, který se má uložit se zadaným názvem hodnoty.
Návratová hodnota
Pokud je metoda úspěšná, návratová hodnota je ERROR_SUCCESS
. Pokud metoda selže, návratová hodnota je nenulový kód chyby definovaný v WINERROR.H
.
Poznámky
Tato metoda používá CRegKey::SetStringValue
a převádí IDENTIFIKÁTOR GUID na řetězec pomocí StringFromGUID2
.
CRegKey::SetKeyValue
Voláním této metody uložíte data do zadaného pole hodnoty zadaného klíče.
LONG SetKeyValue(
LPCTSTR lpszKeyName,
LPCTSTR lpszValue,
LPCTSTR lpszValueName = NULL) throw();
Parametry
lpszKeyName
Určuje název klíče, který se má vytvořit nebo otevřít. Tento název musí být podklíčem m_hKey
.
lpszValue
Určuje data, která se mají uložit. Tento parametr nesmí být.NULL
lpszValueName
Určuje pole hodnoty, které se má nastavit. Pokud pole hodnoty s tímto názvem ještě v klíči neexistuje, přidá se.
Návratová hodnota
V případě úspěchu vrátí hodnotu ERROR_SUCCESS
; v opačném případě nenulový kód chyby definovaný v WINERROR.H
.
Poznámky
Voláním této metody vytvořte nebo otevřete lpszKeyName
klíč a uložte lpszValue
data do lpszValueName
pole hodnoty.
CRegKey::SetKeySecurity
Voláním této metody nastavíte zabezpečení klíče registru.
LONG SetKeySecurity(SECURITY_INFORMATION si, PSECURITY_DESCRIPTOR psd) throw();
Parametry
si
Určuje komponenty popisovače zabezpečení, které se mají nastavit. Hodnota může být kombinací následujících hodnot:
Hodnota | Význam |
---|---|
DACL_SECURITY_INFORMATION |
Nastaví volitelný seznam řízení přístupu (DACL) klíče. Klíč musí mít WRITE_DAC přístup nebo volající proces musí být vlastníkem objektu. |
GROUP_SECURITY_INFORMATION |
Nastaví identifikátor zabezpečení primární skupiny klíče (SID). Klíč musí mít WRITE_OWNER přístup nebo volající proces musí být vlastníkem objektu. |
OWNER_SECURITY_INFORMATION |
Nastaví identifikátor SID vlastníka klíče. Klíč musí mít WRITE_OWNER přístup nebo volající proces musí být vlastníkem objektu nebo musí mít SE_TAKE_OWNERSHIP_NAME povolené oprávnění. |
SACL_SECURITY_INFORMATION |
Nastaví seznam řízení přístupu (SACL) klíče. Klíč musí mít ACCESS_SYSTEM_SECURITY přístup. Správným způsobem, jak tento přístup získat, je povolit SE_SECURITY_NAME oprávnění v aktuálním přístupovém tokenu volajícího, otevřít popisovač pro ACCESS_SYSTEM_SECURITY přístup a pak toto oprávnění zakázat. |
psd
Ukazatel na SECURITY_DESCRIPTOR
strukturu, která určuje atributy zabezpečení, které se mají nastavit pro zadaný klíč.
Návratová hodnota
Pokud je metoda úspěšná, návratová hodnota je ERROR_SUCCESS
. Pokud metoda selže, návratová hodnota je nenulový kód chyby definovaný v WINERROR.H
.
Poznámky
Nastaví atributy zabezpečení klíče. Další RegSetKeySecurity
podrobnosti najdete.
CRegKey::SetMultiStringValue
Voláním této metody nastavíte hodnotu víceřetězce klíče registru.
LONG SetMultiStringValue(LPCTSTR pszValueName, LPCTSTR pszValue) throw();
Parametry
pszValueName
Ukazatel na řetězec obsahující název hodnoty, kterou chcete nastavit. Pokud hodnota s tímto názvem ještě není k dispozici, metoda ji přidá do klíče.
pszValue
Ukazatel na data s více řetězci, která mají být uložena se zadaným názvem hodnoty. Víceřetězc je pole NULL
řetězců -terminated ukončených dvěma znaky null.
Návratová hodnota
Pokud je metoda úspěšná, návratová hodnota je ERROR_SUCCESS
. Pokud metoda selže, návratová hodnota je nenulový kód chyby definovaný v WINERROR.H
.
Poznámky
Tato metoda používá RegSetValueEx
k zápisu hodnoty do registru.
CRegKey::SetQWORDValue
Voláním této metody nastavíte QWORD
hodnotu klíče registru.
LONG SetQWORDValue(LPCTSTR pszValueName, ULONGLONG qwValue) throw();
Parametry
pszValueName
Ukazatel na řetězec obsahující název hodnoty, kterou chcete nastavit. Pokud hodnota s tímto názvem ještě není k dispozici, metoda ji přidá do klíče.
qwValue
QWORD
Data, která se mají uložit se zadaným názvem hodnoty.
Návratová hodnota
Pokud je metoda úspěšná, návratová hodnota je ERROR_SUCCESS
. Pokud metoda selže, návratová hodnota je nenulový kód chyby definovaný v WINERROR.H
.
Poznámky
Tato metoda používá RegSetValueEx
k zápisu hodnoty do registru.
CRegKey::SetStringValue
Voláním této metody nastavíte řetězcovou hodnotu klíče registru.
LONG SetStringValue(
LPCTSTR pszValueName,
LPCTSTR pszValue,
DWORD dwType = REG_SZ) throw();
Parametry
pszValueName
Ukazatel na řetězec obsahující název hodnoty, kterou chcete nastavit. Pokud hodnota s tímto názvem ještě není k dispozici, metoda ji přidá do klíče.
pszValue
Ukazatel na řetězcová data, která se mají uložit se zadaným názvem hodnoty.
dwType
Typ řetězce pro zápis do registru: buď REG_SZ
(výchozí) nebo REG_EXPAND_SZ
(pro víceřetězců).
Návratová hodnota
Pokud je metoda úspěšná, návratová hodnota je ERROR_SUCCESS
. Pokud metoda selže, návratová hodnota je nenulový kód chyby definovaný v WINERROR.H
.
Poznámky
Tato metoda používá RegSetValueEx
k zápisu hodnoty do registru.
CRegKey::SetValue
Voláním této metody uložíte data do zadaného pole m_hKey
hodnoty . Starší verze této metody již nejsou podporovány a jsou označeny 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
Ukazatel na řetězec obsahující název hodnoty, kterou chcete nastavit. Pokud v klíči ještě není hodnota s tímto názvem, metoda ji přidá do klíče. Pokud pszValueName
je NULL
nebo prázdný řetězec, ""
metoda nastaví typ a data pro nepojmenovanou nebo výchozí hodnotu klíče.
dwType
Určuje kód označující typ dat, na který pValue
odkazuje parametr.
pValue
Ukazatel na vyrovnávací paměť obsahující data, která mají být uložena se zadaným názvem hodnoty.
nBytes
Určuje velikost informací odkazovaných parametrem pValue
v bajtech. Pokud jsou data typu REG_SZ
, REG_EXPAND_SZ
nebo REG_MULTI_SZ
musí nBytes
obsahovat velikost ukončující znak null.
hKeyParent
Popisovač otevřeného klíče.
lpszKeyName
Určuje název klíče, který se má vytvořit nebo otevřít. Tento název musí být podklíčem hKeyParent
.
lpszValue
Určuje data, která se mají uložit. Tento parametr nesmí být.NULL
lpszValueName
Určuje pole hodnoty, které se má nastavit. Pokud pole hodnoty s tímto názvem ještě v klíči neexistuje, přidá se.
dwValue
Určuje data, která se mají uložit.
bMulti
Pokud je false, označuje řetězec typu REG_SZ
. Pokud je pravda, označuje řetězec je víceřetězce typu REG_MULTI_SZ
.
nValueLen
Pokud bMulti
je hodnota true, nValueLen
je délka lpszValue
řetězce v značce. Pokud bMulti
je false, hodnota -1 označuje, že metoda vypočítá délku automaticky.
Návratová hodnota
V případě úspěchu vrátí hodnotu ERROR_SUCCESS
; v opačném případě nenulový kód chyby definovaný v WINERROR.H
.
Poznámky
Dvě původní verze SetValue
jsou označené jako ATL_DEPRECATED
a již by se neměly používat. Kompilátor vydá upozornění, pokud se tyto formuláře použijí.
Třetí metoda volá RegSetValueEx
.