Класс CSettingsStore
Создает программу-оболочку для API-функций Windows, обеспечивая объектно-ориентированный интерфейс, который используется для доступа к реестру.
Синтаксис
class CSettingsStore : public CObject
Участники
Открытые конструкторы
Имя | Описание |
---|---|
CSettingsStore::CSettingsStore | Формирует объект CSettingsStore . |
Открытые методы
Имя | Описание |
---|---|
CSettingsStore::Close | Закрывает открытый раздел реестра. |
CSettingsStore::CreateKey | Открывает указанный ключ или создает его, если он не существует. |
CSettingsStore::D eleteKey | Удаляет указанный ключ и все его дочерние элементы. |
CSettingsStore::D eleteValue | Удаляет указанное значение открытого ключа. |
CSettingsStore::Open | Открывает указанный ключ. |
CSettingsStore::Read | Извлекает данные для указанного значения ключа. |
CSettingsStore::Write | Записывает значение в реестр под открытым ключом. |
Замечания
Функции-члены CreateKey
и Open
очень похожи. Если раздел реестра уже существует, CreateKey
и Open
функция выполняется таким же образом. Тем не менее, если раздел реестра не существует, создадит его, CreateKey
в то время как Open
возвращает значение ошибки.
Пример
В следующем примере показано, как использовать методы Open и Read класса CSettingsStore
. Этот фрагмент кода является частью примера демонстрации подсказки инструмента.
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;
}
Иерархия наследования
CSettingsStore
Требования
Заголовок: afxsettingsstore.h
CSettingsStore::Close
Закрывает открытый раздел реестра.
virtual void Close();
Замечания
По умолчанию этот метод вызывается из деструктора класса CSettingsStore.
CSettingsStore::CreateKey
Открывает раздел реестра или создает его, если он не существует.
virtual BOOL CreateKey(LPCTSTR pszPath);
Параметры
pszPath
[in] Указывает имя ключа, который нужно создать или открыть.
Возвращаемое значение
Значение 0 в случае успешного выполнения; в противном случае ненулевое значение.
Замечания
CreateKey
используется m_hKey
в качестве корневого каталога запросов реестра. Он ищет pszPath как вложенный ключ m_hKey
. Если ключ не существует, CreateKey
создает его. В противном случае он открывает ключ. CreateKey
затем задает m_hKey
созданный или открытый ключ.
CSettingsStore::CSettingsStore
Создает объект CSettngsStore
.
CSettingsStore(
BOOL bAdmin,
BOOL bReadOnly);
Параметры
bAdmin
[in] Логический параметр, указывающий, действует ли CSettingsStore
объект в режиме администратора.
bReadOnly
[in] Логический параметр, указывающий, создается ли CSettingsStore
объект в режиме только для чтения.
Замечания
Если для bAdmin задано значение TRUE, m_hKey
переменная-член имеет значение HKEY_LOCAL_MACHINE. Если для bAdmin задано значение FALSE, m_hKey
установлено значение HKEY_CURRENT_USER.
Доступ к безопасности зависит от параметра bReadOnly . Если значение bReadonly равно FALSE, для доступа к безопасности будет задано значение KEY_ALL_ACCESS. Если bReadyOnly имеет значение TRUE, то для доступа к безопасности будет задано сочетание KEY_QUERY_VALUE, KEY_NOTIFY и KEY_ENUMERATE_SUB_KEYS. Дополнительные сведения о доступе к безопасности вместе с реестром см. в разделе "Безопасность и права доступа к разделу реестра".
Деструктор для CSettingsStore
выпусков m_hKey
автоматически.
CSettingsStore::D eleteKey
Удаляет ключ и все дочерние элементы из реестра.
virtual BOOL DeleteKey(
LPCTSTR pszPath,
BOOL bAdmin = FALSE);
Параметры
pszPath
[in] Имя ключа для удаления.
bAdmin
[in] Переключатель, указывающий расположение ключа для удаления.
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
Этот метод завершится ошибкой, если CSettingsStore
объект находится в режиме только для чтения.
Если параметр bAdmin равен нулю, DeleteKey
выполните поиск ключа для удаления в HKEY_CURRENT_USER. Если bAdmin не является ненулевой, DeleteKey
выполняет поиск ключа для удаления в HKEY_LOCAL_MACHINE.
CSettingsStore::D eleteValue
Удаляет значение из m_hKey
.
virtual BOOL DeleteValue(LPCTSTR pszValue);
Параметры
pszValue
[in] Указывает поле значения для удаления.
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
CSettingsStore::Open
Открывает раздел реестра.
virtual BOOL Open(LPCTSTR pszPath);
Параметры
pszPath
[in] Имя раздела реестра.
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
После успешного открытия указанного ключа этот метод задает m_hKey
дескриптор этого ключа.
CSettingsStore::Read
Считывает значение из раздела в реестре.
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);
Параметры
pszKey
[in] Указатель на строку, завершающуюся значением NULL, которая содержит имя значения для чтения из реестра.
iVal
[out] Ссылка на целочисленную переменную, которая получает значение, считываемое из раздела реестра.
dwVal
[out] Ссылка на 32-разрядную переменную word, которая получает значение, считываемое из раздела реестра.
sVal
[out] Ссылка на строковую переменную, которая получает значение, считываемое из раздела реестра.
scStringList
[out] Ссылка на переменную списка строк, которая получает значение, считываемое из раздела реестра.
scArray
[out] Ссылка на переменную массива строк, которая получает значение, считываемое из раздела реестра.
dwcArray
[out] Ссылка на 32-разрядную переменную массива слов, которая получает значение, считываемое из раздела реестра.
wcArray
[out] Ссылка на 16-разрядную переменную массива слов, которая получает значение, считываемое из раздела реестра.
bcArray
[out] Ссылка на переменную массива байтов, которая получает значение, считываемое из раздела реестра.
lpPoint
[out] Ссылка на указатель на POINT
структуру, которая получает значение, считываемое из раздела реестра.
rect
[out] Ссылка на переменную CRect , которая получает значение, считываемое из раздела реестра.
ppData
[out] Указатель на указатель на данные, получающие значение, считываемое из раздела реестра.
pBytes
[out] Указатель на переменную целого числа без знака. Эта переменная получает размер буфера, на который указывает ppData .
список
[out] Ссылка на переменную CObList , которая получает значение, считываемое из раздела реестра.
obj
[out] Ссылка на переменную CObject , которая получает значение, считываемое из раздела реестра.
pObj
[out] Ссылка на указатель CObject
на переменную, которая получает значение, считываемое из раздела реестра.
Возвращаемое значение
Имеет ненулевое значение в случае успешного выполнения, иначе — 0.
Замечания
Read
проверяет наличие pszKey в виде подключа m_hKey
.
CSettingsStore::Write
Записывает значение в реестр под открытым ключом.
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);
Параметры
pszKey
[in] Указатель на строку, содержащую имя заданного значения.
iVal
[in] Ссылка на целочисленную переменную, содержащую данные для хранения.
dwVal
[in] Ссылка на 32-разрядную переменную слова, содержащую данные для хранения.
pszVal
[in] Указатель на переменную строки, завершающую значение NULL, содержащую данные для хранения.
scStringList
[in] Ссылка на переменную CStringList , содержащую данные для хранения.
bcArray
[in] Ссылка на переменную массива байтов, содержащую данные для хранения.
scArray
[in] Ссылка на переменную массива строк, содержащую данные для хранения.
dwcArray
[in] Ссылка на 32-разрядную переменную массива слов, содержащую данные для хранения.
wcArray
[in] Ссылка на 16-разрядную переменную массива слов, содержащую данные для хранения.
rect
[in] Ссылка на переменную CRect , содержащую данные для хранения.
lpPoint
[in] Ссылка на указатель POINT
на переменную, содержащую данные для хранения.
pData
[in] Указатель на буфер, содержащий данные для хранения.
nBytes
[in] Задает размер в байтах данных, к которым указывает точка параметра pData .
список
[in] Ссылка на переменную CObList , содержащую данные для хранения.
obj
[in] Ссылка на переменную CObject , содержащую данные для хранения.
pObj
[in] Указатель на CObject
переменную, содержащую данные для хранения.
Возвращаемое значение
Значение TRUE, если успешно; в противном случае — FALSE.
Замечания
Чтобы записать в реестр, необходимо задать значение bReadOnly ненулевому значению при создании объекта CSettingsStore . Дополнительные сведения см. в разделе CSettingsStore::CSettingsStore.