# SettingsControl

Функция `SettingsControl` позволяет управлять загрузкой настроек из базы данных плагина или Far Manager, а также сохранением настроек в базу данных плагина.

Внимание!

- В обязательном порядке используйте эту функцию для портабельности плагина, вместо работы с реестром!

    intptr_t WINAPI SettingsControl(
      HANDLE hHandle,
      enum FAR_SETTINGS_CONTROL_COMMANDS Command,
      intptr_t Param1,
      void *Param2
    );

### Параметры

hHandle
Смотрите описание `Command`.
Command
Может быть одним из следующих значений (перечисление FAR_SETTINGS_CONTROL_COMMANDS):

Команда | Описание
--- | ---
SCTL_CREATE | Создаёт объект "настройки" для заданного плагина. `hHandle` должен быть установлен в значение `INVALID_HANDLE_VALUE`. `Param1` указывает способ хранения настройки (перечисление FAR_PLUGIN_SETTINGS_LOCATION):
Константа | Описание
--- | ---
PSL_ROAMING | в перемещаемом профиле
PSL_LOCAL | в локальном профиле
`Param2` указатель на структуру FarSettingsCreate (поле `FarSettingsCreate.Guid` должно быть заполнено). Функция при неудаче вернёт `FALSE`.
SCTL_FREE | Удалить объект "настройки" для заданного плагина. `hHandle` описатель настроек, созданный по команде `SCTL_CREATE` (поле `FarSettingsCreate.Handle`). `Param1` и `Param2` игнорируются. Функция возвращает `TRUE`.
SCTL_SET | Сохранить настройки. `hHandle` описатель настроек, созданный по команде `SCTL_CREATE` (поле `FarSettingsCreate.Handle`). `Param1` игнорируется. `Param2` указатель на структуру FarSettingsItem. Функция при неудаче вернёт `FALSE`.
SCTL_GET | Загрузить настройки. `hHandle` описатель настроек, созданный по команде `SCTL_CREATE` (поле `FarSettingsCreate.Handle`). `Param1` игнорируется. `Param2` указатель на структуру FarSettingsItem. Функция при неудаче вернёт `FALSE`.
SCTL_CREATESUBKEY | Открыть ключ настроек. Если такого ключа нет, то создать его. `hHandle` описатель настроек, созданный по команде `SCTL_CREATE` (поле `FarSettingsCreate.Handle`). `Param1` игнорируется. `Param2` указатель на структуру FarSettingsValue. Функция возвращает уровень вложенности ключа (!! требуется уточнение !!).
SCTL_OPENSUBKEY | Открыть существующий ключ настроек. `hHandle` описатель настроек, созданный по команде `SCTL_CREATE` (поле `FarSettingsCreate.Handle`). `Param1` игнорируется. `Param2` указатель на структуру FarSettingsValue. Функция возвращает уровень вложенности ключа (!! требуется уточнение !!).
SCTL_ENUM | Получить список подключей и значений. `hHandle` описатель настроек, созданный по команде `SCTL_CREATE` (поле `FarSettingsCreate.Handle`). `Param1` игнорируется. `Param2` указатель на структуру FarSettingsEnum. Функция при неудаче вернёт `FALSE`.
SCTL_DELETE | Удалить подключ или значение. `hHandle` описатель настроек, созданный по команде `SCTL_CREATE` (поле `FarSettingsCreate.Handle`). `Param1` игнорируется. `Param2` - указатель на структуру FarSettingsValue. Функция при неудаче вернёт `FALSE`.

Param1
Указывает на `Параметр1` команды. Смотрите описание `Command`.
Param2
Указывает на `Параметр2` команды. Смотрите описание `Command`.

### Возвращаемое значение

Смотрите описание `Command`.

### Пример

Смотрите также:
PanelControl