CSettingsStore Class
The latest version of this topic can be found at CSettingsStore Class.
Wraps Windows API functions, providing an object-oriented interface that you use to access the registry.
Syntax
class CSettingsStore : public CObject
Members
Public Constructors
Name | Description |
---|---|
CSettingsStore::CSettingsStore | Constructs a CSettingsStore object. |
Public Methods
Name | Description |
---|---|
CSettingsStore::Close | Closes the open registry key. |
CSettingsStore::CreateKey | Opens the specified key or creates it if it does not exist. |
CSettingsStore::DeleteKey | Deletes the specified key and all its children. |
CSettingsStore::DeleteValue | Deletes the specified value of the open key. |
CSettingsStore::Open | Opens the specified key. |
CSettingsStore::Read | Retrieves the data for a specified key value. |
CSettingsStore::Write | Writes a value to the registry under the open key. |
Remarks
The member functions CreateKey
and Open
are very similar. If the registry key already exists, CreateKey
and Open
function in the same way. However, if the registry key does not exist, CreateKey
will create it whereas Open
will return an error value.
Example
The following example demonstrates how to use the Open and Read methods of the CSettingsStore
class. This code snippet is part of the Tool Tip Demo sample.
CSettingsStore reg (FALSE, TRUE);
DWORD dwEnableBalloonTips = 1;
if (reg.Open (_T("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced")) &&
reg.Read (_T("EnableBalloonTips"), dwEnableBalloonTips))
{
return dwEnableBalloonTips == 1;
}
Inheritance Hierarchy
Requirements
Header: afxsettingsstore.h
CSettingsStore::Close
Closes the open registry key.
virtual void Close();
Remarks
By default, this method is called from the destructor of the CSettingsStore Class.
CSettingsStore::CreateKey
Opens a registry key or creates it if it does not exist.
virtual BOOL CreateKey(LPCTSTR pszPath);
Parameters
[in] pszPath
Specifies the name of a key to be created or opened.
Return Value
0 if successful; otherwise a nonzero value.
Remarks
CreateKey
uses m_hKey
as the root of registry inquiries. It searches for pszPath
as a subkey of m_hKey
. If the key does not exist, CreateKey
creates it. Otherwise, it opens the key. CreateKey
then sets m_hKey
to the created or opened key.
CSettingsStore::CSettingsStore
Creates a CSettngsStore
object.
CSettingsStore(
BOOL bAdmin,
BOOL bReadOnly);
Parameters
[in] bAdmin
Boolean parameter that specifies whether the CSettingsStore
object is acting in administrator mode.
[in] bReadOnly
Boolean parameter that specifies whether the CSettingsStore
object is created in read-only mode.
Remarks
If bAdmin
is set to false
, the m_hKey
member variable is set to HKEY_LOCAL_MACHINE
. If you set bAdmin
to true
, m_hKey
is set to HKEY_CURRENT_USER
.
The security access depends on the bReadOnly
parameter. If bReadonly
is false
, the security access will be set to KEY_ALL_ACCESS
. If bReadyOnly
is true
, the security access will be set to a combination of KEY_QUERY_VALUE, KEY_NOTIFY
and KEY_ENUMERATE_SUB_KEYS
. For more information about security access together with the registry, see Registry Key Security and Access Rights.
The destructor for CSettingsStore
releases m_hKey
automatically.
CSettingsStore::DeleteKey
Deletes a key and all its children from the registry.
virtual BOOL DeleteKey(
LPCTSTR pszPath,
BOOL bAdmin = FALSE);
Parameters
[in] pszPath
The name of the key to delete.
[in] bAdmin
Switch that specifies the location of the key to delete.
Return Value
Nonzero if successful; otherwise 0.
Remarks
This method will fail if the CSettingsStore
object is in read-only mode.
If the parameter bAdmin
is zero, DeleteKey
searches for the key to delete under HKEY_CURRENT_USER
. If bAdmin
is nonzero, DeleteKey
searches for the key to delete under HKEY_LOCAL_MACHINE
.
CSettingsStore::DeleteValue
Deletes a value from m_hKey
.
virtual BOOL DeleteValue(LPCTSTR pszValue);
Parameters
[in] pszValue
Specifies the value field to remove.
Return Value
Nonzero if successful; otherwise 0.
CSettingsStore::Open
Opens a registry key.
virtual BOOL Open(LPCTSTR pszPath);
Parameters
[in] pszPath
The name of a registry key.
Return Value
Nonzero if successful; otherwise 0.
Remarks
After this method successfully opens the specified key, it sets m_hKey
to the handle of this key.
CSettingsStore::Read
Reads a value from a key in the registry.
virtual BOOL Read(
LPCTSTR pszKey,
int& iVal);
virtual BOOL Read(
LPCTSTR pszKey,
DWORD& dwVal);
virtual BOOL Read(
LPCTSTR pszKey,
CString& sVal);
virtual BOOL Read(
LPCTSTR pszKey,
CStringList& scStringList);
virtual BOOL Read(
LPCTSTR pszKey,
CStringArray& scArray);
virtual BOOL Read(
LPCTSTR pszKey,
CDWordArray& dwcArray);
virtual BOOL Read(
LPCTSTR pszKey,
CWordArray& wcArray);
virtual BOOL Read(
LPCTSTR pszKey,
CByteArray& bcArray);
virtual BOOL Read(
LPCTSTR pszKey,
LPPOINT& lpPoint);
virtual BOOL Read(
LPCTSTR pszKey,
CRect& rect);
virtual BOOL Read(
LPCTSTR pszKey,
BYTE** ppData,
UINT* pBytes);
virtual BOOL Read(
LPCTSTR pszKey,
CObList& list);
virtual BOOL Read(
LPCTSTR pszKey,
CObject& obj);
virtual BOOL Read(
LPCTSTR pszKey,
CObject*& pObj);
Parameters
[in] pszKey
Pointer to a null-terminated string that contains the name of the value to read from the registry.
[out] iVal
Reference to an integer variable that receives the value read from the registry key.
[out] dwVal
Reference to a 32-bit double word variable that receives the value read from the registry key.
[out] sVal
Reference to a string variable that receives the value read from the registry key.
[out] scStringList
Reference to a string list variable that receives the value read from the registry key.
[out] scArray
Reference to a string array variable that receives the value read from the registry key.
[out] dwcArray
Reference to a 32-bit double word array variable that receives the value read from the registry key.
[out] wcArray
Reference to a 16-bit word array variable that receives the value read from the registry key.
[out] bcArray
Reference to a byte array variable that receives the value read from the registry key.
[out] lpPoint
Reference to a pointer to a POINT
structure that receives the value read from the registry key.
[out] rect
Reference to a CRect variable that receives the value read from the registry key.
[out] ppData
Pointer to a pointer to data that receives the value read from the registry key.
[out] pBytes
Pointer to an unsigned integer variable. This variable receives the size of the buffer that ppData
points to.
[out] list
Reference to a CObList variable that receives the value read from the registry key.
[out] obj
Reference to a CObject variable that receives the value read from the registry key.
[out] pObj
Reference to a pointer to a CObject
variable that receives the value read from the registry key.
Return Value
Nonzero if successful; otherwise 0.
Remarks
Read
checks for pszKey
as a subkey of m_hKey
.
CSettingsStore::Write
Writes a value to the registry under the open key.
virtual BOOL Write(
LPCTSTR pszKey,
int iVal);
virtual BOOL Write(
LPCTSTR pszKey,
DWORD dwVal);
virtual BOOL Write(
LPCTSTR pszKey,
LPCTSTR pszVal);
virtual BOOL Write(
LPCTSTR pszKey,
CStringList& scStringList);
virtual BOOL Write(
LPCTSTR pszKey,
CByteArray& bcArray);
virtual BOOL Write(
LPCTSTR pszKey,
CStringArray& scArray);
virtual BOOL Write(
LPCTSTR pszKey,
CDWordArray& dwcArray);
virtual BOOL Write(
LPCTSTR pszKey,
CWordArray& wcArray);
virtual BOOL Write(
LPCTSTR pszKey,
const CRect& rect);
virtual BOOL Write(
LPCTSTR pszKey,
LPPOINT& lpPoint);
virtual BOOL Write(
LPCTSTR pszKey,
LPBYTE pData,
UINT nBytes);
virtual BOOL Write(
LPCTSTR pszKey,
CObList& list);
virtual BOOL Write(
LPCTSTR pszKey,
CObject& obj);
virtual BOOL Write(
LPCTSTR pszKey,
CObject* pObj);
Parameters
[in] pszKey
Pointer to a string that contains the name of the value to set.
[in] iVal
Reference to an integer variable that contains the data to store.
[in] dwVal
Reference to a 32-bit double word variable that contains the data to store.
[in] pszVal
Pointer to a null-terminated string variable that contains the data to store.
[in] scStringList
Reference to a CStringList variable that contains the data to store.
[in] bcArray
Reference to a byte array variable that contains the data to store.
[in] scArray
Reference to a string array variable that contains the data to store.
[in] dwcArray
Reference to a 32-bit double word array variable that contains the data to store.
[in] wcArray
Reference to a 16-bit word array variable that contains the data to store.
[in] rect
Reference to a CRect variable that contains the data to store.
[in] lpPoint
Reference to a pointer to a POINT
variable that contains the data to store.
[in] pData
Pointer to a buffer that contains the data to store.
[in] nBytes
Specifies the size, in bytes, of the data to which the pData
parameter points.
[in] list
Reference to a CObList variable that contains the data to store.
[in] obj
Reference to a CObject variable that contains the data to store.
[in] pObj
Pointer to a pointer to a CObject
variable that contains the data to store.
Return Value
TRUE
if successful; otherwise FALSE
.
Remarks
In order to write to the registry, you must set bReadOnly
to a nonzero value when you create a CSettingsStore object. For more information, see CSettingsStore::CSettingsStore.