TPluginStartupInfo

Far Manager

TPluginStartupInfo

The PluginStartupInfo stucture for Delphi:
TPluginStartupInfo = packed record
  StructSize: Integer;
  ModuleName: array[0..Pred(NM)] of char;
  ModuleNumber: integer;
  RootKey: PChar;
  Menu: TFarApiMenu;
  Dialog: TFarApiDialog;
  Message: TFarApiMessage;
  GetMsg: TFarApiGetMsg;
  Control: TFarApiControl;
  SaveScreen: TFarApiSaveScreen;
  RestoreScreen: TFarApiRestoreScreen;
  GetDirList: TFarApiGetDirList;
  GetPluginDirList: TFarApiGetPluginDirList;
  FreeDirList: TFarApiFreeDirList;
  Viewer: TFarApiViewer;
  Editor: TFarApiEditor;
  CmpName: TFarApiCmpName;
  CharTable: TFarApiCharTable;
  Text: TFarApiText;
  EditorControl: TFarApiEditorControl;
  FSF: PFarStandardFunctions;
  ShowHelp: TFarApiShowHelp;
  AdvControl: TFarApiAdvControl;
  InputBox: TFarApiInputBox;
  DialogEx: TFarApiDialogEx;
  SendDlgMessage: TFarApiSendDlgMessage;
  DefDlgProc: TFarApiDefDlgProc;
  Reserved1: DWORD;
  Reserved2: DWORD;
end;
PPluginStartupInfo = ^TPluginStartupInfo;

Where:

TFarApiMenu = function(
  PluginNumber: integer;
  X, Y: integer;
  MaxHeight: integer;
  Flags: DWORD;
  Title: PChar;
  Bottom: PChar;
  HelpTopic: PChar;
  BreakKeys: PIntArr;
  BreakCode: PIntArr;
  Items: PFarMenuItemArr;
  ItemsNumber: integer): integer; stdcall;

TFarApiDialog = function(
  PluginNumber: integer;
  X1, Y1: integer;
  X2, Y2: integer;
  HelpTopic: PChar;
  Items: PFarDialogItemArr;
  ItemsNumber: integer): integer; stdcall;

TFarApiMessage = function(
  PluginNumber: integer;
  Flags: DWORD;
  HelpTopic: PChar;
  Items: PPCharArr;
  ItemsNumber: integer;
  ButtonsNumber: integer): integer; stdcall;

TFarApiGetMsg = function(
  PluginNumber: integer;
  MsgId: integer): PChar; stdcall;

TFarApiControl = function(
  hPlugin: THandle;
  Command: integer;
  Param: pointer): integer; stdcall;

TFarApiSaveScreen = function(
  X1, Y1: integer;
  X2, Y2: integer): THandle; stdcall;

TFarApiRestoreScreen = procedure(
  hScreen: THandle); stdcall;

TFarApiGetDirList = function(
  Dir: PChar;
  var PanelItems: PPluginPanelItemArr;
  var ItemsNumber: integer): integer; stdcall;

TFarApiGetPluginDirList = function(
  PluginNumber: integer;
  hPlugin: THandle;
  Dir: PChar;
  var PanelItems: PPluginPanelItemArr;
  var ItemsNumber: integer): integer; stdcall;

TFarApiFreeDirList = procedure(
  PanelItems: PPluginPanelItemArr); stdcall;

TFarApiViewer = function(
  FileName: PChar;
  Title: PChar;
  X1, Y1: integer;
  X2, Y2: integer;
  Flags: DWORD): integer; stdcall;

TFarApiEditor = function(
  FileName: PChar;
  Title: PChar;
  X1, Y1: integer;
  X2, Y2: integer;
  Flags: DWORD;
  StartLine: integer;
  StartChar: integer): integer; stdcall;

TFarApiCmpName = function(
  Pattern: PChar;
  FileName: PChar;
  SkipPath: integer): integer; stdcall;

TFarApiCharTable = function(
  Command: integer;
  Buffer: PChar;
  BufferSize: integer): integer; stdcall;

TFarApiText = procedure(
  X, Y: integer;
  Color: integer;
  Str: PChar); stdcall;

TFarApiEditorControl = function(
  Command: integer;
  Param: pointer): integer; stdcall;

TFarApiAdvControl = function(
  ModuleNumber: integer;
  Command: integer;
  Param: pointer): integer; stdcall;

TFarApiDialogEx = function(
  PluginNumber: integer;
  X1, Y1: integer;
  X2, Y2: integer;
  HelpTopic: PChar;
  Items: PFarDialogItemArr;
  ItemsNumber: integer;
  Reserved: DWORD;
  Flags: DWORD;
  DlgProc: TFarApiWndProc;
  Param: integer): integer; stdcall;

TFarApiSendDlgMessage = function(
  hDlg: THandle;
  Msg: integer;
  Param1: integer;
  Param2: integer): integer; stdcall;

TFarApiDefDlgProc = function(
  hDlg: THandle;
  Msg: integer;
  Param1: integer;
  Param2: integer): integer; stdcall;

TFarApiInputBox = function(
  Title: PChar;
  SubTitle: PChar;
  HistoryName: PChar;
  SrcText: PChar;
  DstText: PChar;
  DstLength: integer;
  HelpTopic: PChar;
  Flags: DWORD): integer; stdcall;

TFarApiShowHelp = function(
  ModuleName: PChar;
  HelpTopic: PChar;
  Flags: DWORD): BOOL; stdcall;