SCHEME_Create

главная

Функция SCHEME_Create используется для создания нового объекта "схема" (CSchemes). Для избавления от утечки памяти после того, как этот объект станет ненужным, вы должны удалить его при помощи SCHEME_Delete.

CSchemes* WINAPI SCHEME_Create(
  const char *RootKey,
  const char *Key,
  const char *Name,
  const char *Total,
  const char *Title,
  void *original,
  void *copy,
  LOADSCHEME loadscheme,
  SAVESCHEME savescheme,
  EDITSCHEME EditScheme,
  DWORD Reserved
);

Параметры

RootKey
Указатель на строку с путем в хранилище, где хранятся настройки плагина. Его вы получаете в Start (Info->RootKey).
Key
Имя ключа, в котором должны храниться схемы.
Name
Имя переменной, которая хранит название схемы.
Total
Имя переменной, которая хранит количество схем.
Title
Указатель на строку, которая будет заголовком в меню выбора схем.
original, copy
Указатели на объекты, которые хранят настройки определенной схемы. В original загружается схема при выборе ее из меню, а copy используется как временное хранилище для промежуточных операций.
loadscheme, savescheme, EditScheme
Указатели на функции, предназначенные, соответственно, загрузки указанной схемы из хранилища, сохранения схемы в хранилище и редактирования схемы.
Reserved
Зарезервировано для будущего использования. Должно быть 0.

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

Указатель на созданный объект или NULL при неудаче.

Комментарии

При создании объекта запоминаются только переданные указатели, а не сами строки, поэтому вы должны позаботиться сами о том, чтобы все указатели были корректными до тех пор, пока объект не будет уничтожен.

Пример

CSchemes *scheme = SRInfo.SCHEME_Create (PluginRootKey,
                                         "Scheme","Name","Total"
                                         MsgSchemeTitle,
                                         &DFOpt,
                                         &DFOpt1,
                                         LoadConfig, SaveConfig,
                                         editScheme);
Смотрите также:
Сервисные функции | SCHEME_Delete | SCHEME_Menu | SCHEME_Add | LOADSCHEME | SAVESCHEME | EDITSCHEME