PluginStartupInfo

Структура PluginStartupInfo используется в функции SetStartupInfo для передачи плагину различной важной информации.
struct PluginStartupInfo
{
  int StructSize;

  char ModuleName[NM];
  int ModuleNumber;
  const char *RootKey;
  FARAPIMENU             Menu;
  FARAPIDIALOG           Dialog;
  FARAPIMESSAGE          Message;
  FARAPIGETMSG           GetMsg;
  FARAPICONTROL          Control;
  FARAPISAVESCREEN       SaveScreen;
  FARAPIRESTORESCREEN    RestoreScreen;
  FARAPIGETDIRLIST       GetDirList;
  FARAPIGETPLUGINDIRLIST GetPluginDirList;
  FARAPIFREEDIRLIST      FreeDirList;

  // FAR >= 1.50
  FARAPIVIEWER           Viewer;
  FARAPIEDITOR           Editor;
  FARAPICMPNAME          CmpName;

  // FAR >= 1.52
  FARAPICHARTABLE        CharTable;
  FARAPITEXT             Text;

  // FAR >= 1.60
  FARAPIEDITORCONTROL    EditorControl;

  // FAR >= 1.70
  FARSTANDARDFUNCTIONS  *FSF;

  FARAPISHOWHELP         ShowHelp;
  FARAPIADVCONTROL       AdvControl;
  FARAPIINPUTBOX         InputBox;
  FARAPIDIALOGEX         DialogEx;
  FARAPISENDDLGMESSAGE   SendDlgMessage;
  FARAPIDEFDLGPROC       DefDlgProc;
  DWORD_PTR              Reserved;
  FARAPIVIEWERCONTROL    ViewerControl;
};

Элементы

StructSize
Размер структуры. Если в будущем будут добавлены новые поля, это поле позволит определить это.
ModuleName
Полное имя плагина с путем.
ModuleNumber
Номер плагина. Передается как параметр в некоторых функциях.
RootKey
Ключ Реестра, где плагин может сохранять свои параметры. Одинаков и для HKEY_CURRENT_USER и для HKEY_LOCAL_MACHINE. Обычно это "Software\Far\Plugins", но вы не должны указывать эту строку непосредственно, т.к. она может быть изменена или может стать опциональной в будущем. Например, если FAR запущен с ключем '/u user1', то RootKey соответственно будет содержать строку "Software\Far\Users\user1\Plugins".

Не сохраняйте параметры прямо в RootKey, создайте здесь свой собственный подключ.

Menu
Адрес функции Menu.
Dialog
Адрес функции Dialog.
Message
Адрес функции Message.
GetMsg
Адрес функции GetMsg.
Control
Адрес функции Control.
SaveScreen
Адрес функции SaveScreen.
RestoreScreen
Адрес функции RestoreScreen.
GetDirList
Адрес функции GetDirList.
GetPluginDirList
Адрес функции GetPluginDirList.
FreeDirList
Адрес функции FreeDirList.
Viewer
Адрес функции Viewer.
Editor
Адрес функции Editor.
CmpName
Адрес функции CmpName.
CharTable
Адрес функции CharTable.
Text
Адрес функции Text.
EditorControl
Адрес функции EditorControl.
FSF
Указатель на структуру FarStandardFunctions с адресами полезных функций из far.exe.
ShowHelp
Адрес функции ShowHelp.
AdvControl
Адрес функции AdvControl.
InputBox
Адрес функции InputBox.
DialogEx
Адрес функции DialogEx.
SendDlgMessage
Адрес функции SendDlgMessage.
DefDlgProc
Адрес функции DefDlgProc.
DefDlgProc
Адрес функции ViewerControl.

Замечания

Версии FAR Manager: Таким образом, если вы собираетесь использовать функции Viewer, Editor или любую другую после нее, вы должны сначала проверить поле StructSize, чтобы гарантировать, что эти функции обеспечиваются текущей версией FAR'а.
Смотрите также:
структуры | TPluginStartupInfo