#pragma once namespace oldfar { #pragma warning(push) #pragma warning(disable:6244) #ifndef _WIN64 #ifdef __GNUC__ #pragma pack(2) #else #pragma pack(push,2) #endif #endif const int NM=260; enum FARMESSAGEFLAGS { FMSG_WARNING = 0x00000001, FMSG_ERRORTYPE = 0x00000002, FMSG_KEEPBACKGROUND = 0x00000004, FMSG_DOWN = 0x00000008, FMSG_LEFTALIGN = 0x00000010, FMSG_ALLINONE = 0x00000020, FMSG_MB_OK = 0x00010000, FMSG_MB_OKCANCEL = 0x00020000, FMSG_MB_ABORTRETRYIGNORE = 0x00030000, FMSG_MB_YESNO = 0x00040000, FMSG_MB_YESNOCANCEL = 0x00050000, FMSG_MB_RETRYCANCEL = 0x00060000, }; typedef int (WINAPI *FARAPIMESSAGE)( INT_PTR PluginNumber, DWORD Flags, const char *HelpTopic, const char * const *Items, int ItemsNumber, int ButtonsNumber ); enum DialogItemTypes { DI_TEXT, DI_VTEXT, DI_SINGLEBOX, DI_DOUBLEBOX, DI_EDIT, DI_PSWEDIT, DI_FIXEDIT, DI_BUTTON, DI_CHECKBOX, DI_RADIOBUTTON, DI_COMBOBOX, DI_LISTBOX, DI_MEMOEDIT, DI_USERCONTROL=255, }; enum FarDialogItemFlags { DIF_COLORMASK = 0x000000ffUL, DIF_SETCOLOR = 0x00000100UL, DIF_BOXCOLOR = 0x00000200UL, DIF_GROUP = 0x00000400UL, DIF_LEFTTEXT = 0x00000800UL, DIF_MOVESELECT = 0x00001000UL, DIF_SHOWAMPERSAND = 0x00002000UL, DIF_CENTERGROUP = 0x00004000UL, DIF_NOBRACKETS = 0x00008000UL, DIF_MANUALADDHISTORY = 0x00008000UL, DIF_SEPARATOR = 0x00010000UL, DIF_VAREDIT = 0x00010000UL, DIF_SEPARATOR2 = 0x00020000UL, DIF_EDITOR = 0x00020000UL, DIF_LISTNOAMPERSAND = 0x00020000UL, DIF_LISTNOBOX = 0x00040000UL, DIF_HISTORY = 0x00040000UL, DIF_BTNNOCLOSE = 0x00040000UL, DIF_CENTERTEXT = 0x00040000UL, DIF_NOTCVTUSERCONTROL = 0x00040000UL, DIF_SEPARATORUSER = 0x00080000UL, DIF_EDITEXPAND = 0x00080000UL, DIF_DROPDOWNLIST = 0x00100000UL, DIF_USELASTHISTORY = 0x00200000UL, DIF_MASKEDIT = 0x00400000UL, DIF_SELECTONENTRY = 0x00800000UL, DIF_3STATE = 0x00800000UL, DIF_EDITPATH = 0x01000000UL, DIF_LISTWRAPMODE = 0x01000000UL, DIF_LISTAUTOHIGHLIGHT = 0x02000000UL, DIF_LISTNOCLOSE = 0x04000000UL, DIF_AUTOMATION = 0x08000000UL, DIF_HIDDEN = 0x10000000UL, DIF_READONLY = 0x20000000UL, DIF_NOFOCUS = 0x40000000UL, DIF_DISABLE = 0x80000000UL, }; enum FARMESSAGE { DM_FIRST=0, DM_CLOSE, DM_ENABLE, DM_ENABLEREDRAW, DM_GETDLGDATA, DM_GETDLGITEM, DM_GETDLGRECT, DM_GETTEXT, DM_GETTEXTLENGTH, DM_KEY, DM_MOVEDIALOG, DM_SETDLGDATA, DM_SETDLGITEM, DM_SETFOCUS, DM_REDRAW, DM_SETREDRAW=DM_REDRAW, DM_SETTEXT, DM_SETMAXTEXTLENGTH, DM_SETTEXTLENGTH=DM_SETMAXTEXTLENGTH, DM_SHOWDIALOG, DM_GETFOCUS, DM_GETCURSORPOS, DM_SETCURSORPOS, DM_GETTEXTPTR, DM_SETTEXTPTR, DM_SHOWITEM, DM_ADDHISTORY, DM_GETCHECK, DM_SETCHECK, DM_SET3STATE, DM_LISTSORT, DM_LISTGETITEM, DM_LISTGETCURPOS, DM_LISTSETCURPOS, DM_LISTDELETE, DM_LISTADD, DM_LISTADDSTR, DM_LISTUPDATE, DM_LISTINSERT, DM_LISTFINDSTRING, DM_LISTINFO, DM_LISTGETDATA, DM_LISTSETDATA, DM_LISTSETTITLES, DM_LISTGETTITLES, DM_RESIZEDIALOG, DM_SETITEMPOSITION, DM_GETDROPDOWNOPENED, DM_SETDROPDOWNOPENED, DM_SETHISTORY, DM_GETITEMPOSITION, DM_SETMOUSEEVENTNOTIFY, DM_EDITUNCHANGEDFLAG, DM_GETITEMDATA, DM_SETITEMDATA, DM_LISTSET, DM_LISTSETMOUSEREACTION, DM_GETCURSORSIZE, DM_SETCURSORSIZE, DM_LISTGETDATASIZE, DM_GETSELECTION, DM_SETSELECTION, DN_LISTHOTKEY, DM_GETEDITPOSITION, DM_SETEDITPOSITION, DM_SETCOMBOBOXEVENT, DM_GETCOMBOBOXEVENT, DN_FIRST=0x1000, DN_BTNCLICK, DN_CTLCOLORDIALOG, DN_CTLCOLORDLGITEM, DN_CTLCOLORDLGLIST, DN_DRAWDIALOG, DN_DRAWDLGITEM, DN_EDITCHANGE, DN_ENTERIDLE, DN_GOTFOCUS, DN_HELP, DN_HOTKEY, DN_INITDIALOG, DN_KILLFOCUS, DN_LISTCHANGE, DN_MOUSECLICK, DN_DRAGGED, DN_RESIZECONSOLE, DN_MOUSEEVENT, DN_DRAWDIALOGDONE, DN_CLOSE=DM_CLOSE, DN_KEY=DM_KEY, DM_USER=0x4000, DM_KILLSAVESCREEN=DN_FIRST-1, DM_ALLKEYMODE=DN_FIRST-2, DN_ACTIVATEAPP=DM_USER-1, }; enum FARCHECKEDSTATE { BSTATE_UNCHECKED = 0, BSTATE_CHECKED = 1, BSTATE_3STATE = 2, BSTATE_TOGGLE = 3, }; enum FARLISTMOUSEREACTIONTYPE { LMRT_ONLYFOCUS = 0, LMRT_ALWAYS = 1, LMRT_NEVER = 2, }; enum LISTITEMFLAGS { LIF_SELECTED = 0x00010000UL, LIF_CHECKED = 0x00020000UL, LIF_SEPARATOR = 0x00040000UL, LIF_DISABLE = 0x00080000UL, LIF_GRAYED = 0x00100000UL, LIF_HIDDEN = 0x00200000UL, LIF_USETEXTPTR = 0x40000000UL, LIF_DELETEUSERDATA = 0x80000000UL, }; struct FarListItem { DWORD Flags; char Text[128]; DWORD Reserved[3]; }; struct FarListUpdate { int Index; struct FarListItem Item; }; struct FarListInsert { int Index; struct FarListItem Item; }; struct FarListGetItem { int ItemIndex; struct FarListItem Item; }; struct FarListPos { int SelectPos; int TopPos; }; enum FARLISTFINDFLAGS { LIFIND_EXACTMATCH = 0x00000001, }; struct FarListFind { int StartIndex; const char *Pattern; DWORD Flags; DWORD Reserved; }; struct FarListDelete { int StartIndex; int Count; }; enum FARLISTINFOFLAGS { LINFO_SHOWNOBOX = 0x00000400, LINFO_AUTOHIGHLIGHT = 0x00000800, LINFO_REVERSEHIGHLIGHT = 0x00001000, LINFO_WRAPMODE = 0x00008000, LINFO_SHOWAMPERSAND = 0x00010000, }; struct FarListInfo { DWORD Flags; int ItemsNumber; int SelectPos; int TopPos; int MaxHeight; int MaxLength; DWORD Reserved[6]; }; struct FarListItemData { int Index; int DataSize; void *Data; DWORD Reserved; }; struct FarList { int ItemsNumber; struct FarListItem *Items; }; struct FarListTitles { int TitleLen; char *Title; int BottomLen; char *Bottom; }; struct FarListColors { DWORD Flags; DWORD Reserved; int ColorCount; LPBYTE Colors; }; struct FarDialogItem { int Type; int X1,Y1,X2,Y2; int Focus; union { DWORD_PTR Reserved; int Selected; const char *History; const char *Mask; struct FarList *ListItems; int ListPos; CHAR_INFO *VBuf; }; DWORD Flags; int DefaultButton; union { char Data[512]; struct { DWORD PtrFlags; int PtrLength; char *PtrData; char PtrTail[1]; } Ptr; }; }; struct FarDialogItemData { int PtrLength; char *PtrData; }; struct FarDialogEvent { HANDLE hDlg; int Msg; int Param1; void* Param2; LONG_PTR Result; }; struct OpenDlgPluginData { int ItemNumber; HANDLE hDlg; }; enum FARDIALOGFLAGS { FDLG_WARNING = 0x00000001, FDLG_SMALLDIALOG = 0x00000002, FDLG_NODRAWSHADOW = 0x00000004, FDLG_NODRAWPANEL = 0x00000008, FDLG_NONMODAL = 0x00000010, }; typedef LONG_PTR(WINAPI *FARWINDOWPROC)( HANDLE hDlg, int Msg, int Param1, void* Param2 ); typedef int (WINAPI *FARAPIDIALOG)( INT_PTR PluginNumber, int X1, int Y1, int X2, int Y2, const char *HelpTopic, struct FarDialogItem *Item, int ItemsNumber ); typedef int (WINAPI *FARAPIDIALOGEX)( INT_PTR PluginNumber, int X1, int Y1, int X2, int Y2, const char *HelpTopic, struct FarDialogItem *Item, int ItemsNumber, DWORD Reserved, DWORD Flags, FARWINDOWPROC DlgProc, void* Param ); struct FarMenuItem { char Text[128]; int Selected; int Checked; int Separator; }; enum MENUITEMFLAGS { MIF_SELECTED = 0x00010000UL, MIF_CHECKED = 0x00020000UL, MIF_SEPARATOR = 0x00040000UL, MIF_DISABLE = 0x00080000UL, MIF_GRAYED = 0x00100000UL, MIF_HIDDEN = 0x00200000UL, MIF_USETEXTPTR = 0x80000000UL, }; struct FarMenuItemEx { DWORD Flags; union { char Text[128]; const char *TextPtr; }; DWORD AccelKey; DWORD Reserved; DWORD_PTR UserData; }; enum FARMENUFLAGS { FMENU_SHOWAMPERSAND = 0x00000001, FMENU_WRAPMODE = 0x00000002, FMENU_AUTOHIGHLIGHT = 0x00000004, FMENU_REVERSEAUTOHIGHLIGHT = 0x00000008, FMENU_SHOWNOBOX = 0x00000010, FMENU_USEEXT = 0x00000020, FMENU_CHANGECONSOLETITLE = 0x00000040, }; typedef int (WINAPI *FARAPIMENU)( INT_PTR PluginNumber, int X, int Y, int MaxHeight, DWORD Flags, const char *Title, const char *Bottom, const char *HelpTopic, const int *BreakKeys, int *BreakCode, const struct FarMenuItem *Item, int ItemsNumber ); enum PLUGINPANELITEMFLAGS { PPIF_PROCESSDESCR = 0x80000000, PPIF_SELECTED = 0x40000000, PPIF_USERDATA = 0x20000000, }; struct FAR_FIND_DATA { DWORD dwFileAttributes; FILETIME ftCreationTime; FILETIME ftLastAccessTime; FILETIME ftLastWriteTime; DWORD nFileSizeHigh; DWORD nFileSizeLow; DWORD dwReserved0; DWORD dwReserved1; CHAR cFileName[MAX_PATH]; CHAR cAlternateFileName[14]; }; struct PluginPanelItem { FAR_FIND_DATA FindData; DWORD PackSizeHigh; DWORD PackSize; DWORD Flags; DWORD NumberOfLinks; char *Description; char *Owner; char **CustomColumnData; int CustomColumnNumber; DWORD_PTR UserData; DWORD CRC32; DWORD_PTR Reserved[2]; }; enum PANELINFOFLAGS { PFLAGS_SHOWHIDDEN = 0x00000001, PFLAGS_HIGHLIGHT = 0x00000002, PFLAGS_REVERSESORTORDER = 0x00000004, PFLAGS_USESORTGROUPS = 0x00000008, PFLAGS_SELECTEDFIRST = 0x00000010, PFLAGS_REALNAMES = 0x00000020, PFLAGS_NUMERICSORT = 0x00000040, PFLAGS_PANELLEFT = 0x00000080, }; enum PANELINFOTYPE { PTYPE_FILEPANEL, PTYPE_TREEPANEL, PTYPE_QVIEWPANEL, PTYPE_INFOPANEL }; struct PanelInfo { int PanelType; int Plugin; RECT PanelRect; struct PluginPanelItem *PanelItems; int ItemsNumber; struct PluginPanelItem *SelectedItems; int SelectedItemsNumber; int CurrentItem; int TopPanelItem; int Visible; int Focus; int ViewMode; char ColumnTypes[80]; char ColumnWidths[80]; char CurDir[NM]; int ShortNames; int SortMode; DWORD Flags; DWORD Reserved; }; struct PanelRedrawInfo { int CurrentItem; int TopPanelItem; }; struct CmdLineSelect { int SelStart; int SelEnd; }; enum FILE_CONTROL_COMMANDS { FCTL_CLOSEPLUGIN, FCTL_GETPANELINFO, FCTL_GETANOTHERPANELINFO, FCTL_UPDATEPANEL, FCTL_UPDATEANOTHERPANEL, FCTL_REDRAWPANEL, FCTL_REDRAWANOTHERPANEL, FCTL_SETANOTHERPANELDIR, FCTL_GETCMDLINE, FCTL_SETCMDLINE, FCTL_SETSELECTION, FCTL_SETANOTHERSELECTION, FCTL_SETVIEWMODE, FCTL_SETANOTHERVIEWMODE, FCTL_INSERTCMDLINE, FCTL_SETUSERSCREEN, FCTL_SETPANELDIR, FCTL_SETCMDLINEPOS, FCTL_GETCMDLINEPOS, FCTL_SETSORTMODE, FCTL_SETANOTHERSORTMODE, FCTL_SETSORTORDER, FCTL_SETANOTHERSORTORDER, FCTL_GETCMDLINESELECTEDTEXT, FCTL_SETCMDLINESELECTION, FCTL_GETCMDLINESELECTION, FCTL_GETPANELSHORTINFO, FCTL_GETANOTHERPANELSHORTINFO, FCTL_CHECKPANELSEXIST, FCTL_SETNUMERICSORT, FCTL_SETANOTHERNUMERICSORT, FCTL_GETUSERSCREEN, }; typedef int (WINAPI *FARAPICONTROL)( HANDLE hPlugin, int Command, void *Param ); typedef void (WINAPI *FARAPITEXT)( int X, int Y, int Color, const char *Str ); typedef HANDLE(WINAPI *FARAPISAVESCREEN)(int X1, int Y1, int X2, int Y2); typedef void (WINAPI *FARAPIRESTORESCREEN)(HANDLE hScreen); typedef int (WINAPI *FARAPIGETDIRLIST)( const char *Dir, struct PluginPanelItem **pPanelItem, int *pItemsNumber ); typedef int (WINAPI *FARAPIGETPLUGINDIRLIST)( INT_PTR PluginNumber, HANDLE hPlugin, const char *Dir, struct PluginPanelItem **pPanelItem, int *pItemsNumber ); typedef void (WINAPI *FARAPIFREEDIRLIST)(const struct PluginPanelItem *PanelItem); enum VIEWER_FLAGS { VF_NONMODAL = 0x00000001, VF_DELETEONCLOSE = 0x00000002, VF_ENABLE_F6 = 0x00000004, VF_DISABLEHISTORY = 0x00000008, VF_IMMEDIATERETURN = 0x00000100, VF_DELETEONLYFILEONCLOSE = 0x00000200, }; typedef int (WINAPI *FARAPIVIEWER)( const char *FileName, const char *Title, int X1, int Y1, int X2, int Y2, DWORD Flags ); enum EDITOR_FLAGS { EF_NONMODAL = 0x00000001, EF_CREATENEW = 0x00000002, EF_ENABLE_F6 = 0x00000004, EF_DISABLEHISTORY = 0x00000008, EF_DELETEONCLOSE = 0x00000010, EF_USEEXISTING = 0x00000020, EF_BREAKIFOPEN = 0x00000040, EF_NEWIFOPEN = 0x00000080, EF_IMMEDIATERETURN = 0x00000100, EF_DELETEONLYFILEONCLOSE = 0x00000200, EF_SERVICEREGION = 0x00001000, }; enum EDITOR_EXITCODE { EEC_OPEN_ERROR = 0, EEC_MODIFIED = 1, EEC_NOT_MODIFIED = 2, EEC_LOADING_INTERRUPTED = 3, EEC_OPENED_EXISTING = 4, EEC_ALREADY_EXISTS = 5, EEC_OPEN_NEWINSTANCE = 6, EEC_RELOAD = 7, }; typedef int (WINAPI *FARAPIEDITOR)( const char *FileName, const char *Title, int X1, int Y1, int X2, int Y2, DWORD Flags, int StartLine, int StartChar ); typedef int (WINAPI *FARAPICMPNAME)( const char *Pattern, const char *String, int SkipPath ); enum FARCHARTABLE_COMMAND { FCT_DETECT=0x40000000, }; struct CharTableSet { unsigned char DecodeTable[256]; unsigned char EncodeTable[256]; unsigned char UpperTable[256]; unsigned char LowerTable[256]; char TableName[128]; }; typedef int (WINAPI *FARAPICHARTABLE)( int Command, char *Buffer, int BufferSize ); typedef const char*(WINAPI *FARAPIGETMSG)( INT_PTR PluginNumber, int MsgId ); enum FarHelpFlags { FHELP_NOSHOWERROR = 0x80000000, FHELP_SELFHELP = 0x00000000, FHELP_FARHELP = 0x00000001, FHELP_CUSTOMFILE = 0x00000002, FHELP_CUSTOMPATH = 0x00000004, FHELP_USECONTENTS = 0x40000000, }; typedef BOOL (WINAPI *FARAPISHOWHELP)( const char *ModuleName, const char *Topic, DWORD Flags ); enum ADVANCED_CONTROL_COMMANDS { ACTL_GETFARVERSION = 0, ACTL_CONSOLEMODE = 1, ACTL_GETSYSWORDDIV = 2, ACTL_WAITKEY = 3, ACTL_GETCOLOR = 4, ACTL_GETARRAYCOLOR = 5, ACTL_EJECTMEDIA = 6, ACTL_KEYMACRO = 7, ACTL_POSTKEYSEQUENCE = 8, ACTL_GETWINDOWINFO = 9, ACTL_GETWINDOWCOUNT = 10, ACTL_SETCURRENTWINDOW = 11, ACTL_COMMIT = 12, ACTL_GETFARHWND = 13, ACTL_GETSYSTEMSETTINGS = 14, ACTL_GETPANELSETTINGS = 15, ACTL_GETINTERFACESETTINGS = 16, ACTL_GETCONFIRMATIONS = 17, ACTL_GETDESCSETTINGS = 18, ACTL_SETARRAYCOLOR = 19, ACTL_GETWCHARMODE = 20, ACTL_GETPLUGINMAXREADDATA = 21, ACTL_GETDIALOGSETTINGS = 22, ACTL_GETSHORTWINDOWINFO = 23, ACTL_REMOVEMEDIA = 24, ACTL_GETMEDIATYPE = 25, ACTL_REDRAWALL = 27, }; enum FarSystemSettings { FSS_CLEARROATTRIBUTE = 0x00000001, FSS_DELETETORECYCLEBIN = 0x00000002, FSS_USESYSTEMCOPYROUTINE = 0x00000004, FSS_COPYFILESOPENEDFORWRITING = 0x00000008, FSS_CREATEFOLDERSINUPPERCASE = 0x00000010, FSS_SAVECOMMANDSHISTORY = 0x00000020, FSS_SAVEFOLDERSHISTORY = 0x00000040, FSS_SAVEVIEWANDEDITHISTORY = 0x00000080, FSS_USEWINDOWSREGISTEREDTYPES = 0x00000100, FSS_AUTOSAVESETUP = 0x00000200, FSS_SCANSYMLINK = 0x00000400, }; enum FarPanelSettings { FPS_SHOWHIDDENANDSYSTEMFILES = 0x00000001, FPS_HIGHLIGHTFILES = 0x00000002, FPS_AUTOCHANGEFOLDER = 0x00000004, FPS_SELECTFOLDERS = 0x00000008, FPS_ALLOWREVERSESORTMODES = 0x00000010, FPS_SHOWCOLUMNTITLES = 0x00000020, FPS_SHOWSTATUSLINE = 0x00000040, FPS_SHOWFILESTOTALINFORMATION = 0x00000080, FPS_SHOWFREESIZE = 0x00000100, FPS_SHOWSCROLLBAR = 0x00000200, FPS_SHOWBACKGROUNDSCREENSNUMBER = 0x00000400, FPS_SHOWSORTMODELETTER = 0x00000800, }; enum FarDialogSettings { FDIS_HISTORYINDIALOGEDITCONTROLS = 0x00000001, FDIS_PERSISTENTBLOCKSINEDITCONTROLS = 0x00000002, FDIS_AUTOCOMPLETEININPUTLINES = 0x00000004, FDIS_BSDELETEUNCHANGEDTEXT = 0x00000008, }; enum FarInterfaceSettings { FIS_CLOCKINPANELS = 0x00000001, FIS_CLOCKINVIEWERANDEDITOR = 0x00000002, FIS_MOUSE = 0x00000004, FIS_SHOWKEYBAR = 0x00000008, FIS_ALWAYSSHOWMENUBAR = 0x00000010, FIS_USERIGHTALTASALTGR = 0x00000080, FIS_SHOWTOTALCOPYPROGRESSINDICATOR = 0x00000100, FIS_SHOWCOPYINGTIMEINFO = 0x00000200, FIS_USECTRLPGUPTOCHANGEDRIVE = 0x00000800, }; enum FarConfirmationsSettings { FCS_COPYOVERWRITE = 0x00000001, FCS_MOVEOVERWRITE = 0x00000002, FCS_DRAGANDDROP = 0x00000004, FCS_DELETE = 0x00000008, FCS_DELETENONEMPTYFOLDERS = 0x00000010, FCS_INTERRUPTOPERATION = 0x00000020, FCS_DISCONNECTNETWORKDRIVE = 0x00000040, FCS_RELOADEDITEDFILE = 0x00000080, FCS_CLEARHISTORYLIST = 0x00000100, FCS_EXIT = 0x00000200, }; enum FarDescriptionSettings { FDS_UPDATEALWAYS = 0x00000001, FDS_UPDATEIFDISPLAYED = 0x00000002, FDS_SETHIDDEN = 0x00000004, FDS_UPDATEREADONLY = 0x00000008, }; enum FAREJECTMEDIAFLAGS { EJECT_NO_MESSAGE = 0x00000001, EJECT_LOAD_MEDIA = 0x00000002, EJECT_NOTIFY_AFTERREMOVE = 0x00000004, EJECT_READY = 0x80000000, }; struct ActlEjectMedia { DWORD Letter; DWORD Flags; }; enum FARMEDIATYPE { FMT_DRIVE_ERROR = -1, FMT_DRIVE_UNKNOWN = DRIVE_UNKNOWN, FMT_DRIVE_NO_ROOT_DIR = DRIVE_NO_ROOT_DIR, FMT_DRIVE_REMOVABLE = DRIVE_REMOVABLE, FMT_DRIVE_FIXED = DRIVE_FIXED, FMT_DRIVE_REMOTE = DRIVE_REMOTE, FMT_DRIVE_CDROM = DRIVE_CDROM, FMT_DRIVE_RAMDISK = DRIVE_RAMDISK, FMT_DRIVE_SUBSTITUTE = 15, FMT_DRIVE_REMOTE_NOT_CONNECTED = 16, FMT_DRIVE_CD_RW = 18, FMT_DRIVE_CD_RWDVD = 19, FMT_DRIVE_DVD_ROM = 20, FMT_DRIVE_DVD_RW = 21, FMT_DRIVE_DVD_RAM = 22, FMT_DRIVE_USBDRIVE = 40, FMT_DRIVE_NOT_INIT = 255, }; enum FARMEDIATYPEFLAGS { MEDIATYPE_NODETECTCDROM = 0x80000000, }; struct ActlMediaType { DWORD Letter; DWORD Flags; DWORD Reserved[2]; }; enum FARKEYSEQUENCEFLAGS { KSFLAGS_DISABLEOUTPUT = 0x00000001, KSFLAGS_NOSENDKEYSTOPLUGINS = 0x00000002, KSFLAGS_REG_MULTI_SZ = 0x00100000, }; struct KeySequence { DWORD Flags; int Count; DWORD *Sequence; }; enum FARMACROCOMMAND { MCMD_LOADALL = 0, MCMD_SAVEALL = 1, MCMD_POSTMACROSTRING = 2, MCMD_COMPILEMACRO = 3, MCMD_CHECKMACRO = 4, MCMD_GETSTATE = 5, }; enum FARMACROSTATE { MACROSTATE_NOMACRO =0, MACROSTATE_EXECUTING =1, MACROSTATE_EXECUTING_COMMON =2, MACROSTATE_RECORDING =3, MACROSTATE_RECORDING_COMMON =4, }; struct ActlKeyMacro { int Command; union { struct { char *SequenceText; DWORD Flags; } PlainText; struct KeySequence Compile; struct { const char *ErrMsg1; const char *ErrMsg2; const char *ErrMsg3; } MacroResult; DWORD_PTR Reserved[3]; }; }; enum FARCOLORFLAGS { FCLR_REDRAW = 0x00000001, }; struct FarSetColors { DWORD Flags; int StartIndex; int ColorCount; LPBYTE Colors; }; enum WINDOWINFO_TYPE { WTYPE_VIRTUAL, // ÏÐÎÑÜÁÀ ÍÅ ÇÀÁÛÂÀÒÜ ÑÈÍÕÐÎÍÈÇÈÐÎÂÀÒÜ ÈÇÌÅÍÅÍÈß // WTYPE_* è MODALTYPE_* (frame.hpp)!!! // (è íå íàäî óáèðàòü ýòîò êîììåíòàðèé, ïîêà ñèòóàöèÿ íå èçìåíèòñÿ ;) WTYPE_PANELS=1, WTYPE_VIEWER, WTYPE_EDITOR, WTYPE_DIALOG, WTYPE_VMENU, WTYPE_HELP, WTYPE_COMBOBOX, WTYPE_FINDFOLDER, WTYPE_USER, }; struct WindowInfo { int Pos; int Type; int Modified; int Current; char TypeName[64]; char Name[NM]; }; typedef INT_PTR(WINAPI *FARAPIADVCONTROL)( INT_PTR ModuleNumber, oldfar::ADVANCED_CONTROL_COMMANDS Command, void *Param ); enum VIEWER_CONTROL_COMMANDS { VCTL_GETINFO, VCTL_QUIT, VCTL_REDRAW, VCTL_SETKEYBAR, VCTL_SETPOSITION, VCTL_SELECT, VCTL_SETMODE, }; enum VIEWER_OPTIONS { VOPT_SAVEFILEPOSITION=1, VOPT_AUTODETECTTABLE=2, }; enum VIEWER_SETMODE_TYPES { VSMT_HEX, VSMT_WRAP, VSMT_WORDWRAP, }; enum VIEWER_SETMODEFLAGS_TYPES { VSMFL_REDRAW = 0x00000001, }; struct ViewerSetMode { int Type; union { int iParam; char *cParam; }; DWORD Flags; DWORD Reserved; }; struct ViewerSelect { INT64 BlockStartPos; int BlockLen; }; enum VIEWER_SETPOS_FLAGS { VSP_NOREDRAW = 0x0001, VSP_PERCENT = 0x0002, VSP_RELATIVE = 0x0004, VSP_NORETNEWPOS = 0x0008, }; struct ViewerSetPosition { DWORD Flags; INT64 StartPos; int LeftPos; }; struct ViewerMode { int UseDecodeTable; int TableNum; int AnsiMode; int Unicode; int Wrap; int WordWrap; int Hex; DWORD Reserved[4]; }; struct ViewerInfo { int StructSize; int ViewerID; const char *FileName; INT64 FileSize; INT64 FilePos; int WindowSizeX; int WindowSizeY; DWORD Options; int TabSize; struct ViewerMode CurMode; int LeftPos; DWORD Reserved3; }; typedef int (WINAPI *FARAPIVIEWERCONTROL)( int Command, void *Param ); enum VIEWER_EVENTS { VE_READ =0, VE_CLOSE =1, VE_GOTFOCUS =6, VE_KILLFOCUS =7, }; enum EDITOR_EVENTS { EE_READ =0, EE_SAVE =1, EE_REDRAW =2, EE_CLOSE =3, EE_GOTFOCUS =6, EE_KILLFOCUS =7, }; enum DIALOG_EVENTS { DE_DLGPROCINIT =0, DE_DEFDLGPROCINIT =1, DE_DLGPROCEND =2, }; //#define EEREDRAW_ALL (void*)0 //#define EEREDRAW_CHANGE (void*)1 //#define EEREDRAW_LINE (void*)2 enum EDITOR_CONTROL_COMMANDS { ECTL_GETSTRING, ECTL_SETSTRING, ECTL_INSERTSTRING, ECTL_DELETESTRING, ECTL_DELETECHAR, ECTL_INSERTTEXT, ECTL_GETINFO, ECTL_SETPOSITION, ECTL_SELECT, ECTL_REDRAW, ECTL_EDITORTOOEM, ECTL_OEMTOEDITOR, ECTL_TABTOREAL, ECTL_REALTOTAB, ECTL_EXPANDTABS, ECTL_SETTITLE, ECTL_READINPUT, ECTL_PROCESSINPUT, ECTL_ADDCOLOR, ECTL_GETCOLOR, ECTL_SAVEFILE, ECTL_QUIT, ECTL_SETKEYBAR, ECTL_PROCESSKEY, ECTL_SETPARAM, ECTL_GETBOOKMARKS, ECTL_TURNOFFMARKINGBLOCK, ECTL_DELETEBLOCK, ECTL_ADDSTACKBOOKMARK, ECTL_PREVSTACKBOOKMARK, ECTL_NEXTSTACKBOOKMARK, ECTL_CLEARSTACKBOOKMARKS, ECTL_DELETESTACKBOOKMARK, ECTL_GETSTACKBOOKMARKS, ECTL_SERVICEREGION, }; enum EDITOR_SETPARAMETER_TYPES { ESPT_TABSIZE, ESPT_EXPANDTABS, ESPT_AUTOINDENT, ESPT_CURSORBEYONDEOL, ESPT_CHARCODEBASE, ESPT_CHARTABLE, ESPT_SAVEFILEPOSITION, ESPT_LOCKMODE, ESPT_SETWORDDIV, ESPT_GETWORDDIV, }; struct EditorServiceRegion { int Command; DWORD Flags; }; struct EditorSetParameter { int Type; union { int iParam; char *cParam; DWORD Reserved1; }; DWORD Flags; DWORD Reserved2; }; struct EditorGetString { int StringNumber; char *StringText; char *StringEOL; int StringLength; int SelStart; int SelEnd; }; struct EditorSetString { int StringNumber; const char *StringText; const char *StringEOL; int StringLength; }; enum EXPAND_TABS { EXPAND_NOTABS, EXPAND_ALLTABS, EXPAND_NEWTABS }; enum EDITOR_OPTIONS { EOPT_EXPANDALLTABS = 0x00000001, EOPT_PERSISTENTBLOCKS = 0x00000002, EOPT_DELREMOVESBLOCKS = 0x00000004, EOPT_AUTOINDENT = 0x00000008, EOPT_SAVEFILEPOSITION = 0x00000010, EOPT_AUTODETECTTABLE = 0x00000020, EOPT_CURSORBEYONDEOL = 0x00000040, EOPT_EXPANDONLYNEWTABS = 0x00000080, }; enum EDITOR_BLOCK_TYPES { BTYPE_NONE, BTYPE_STREAM, BTYPE_COLUMN }; enum EDITOR_CURRENTSTATE { ECSTATE_MODIFIED = 0x00000001, ECSTATE_SAVED = 0x00000002, ECSTATE_LOCKED = 0x00000004, }; struct EditorInfo { int EditorID; const char *FileName; int WindowSizeX; int WindowSizeY; int TotalLines; int CurLine; int CurPos; int CurTabPos; int TopScreenLine; int LeftPos; int Overtype; int BlockType; int BlockStartLine; int AnsiMode; int TableNum; DWORD Options; int TabSize; int BookMarkCount; DWORD CurState; DWORD Reserved[6]; }; struct EditorBookMarks { long *Line; long *Cursor; long *ScreenLine; long *LeftPos; DWORD Reserved[4]; }; struct EditorSetPosition { int CurLine; int CurPos; int CurTabPos; int TopScreenLine; int LeftPos; int Overtype; }; struct EditorSelect { int BlockType; int BlockStartLine; int BlockStartPos; int BlockWidth; int BlockHeight; }; struct EditorConvertText { char *Text; int TextLength; }; struct EditorConvertPos { int StringNumber; int SrcPos; int DestPos; }; enum EDITORCOLORFLAGS { ECF_TAB1 = 0x10000, }; struct EditorColor { int StringNumber; int ColorItem; int StartPos; int EndPos; int Color; }; struct EditorSaveFile { char FileName[NM]; char *FileEOL; }; typedef int (WINAPI *FARAPIEDITORCONTROL)( EDITOR_CONTROL_COMMANDS Command, void *Param ); enum INPUTBOXFLAGS { FIB_ENABLEEMPTY = 0x00000001, FIB_PASSWORD = 0x00000002, FIB_EXPANDENV = 0x00000004, FIB_NOUSELASTHISTORY = 0x00000008, FIB_BUTTONS = 0x00000010, FIB_NOAMPERSAND = 0x00000020, }; typedef int (WINAPI *FARAPIINPUTBOX)( const char *Title, const char *SubTitle, const char *HistoryName, const char *SrcText, char *DestText, int DestLength, const char *HelpTopic, DWORD Flags ); // typedef int (WINAPIV *FARSTDSPRINTF)(char *Buffer,const char *Format,...); typedef int (WINAPIV *FARSTDSNPRINTF)(char *Buffer,size_t Sizebuf,const char *Format,...); typedef int (WINAPIV *FARSTDSSCANF)(const char *Buffer, const char *Format,...); // typedef void (WINAPI *FARSTDQSORT)(void *base, size_t nelem, size_t width, int (__cdecl *fcmp)(const void *, const void *)); typedef void (WINAPI *FARSTDQSORTEX)(void *base, size_t nelem, size_t width, int (__cdecl *fcmp)(const void *, const void *,void *userparam),void *userparam); typedef void *(WINAPI *FARSTDBSEARCH)(const void *key, const void *base, size_t nelem, size_t width, int (__cdecl *fcmp)(const void *, const void *)); typedef int (WINAPI *FARSTDGETFILEOWNER)(const char *Computer,const char *Name,char *Owner); typedef int (WINAPI *FARSTDGETNUMBEROFLINKS)(const char *Name); typedef int (WINAPI *FARSTDATOI)(const char *s); typedef __int64(WINAPI *FARSTDATOI64)(const char *s); typedef char *(WINAPI *FARSTDITOA64)(__int64 value, char *string, int radix); typedef char *(WINAPI *FARSTDITOA)(int value, char *string, int radix); typedef char *(WINAPI *FARSTDLTRIM)(char *Str); typedef char *(WINAPI *FARSTDRTRIM)(char *Str); typedef char *(WINAPI *FARSTDTRIM)(char *Str); typedef char *(WINAPI *FARSTDTRUNCSTR)(char *Str,int MaxLength); typedef char *(WINAPI *FARSTDTRUNCPATHSTR)(char *Str,int MaxLength); typedef char *(WINAPI *FARSTDQUOTESPACEONLY)(char *Str); typedef char*(WINAPI *FARSTDPOINTTONAME)(char *Path); typedef void (WINAPI *FARSTDGETPATHROOT)(const char *Path,char *Root); typedef BOOL (WINAPI *FARSTDADDENDSLASH)(char *Path); typedef int (WINAPI *FARSTDCOPYTOCLIPBOARD)(const char *Data); typedef char *(WINAPI *FARSTDPASTEFROMCLIPBOARD)(void); typedef int (WINAPI *FARSTDINPUTRECORDTOKEY)(const INPUT_RECORD *r); typedef int (WINAPI *FARSTDLOCALISLOWER)(unsigned Ch); typedef int (WINAPI *FARSTDLOCALISUPPER)(unsigned Ch); typedef int (WINAPI *FARSTDLOCALISALPHA)(unsigned Ch); typedef int (WINAPI *FARSTDLOCALISALPHANUM)(unsigned Ch); typedef unsigned(WINAPI *FARSTDLOCALUPPER)(unsigned LowerChar); typedef unsigned(WINAPI *FARSTDLOCALLOWER)(unsigned UpperChar); typedef void (WINAPI *FARSTDLOCALUPPERBUF)(char *Buf,int Length); typedef void (WINAPI *FARSTDLOCALLOWERBUF)(char *Buf,int Length); typedef void (WINAPI *FARSTDLOCALSTRUPR)(char *s1); typedef void (WINAPI *FARSTDLOCALSTRLWR)(char *s1); typedef int (WINAPI *FARSTDLOCALSTRICMP)(const char *s1,const char *s2); typedef int (WINAPI *FARSTDLOCALSTRNICMP)(const char *s1,const char *s2,int n); enum PROCESSNAME_FLAGS { PN_CMPNAME = 0x00000000UL, PN_CMPNAMELIST = 0x00001000UL, PN_GENERATENAME = 0x00002000UL, PN_SKIPPATH = 0x00100000UL, }; typedef int (WINAPI *FARSTDPROCESSNAME)(const char *param1, char *param2, DWORD flags); typedef void (WINAPI *FARSTDUNQUOTE)(char *Str); typedef DWORD (WINAPI *FARSTDEXPANDENVIRONMENTSTR)( const char *src, char *dst, size_t size ); enum XLATMODE { XLAT_SWITCHKEYBLAYOUT = 0x00000001UL, XLAT_SWITCHKEYBBEEP = 0x00000002UL, XLAT_USEKEYBLAYOUTNAME = 0x00000004UL, XLAT_CONVERTALLCMDLINE = 0x00010000UL, }; typedef char*(WINAPI *FARSTDXLAT)(char *Line,int StartPos,int EndPos,const struct CharTableSet *TableSet,DWORD Flags); typedef BOOL (WINAPI *FARSTDKEYTOKEYNAME)(int Key,char *KeyText,int Size); typedef int (WINAPI *FARSTDKEYNAMETOKEY)(const char *Name); typedef int (WINAPI *FRSUSERFUNC)( const WIN32_FIND_DATAA *FData, const char *FullName, void *Param ); enum FRSMODE { FRS_RETUPDIR = 0x01, FRS_RECUR = 0x02, FRS_SCANSYMLINK = 0x04, }; typedef void (WINAPI *FARSTDRECURSIVESEARCH)(const char *InitDir,const char *Mask,FRSUSERFUNC Func,DWORD Flags,void *Param); typedef char*(WINAPI *FARSTDMKTEMP)(char *Dest,const char *Prefix); typedef void (WINAPI *FARSTDDELETEBUFFER)(void *Buffer); enum MKLINKOP { FLINK_HARDLINK = 1, FLINK_JUNCTION = 2, FLINK_SYMLINK = FLINK_JUNCTION, FLINK_VOLMOUNT = 3, FLINK_SYMLINKFILE = 4, FLINK_SYMLINKDIR = 5, FLINK_SHOWERRMSG = 0x10000, FLINK_DONOTUPDATEPANEL = 0x20000, }; typedef int (WINAPI *FARSTDMKLINK)(const char *Src,const char *Dest,DWORD Flags); typedef int (WINAPI *FARCONVERTNAMETOREAL)(const char *Src,char *Dest, int DestSize); typedef int (WINAPI *FARGETREPARSEPOINTINFO)(const char *Src,char *Dest,int DestSize); typedef struct FarStandardFunctions { int StructSize; FARSTDATOI atoi; FARSTDATOI64 atoi64; FARSTDITOA itoa; FARSTDITOA64 itoa64; // FARSTDSPRINTF sprintf; FARSTDSSCANF sscanf; // FARSTDQSORT qsort; FARSTDBSEARCH bsearch; FARSTDQSORTEX qsortex; // FARSTDSNPRINTF snprintf; // DWORD_PTR Reserved[8]; FARSTDLOCALISLOWER LIsLower; FARSTDLOCALISUPPER LIsUpper; FARSTDLOCALISALPHA LIsAlpha; FARSTDLOCALISALPHANUM LIsAlphanum; FARSTDLOCALUPPER LUpper; FARSTDLOCALLOWER LLower; FARSTDLOCALUPPERBUF LUpperBuf; FARSTDLOCALLOWERBUF LLowerBuf; FARSTDLOCALSTRUPR LStrupr; FARSTDLOCALSTRLWR LStrlwr; FARSTDLOCALSTRICMP LStricmp; FARSTDLOCALSTRNICMP LStrnicmp; FARSTDUNQUOTE Unquote; FARSTDEXPANDENVIRONMENTSTR ExpandEnvironmentStr; FARSTDLTRIM LTrim; FARSTDRTRIM RTrim; FARSTDTRIM Trim; FARSTDTRUNCSTR TruncStr; FARSTDTRUNCPATHSTR TruncPathStr; FARSTDQUOTESPACEONLY QuoteSpaceOnly; FARSTDPOINTTONAME PointToName; FARSTDGETPATHROOT GetPathRoot; FARSTDADDENDSLASH AddEndSlash; FARSTDCOPYTOCLIPBOARD CopyToClipboard; FARSTDPASTEFROMCLIPBOARD PasteFromClipboard; FARSTDKEYTOKEYNAME FarKeyToName; FARSTDKEYNAMETOKEY FarNameToKey; FARSTDINPUTRECORDTOKEY FarInputRecordToKey; FARSTDXLAT XLat; FARSTDGETFILEOWNER GetFileOwner; FARSTDGETNUMBEROFLINKS GetNumberOfLinks; FARSTDRECURSIVESEARCH FarRecursiveSearch; FARSTDMKTEMP MkTemp; FARSTDDELETEBUFFER DeleteBuffer; FARSTDPROCESSNAME ProcessName; FARSTDMKLINK MkLink; FARCONVERTNAMETOREAL ConvertNameToReal; FARGETREPARSEPOINTINFO GetReparsePointInfo; } FARSTANDARDFUNCTIONS; struct PluginStartupInfo { int StructSize; char ModuleName[NM]; INT_PTR ModuleNumber; const char *RootKey; FARAPIMENU Menu; FARAPIDIALOG Dialog; FARAPIMESSAGE Message; FARAPIGETMSG GetMsg; FARAPICONTROL Control; FARAPISAVESCREEN SaveScreen; FARAPIRESTORESCREEN RestoreScreen; FARAPIGETDIRLIST GetDirList; FARAPIGETPLUGINDIRLIST GetPluginDirList; FARAPIFREEDIRLIST FreeDirList; FARAPIVIEWER Viewer; FARAPIEDITOR Editor; FARAPICMPNAME CmpName; FARAPICHARTABLE CharTable; FARAPITEXT Text; FARAPIEDITORCONTROL EditorControl; FARSTANDARDFUNCTIONS *FSF; FARAPISHOWHELP ShowHelp; FARAPIADVCONTROL AdvControl; FARAPIINPUTBOX InputBox; FARAPIDIALOGEX DialogEx; FARWINDOWPROC SendDlgMessage; FARWINDOWPROC DefDlgProc; DWORD_PTR Reserved; FARAPIVIEWERCONTROL ViewerControl; }; enum PLUGIN_FLAGS { PF_PRELOAD = 0x0001, PF_DISABLEPANELS = 0x0002, PF_EDITOR = 0x0004, PF_VIEWER = 0x0008, PF_FULLCMDLINE = 0x0010, PF_DIALOG = 0x0020, }; struct PluginInfo { int StructSize; DWORD Flags; const char * const *DiskMenuStrings; int *DiskMenuNumbers; int DiskMenuStringsNumber; const char * const *PluginMenuStrings; int PluginMenuStringsNumber; const char * const *PluginConfigStrings; int PluginConfigStringsNumber; const char *CommandPrefix; DWORD Reserved; }; struct InfoPanelLine { char Text[80]; char Data[80]; int Separator; }; struct PanelMode { char *ColumnTypes; char *ColumnWidths; char **ColumnTitles; int FullScreen; int DetailedStatus; int AlignExtensions; int CaseConversion; char *StatusColumnTypes; char *StatusColumnWidths; DWORD Reserved[2]; }; enum OPENPANELINFO_FLAGS { OPIF_USEFILTER = 0x00000001, OPIF_USESORTGROUPS = 0x00000002, OPIF_USEHIGHLIGHTING = 0x00000004, OPIF_ADDDOTS = 0x00000008, OPIF_RAWSELECTION = 0x00000010, OPIF_REALNAMES = 0x00000020, OPIF_SHOWNAMESONLY = 0x00000040, OPIF_SHOWRIGHTALIGNNAMES = 0x00000080, OPIF_SHOWPRESERVECASE = 0x00000100, OPIF_COMPAREFATTIME = 0x00000400, OPIF_EXTERNALGET = 0x00000800, OPIF_EXTERNALPUT = 0x00001000, OPIF_EXTERNALDELETE = 0x00002000, OPIF_EXTERNALMKDIR = 0x00004000, OPIF_USEATTRHIGHLIGHTING = 0x00008000, }; enum OPENPANELINFO_SORTMODES { SM_DEFAULT, SM_UNSORTED, SM_NAME, SM_EXT, SM_MTIME, SM_CTIME, SM_ATIME, SM_SIZE, SM_DESCR, SM_OWNER, SM_COMPRESSEDSIZE, SM_NUMLINKS }; struct KeyBarTitles { char *Titles[12]; char *CtrlTitles[12]; char *AltTitles[12]; char *ShiftTitles[12]; char *CtrlShiftTitles[12]; char *AltShiftTitles[12]; char *CtrlAltTitles[12]; }; enum OPERATION_MODES { OPM_SILENT =0x0001, OPM_FIND =0x0002, OPM_VIEW =0x0004, OPM_EDIT =0x0008, OPM_TOPLEVEL =0x0010, OPM_DESCR =0x0020, OPM_QUICKVIEW =0x0040, }; struct OpenPanelInfo { int StructSize; DWORD Flags; const char *HostFile; const char *CurDir; const char *Format; const char *PanelTitle; const struct InfoPanelLine *InfoLines; int InfoLinesNumber; const char * const *DescrFiles; int DescrFilesNumber; const struct PanelMode *PanelModesArray; int PanelModesNumber; int StartPanelMode; int StartSortMode; int StartSortOrder; const struct KeyBarTitles *KeyBar; const char *ShortcutData; long Reserverd; }; enum OPENPLUGIN_OPENFROM { OPEN_DISKMENU = 0, OPEN_PLUGINSMENU = 1, OPEN_FINDLIST = 2, OPEN_SHORTCUT = 3, OPEN_COMMANDLINE = 4, OPEN_EDITOR = 5, OPEN_VIEWER = 6, OPEN_FILEPANEL = 7, OPEN_DIALOG = 8, OPEN_FROMMACRO = 0x10000, }; enum FAR_PKF_FLAGS { PKF_CONTROL = 0x00000001, PKF_ALT = 0x00000002, PKF_SHIFT = 0x00000004, PKF_PREPROCESS = 0x00080000, // for "Key", function ProcessKey() }; enum FAR_EVENTS { FE_CHANGEVIEWMODE =0, FE_REDRAW =1, FE_IDLE =2, FE_CLOSE =3, FE_BREAK =4, FE_COMMAND =5, FE_GOTFOCUS =6, FE_KILLFOCUS =7, }; #ifndef _WIN64 #ifdef __GNUC__ #pragma pack() #else #pragma pack(pop) #endif #endif #pragma warning(pop) }