Sdílet prostřednictvím


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

Attachbude 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

Createm_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í TCHARspamě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 psdodkazuje .

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 TRUEtento parametr , metoda hlásí změny v klíči a jeho podklíčích. Pokud je FALSEparametr , 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 TRUEparametr , metoda vrátí okamžitě a změny jsou hlášeny signálem této události. Pokud bAsync je , hEvent FALSEje ignorována.

bAsync
Určuje příznak, který označuje, jak se metoda hlásí změny. Pokud je TRUEtento parametr , metoda vrátí okamžitě a hlásí změny signálem zadané události. Pokud je FALSEtento 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::Createpří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 TCHARsvyrovnávací paměti, na kterou pszValueodkazuje . 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 pszValueodkazuje . 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_hKeyhodnoty 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_hKeyhodnoty . 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_SZnebo REG_MULTI_SZmusí 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.

Viz také

Ukázka modelu DCOM
Přehled třídy