На этом шаге мы приведем перечень функций, предназначенных для работы с реестром.
Для задания местонахождения параметров профиля пользователя AppWizard добавляет следующую строку в тело функции InitInstance() объекта приложения:
SetRegistryKey(_T("Local AppWizard-Generated Applications"));
CWinApp::SetRegistryKey() вызывается с параметром, задающим имя раздела, где будут храниться параметры Вашего приложения. Это подраздел помещается в раздел HKEY_CURRENT_USER\Software. Обязательно замените задаваемое по умолчанию имя (Local АрpWizard-Generated Applications) именем раздела, куда Вы поместите параметры профиля пользователя всех своих приложений. Как правило, для этих целей выбирают название компании, разрабатывающей приложение.
Зададим раздел реестра для хранения профиля пользователя приложения МуАрр.
SetRegistryKey(_T("Local AppWizard-Generated Applications"));
Рис.1. Найденный фрагмент
SetRegistryKey (_T ("MyCompany"));
Выполните описанные ниже действия, чтобы проверить создание раздела реестра.
HKEY_CURRENT_USER\Software\MyCompany\MyApp\Settings
Рис.2. Созданный раздел
Для записи профиля пользователя в MFC-приложениях применяются функции управления профилем. Все они являются функциями-членами класса CWinApp:
Эти функции сохраняют и восстанавливают строковые и целочисленные значения параметров реестра в разделе Вашего приложения. В качестве первых двух аргументов в эти функции передается имя секции (подраздела, вложенного в раздел профиля) и имя параметра. Если раздел или параметр до этого не существовал, он будет создан.
WriteProfileString() создает параметр типа REG_SZ, a WriteProfileInt() - типа REG_DWORD. Обе эти функции возвращают булево значение, указывающее на успех или неудачу операции записи. На месте третьего аргумента в обе функции передается значение нового параметра.
Например, строка
WriteProfileString("Settings", "User Name", "Julian");
Функции GetProfileString() и GetProfileInt() возвращают значение данного параметра реестра. Обе они принимают в качестве третьего аргумента значение по умолчанию, которое будет возвращено, если запрашиваемый параметр не существует.
На следующем шаге мы рассмотрим управление профилем пользователя.