1 /* 2 Plugin API for Far Manager 3.0 build 5151 3 License: Public Domain 4 */ 5 6 module farplugin; 7 8 import std.stdint; 9 import core.sys.windows.windows; 10 11 const FARMANAGERVERSION_MAJOR = 3; 12 const FARMANAGERVERSION_MINOR = 0; 13 const FARMANAGERVERSION_REVISION = 0; 14 const FARMANAGERVERSION_BUILD = 5151; 15 const FARMANAGERVERSION_STAGE = VERSION_STAGE.VS_RELEASE; 16 17 const CP_UNICODE = cast(uintptr_t)1200; 18 const CP_REVERSEBOM = cast(uintptr_t)1201; 19 const CP_DEFAULT = cast(uintptr_t)-1; 20 const CP_REDETECT = cast(uintptr_t)-2; 21 22 alias ulong FARCOLORFLAGS; 23 const FARCOLORFLAGS 24 FCF_FG_4BIT = 0x0000000000000001UL, 25 FCF_BG_4BIT = 0x0000000000000002UL, 26 FCF_4BITMASK = FCF_FG_4BIT|FCF_BG_4BIT, // 0x0000000000000003UL 27 28 FCF_RAWATTR_MASK = 0x000000000000FF00UL, // stored console attributes 29 30 FCF_EXTENDEDFLAGS = ~FCF_4BITMASK, // 0xFFFFFFFFFFFFFFFCUL 31 FCF_FG_BOLD = 0x1000000000000000UL, 32 FCF_FG_ITALIC = 0x2000000000000000UL, 33 FCF_FG_UNDERLINE = 0x4000000000000000UL, 34 FCF_STYLEMASK = FCF_FG_BOLD|FCF_FG_ITALIC|FCF_FG_UNDERLINE, // 0x7000000000000000UL 35 FCF_NONE = 0UL; 36 37 struct rgba { byte r, g, b, a; } 38 39 struct FarColor 40 { 41 FARCOLORFLAGS Flags; 42 union 43 { 44 COLORREF ForegroundColor; 45 rgba ForegroundRGBA; 46 } 47 union 48 { 49 COLORREF BackgroundColor; 50 rgba BackgroundRGBA; 51 } 52 void* Reserved; 53 54 bool IsBg4Bit() const 55 { 56 return (Flags & FCF_BG_4BIT) != 0; 57 } 58 59 bool IsFg4Bit() const 60 { 61 return (Flags & FCF_FG_4BIT) != 0; 62 } 63 64 FarColor SetBg4Bit(bool Value) 65 { 66 Value? Flags |= FCF_BG_4BIT : Flags &= ~FCF_BG_4BIT; 67 return this; 68 } 69 70 FarColor SetFg4Bit(bool Value) 71 { 72 Value? Flags |= FCF_FG_4BIT : Flags &= ~FCF_FG_4BIT; 73 return this; 74 } 75 } 76 77 const INDEXMASK = 0x0000000F; 78 const COLORMASK = 0x00FFFFFF; 79 const ALPHAMASK = 0xFF000000; 80 81 auto INDEXVALUE(ARG1)(ARG1 x) { return ((x)&INDEXMASK); } 82 auto COLORVALUE(ARG1)(ARG1 x) { return ((x)&COLORMASK); } 83 auto ALPHAVALUE(ARG1)(ARG1 x) { return ((x)&ALPHAMASK); } 84 85 auto IS_OPAQUE(ARG1)(ARG1 x) { return (ALPHAVALUE(x)==ALPHAMASK); } 86 auto IS_TRANSPARENT(ARG1)(ARG1 x) { return (!ALPHAVALUE(x)); } 87 void MAKE_OPAQUE(ARG1)(ref ARG1 x) { (x|=ALPHAMASK); } 88 void MAKE_TRANSPARENT(ARG1)(ref ARG1 x) { (x&=COLORMASK); } 89 90 alias ulong COLORDIALOGFLAGS; 91 const COLORDIALOGFLAGS CDF_NONE = 0UL; 92 93 alias extern (Windows) BOOL function( 94 in GUID* PluginId, 95 COLORDIALOGFLAGS Flags, 96 FarColor* Color) FARAPICOLORDIALOG; 97 98 alias ulong FARMESSAGEFLAGS; 99 const FARMESSAGEFLAGS 100 FMSG_WARNING = 0x0000000000000001UL, 101 FMSG_ERRORTYPE = 0x0000000000000002UL, 102 FMSG_KEEPBACKGROUND = 0x0000000000000004UL, 103 FMSG_LEFTALIGN = 0x0000000000000008UL, 104 FMSG_ALLINONE = 0x0000000000000010UL, 105 FMSG_MB_OK = 0x0000000000010000UL, 106 FMSG_MB_OKCANCEL = 0x0000000000020000UL, 107 FMSG_MB_ABORTRETRYIGNORE = 0x0000000000030000UL, 108 FMSG_MB_YESNO = 0x0000000000040000UL, 109 FMSG_MB_YESNOCANCEL = 0x0000000000050000UL, 110 FMSG_MB_RETRYCANCEL = 0x0000000000060000UL, 111 FMSG_NONE = 0UL; 112 113 alias extern (Windows) intptr_t function( 114 in GUID* PluginId, 115 in GUID* Id, 116 FARMESSAGEFLAGS Flags, 117 in wchar* HelpTopic, 118 in wchar** Items, 119 size_t ItemsNumber, 120 intptr_t ButtonsNumber) FARAPIMESSAGE; 121 122 enum FARDIALOGITEMTYPES 123 { 124 DI_TEXT = 0, 125 DI_VTEXT = 1, 126 DI_SINGLEBOX = 2, 127 DI_DOUBLEBOX = 3, 128 DI_EDIT = 4, 129 DI_PSWEDIT = 5, 130 DI_FIXEDIT = 6, 131 DI_BUTTON = 7, 132 DI_CHECKBOX = 8, 133 DI_RADIOBUTTON = 9, 134 DI_COMBOBOX = 10, 135 DI_LISTBOX = 11, 136 137 DI_USERCONTROL =255, 138 } 139 140 /* 141 Check diagol element type has inputstring? 142 (DI_EDIT, DI_FIXEDIT, DI_PSWEDIT, etc) 143 */ 144 BOOL IsEdit(FARDIALOGITEMTYPES Type) 145 { 146 with (FARDIALOGITEMTYPES) 147 switch (Type) 148 { 149 case DI_EDIT: 150 case DI_FIXEDIT: 151 case DI_PSWEDIT: 152 case DI_COMBOBOX: 153 return TRUE; 154 default: 155 return FALSE; 156 } 157 } 158 159 alias ulong FARDIALOGITEMFLAGS; 160 const FARDIALOGITEMFLAGS 161 DIF_BOXCOLOR = 0x0000000000000200UL, 162 DIF_GROUP = 0x0000000000000400UL, 163 DIF_LEFTTEXT = 0x0000000000000800UL, 164 DIF_MOVESELECT = 0x0000000000001000UL, 165 DIF_SHOWAMPERSAND = 0x0000000000002000UL, 166 DIF_CENTERGROUP = 0x0000000000004000UL, 167 DIF_NOBRACKETS = 0x0000000000008000UL, 168 DIF_MANUALADDHISTORY = 0x0000000000008000UL, 169 DIF_SEPARATOR = 0x0000000000010000UL, 170 DIF_SEPARATOR2 = 0x0000000000020000UL, 171 DIF_EDITOR = 0x0000000000020000UL, 172 DIF_LISTNOAMPERSAND = 0x0000000000020000UL, 173 DIF_LISTNOBOX = 0x0000000000040000UL, 174 DIF_HISTORY = 0x0000000000040000UL, 175 DIF_BTNNOCLOSE = 0x0000000000040000UL, 176 DIF_CENTERTEXT = 0x0000000000040000UL, 177 DIF_SEPARATORUSER = 0x0000000000080000UL, 178 DIF_SETSHIELD = 0x0000000000080000UL, 179 DIF_EDITEXPAND = 0x0000000000080000UL, 180 DIF_DROPDOWNLIST = 0x0000000000100000UL, 181 DIF_USELASTHISTORY = 0x0000000000200000UL, 182 DIF_MASKEDIT = 0x0000000000400000UL, 183 DIF_LISTTRACKMOUSE = 0x0000000000400000UL, 184 DIF_LISTTRACKMOUSEINFOCUS = 0x0000000000800000UL, 185 DIF_SELECTONENTRY = 0x0000000000800000UL, 186 DIF_3STATE = 0x0000000000800000UL, 187 DIF_EDITPATH = 0x0000000001000000UL, 188 DIF_LISTWRAPMODE = 0x0000000001000000UL, 189 DIF_NOAUTOCOMPLETE = 0x0000000002000000UL, 190 DIF_LISTAUTOHIGHLIGHT = 0x0000000002000000UL, 191 DIF_LISTNOCLOSE = 0x0000000004000000UL, 192 DIF_EDITPATHEXEC = 0x0000000004000000UL, 193 DIF_HIDDEN = 0x0000000010000000UL, 194 DIF_READONLY = 0x0000000020000000UL, 195 DIF_NOFOCUS = 0x0000000040000000UL, 196 DIF_DISABLE = 0x0000000080000000UL, 197 DIF_DEFAULTBUTTON = 0x0000000100000000UL, 198 DIF_FOCUS = 0x0000000200000000UL, 199 DIF_RIGHTTEXT = 0x0000000400000000UL, 200 DIF_WORDWRAP = 0x0000000800000000UL, 201 DIF_NONE = 0UL; 202 203 enum FARMESSAGE 204 { 205 DM_FIRST = 0, 206 DM_CLOSE = 1, 207 DM_ENABLE = 2, 208 DM_ENABLEREDRAW = 3, 209 DM_GETDLGDATA = 4, 210 DM_GETDLGITEM = 5, 211 DM_GETDLGRECT = 6, 212 DM_GETTEXT = 7, 213 DM_KEY = 9, 214 DM_MOVEDIALOG = 10, 215 DM_SETDLGDATA = 11, 216 DM_SETDLGITEM = 12, 217 DM_SETFOCUS = 13, 218 DM_REDRAW = 14, 219 DM_SETTEXT = 15, 220 DM_SETMAXTEXTLENGTH = 16, 221 DM_SHOWDIALOG = 17, 222 DM_GETFOCUS = 18, 223 DM_GETCURSORPOS = 19, 224 DM_SETCURSORPOS = 20, 225 DM_SETTEXTPTR = 22, 226 DM_SHOWITEM = 23, 227 DM_ADDHISTORY = 24, 228 229 DM_GETCHECK = 25, 230 DM_SETCHECK = 26, 231 DM_SET3STATE = 27, 232 233 DM_LISTSORT = 28, 234 DM_LISTGETITEM = 29, 235 DM_LISTGETCURPOS = 30, 236 DM_LISTSETCURPOS = 31, 237 DM_LISTDELETE = 32, 238 DM_LISTADD = 33, 239 DM_LISTADDSTR = 34, 240 DM_LISTUPDATE = 35, 241 DM_LISTINSERT = 36, 242 DM_LISTFINDSTRING = 37, 243 DM_LISTINFO = 38, 244 DM_LISTGETDATA = 39, 245 DM_LISTSETDATA = 40, 246 DM_LISTSETTITLES = 41, 247 DM_LISTGETTITLES = 42, 248 249 DM_RESIZEDIALOG = 43, 250 DM_SETITEMPOSITION = 44, 251 252 DM_GETDROPDOWNOPENED = 45, 253 DM_SETDROPDOWNOPENED = 46, 254 255 DM_SETHISTORY = 47, 256 257 DM_GETITEMPOSITION = 48, 258 DM_SETINPUTNOTIFY = 49, 259 DM_SETMOUSEEVENTNOTIFY = DM_SETINPUTNOTIFY, 260 261 DM_EDITUNCHANGEDFLAG = 50, 262 263 DM_GETITEMDATA = 51, 264 DM_SETITEMDATA = 52, 265 266 DM_LISTSET = 53, 267 268 DM_GETCURSORSIZE = 54, 269 DM_SETCURSORSIZE = 55, 270 271 DM_LISTGETDATASIZE = 56, 272 273 DM_GETSELECTION = 57, 274 DM_SETSELECTION = 58, 275 276 DM_GETEDITPOSITION = 59, 277 DM_SETEDITPOSITION = 60, 278 279 DM_SETCOMBOBOXEVENT = 61, 280 DM_GETCOMBOBOXEVENT = 62, 281 282 DM_GETCONSTTEXTPTR = 63, 283 DM_GETDLGITEMSHORT = 64, 284 DM_SETDLGITEMSHORT = 65, 285 286 DM_GETDIALOGINFO = 66, 287 288 DM_GETDIALOGTITLE = 67, 289 290 DN_FIRST = 4096, 291 DN_BTNCLICK = 4097, 292 DN_CTLCOLORDIALOG = 4098, 293 DN_CTLCOLORDLGITEM = 4099, 294 DN_CTLCOLORDLGLIST = 4100, 295 DN_DRAWDIALOG = 4101, 296 DN_DRAWDLGITEM = 4102, 297 DN_EDITCHANGE = 4103, 298 DN_ENTERIDLE = 4104, 299 DN_GOTFOCUS = 4105, 300 DN_HELP = 4106, 301 DN_HOTKEY = 4107, 302 DN_INITDIALOG = 4108, 303 DN_KILLFOCUS = 4109, 304 DN_LISTCHANGE = 4110, 305 DN_DRAGGED = 4111, 306 DN_RESIZECONSOLE = 4112, 307 DN_DRAWDIALOGDONE = 4113, 308 DN_LISTHOTKEY = 4114, 309 DN_INPUT = 4115, 310 DN_CONTROLINPUT = 4116, 311 DN_CLOSE = 4117, 312 DN_GETVALUE = 4118, 313 DN_DROPDOWNOPENED = 4119, 314 DN_DRAWDLGITEMDONE = 4120, 315 316 DM_USER = 0x4000, 317 } 318 319 enum FARCHECKEDSTATE 320 { 321 BSTATE_UNCHECKED = 0, 322 BSTATE_CHECKED = 1, 323 BSTATE_3STATE = 2, 324 BSTATE_TOGGLE = 3, 325 } 326 327 enum FARCOMBOBOXEVENTTYPE 328 { 329 CBET_KEY = 0x00000001, 330 CBET_MOUSE = 0x00000002, 331 } 332 333 alias ulong LISTITEMFLAGS; 334 const LISTITEMFLAGS 335 LIF_SELECTED = 0x0000000000010000UL, 336 LIF_CHECKED = 0x0000000000020000UL, 337 LIF_SEPARATOR = 0x0000000000040000UL, 338 LIF_DISABLE = 0x0000000000080000UL, 339 LIF_GRAYED = 0x0000000000100000UL, 340 LIF_HIDDEN = 0x0000000000200000UL, 341 LIF_DELETEUSERDATA = 0x0000000080000000UL, 342 LIF_NONE = 0UL; 343 344 struct FarListItem 345 { 346 LISTITEMFLAGS Flags; 347 const(wchar)* Text; 348 intptr_t[2] Reserved; 349 } 350 351 struct FarListUpdate 352 { 353 size_t StructSize; 354 intptr_t Index; 355 FarListItem Item; 356 } 357 358 struct FarListInsert 359 { 360 size_t StructSize; 361 intptr_t Index; 362 FarListItem Item; 363 } 364 365 struct FarListGetItem 366 { 367 size_t StructSize; 368 intptr_t ItemIndex; 369 FarListItem Item; 370 } 371 372 struct FarListPos 373 { 374 size_t StructSize; 375 intptr_t SelectPos; 376 intptr_t TopPos; 377 } 378 379 alias ulong FARLISTFINDFLAGS; 380 const FARLISTFINDFLAGS 381 LIFIND_EXACTMATCH = 0x0000000000000001UL, 382 LIFIND_NONE = 0UL; 383 384 struct FarListFind 385 { 386 size_t StructSize; 387 intptr_t StartIndex; 388 const(wchar)* Pattern; 389 FARLISTFINDFLAGS Flags; 390 } 391 392 struct FarListDelete 393 { 394 size_t StructSize; 395 intptr_t StartIndex; 396 intptr_t Count; 397 } 398 399 alias ulong FARLISTINFOFLAGS; 400 const FARLISTINFOFLAGS 401 LINFO_SHOWNOBOX = 0x0000000000000400UL, 402 LINFO_AUTOHIGHLIGHT = 0x0000000000000800UL, 403 LINFO_REVERSEHIGHLIGHT = 0x0000000000001000UL, 404 LINFO_WRAPMODE = 0x0000000000008000UL, 405 LINFO_SHOWAMPERSAND = 0x0000000000010000UL, 406 LINFO_NONE = 0UL; 407 408 struct FarListInfo 409 { 410 size_t StructSize; 411 FARLISTINFOFLAGS Flags; 412 size_t ItemsNumber; 413 intptr_t SelectPos; 414 intptr_t TopPos; 415 intptr_t MaxHeight; 416 intptr_t MaxLength; 417 } 418 419 struct FarListItemData 420 { 421 size_t StructSize; 422 intptr_t Index; 423 size_t DataSize; 424 void* Data; 425 } 426 427 struct FarList 428 { 429 size_t StructSize; 430 size_t ItemsNumber; 431 FarListItem* Items; 432 } 433 434 struct FarListTitles 435 { 436 size_t StructSize; 437 size_t TitleSize; 438 const(wchar)* Title; 439 size_t BottomSize; 440 const(wchar)* Bottom; 441 } 442 443 struct FarDialogItemColors 444 { 445 size_t StructSize; 446 ulong Flags; 447 size_t ColorsCount; 448 FarColor* Colors; 449 } 450 451 struct FAR_CHAR_INFO 452 { 453 wchar Char; 454 FarColor Attributes; 455 456 static FAR_CHAR_INFO make(wchar Char, in FarColor Attributes) 457 { 458 return FAR_CHAR_INFO(Char, cast(FarColor) Attributes); 459 } 460 } 461 462 struct FarDialogItem 463 { 464 FARDIALOGITEMTYPES Type; 465 intptr_t X1,Y1,X2,Y2; 466 union 467 { 468 intptr_t Selected; 469 FarList* ListItems; 470 FAR_CHAR_INFO* VBuf; 471 intptr_t Reserved0; 472 } 473 const(wchar)* History; 474 const(wchar)* Mask; 475 FARDIALOGITEMFLAGS Flags; 476 const(wchar)* Data; 477 size_t MaxLength; // terminate 0 not included (if == 0 string size is unlimited) 478 intptr_t UserData; 479 intptr_t[2] Reserved; 480 } 481 482 struct FarDialogItemData 483 { 484 size_t StructSize; 485 size_t PtrLength; 486 wchar* PtrData; 487 } 488 489 struct FarDialogEvent 490 { 491 size_t StructSize; 492 HANDLE hDlg; 493 intptr_t Msg; 494 intptr_t Param1; 495 void* Param2; 496 intptr_t Result; 497 } 498 499 struct OpenDlgPluginData 500 { 501 size_t StructSize; 502 HANDLE hDlg; 503 } 504 505 struct DialogInfo 506 { 507 size_t StructSize; 508 GUID Id; 509 GUID Owner; 510 } 511 512 struct FarGetDialogItem 513 { 514 size_t StructSize; 515 size_t Size; 516 FarDialogItem* Item; 517 } 518 519 alias ulong FARDIALOGFLAGS; 520 const FARDIALOGFLAGS 521 FDLG_WARNING = 0x0000000000000001UL, 522 FDLG_SMALLDIALOG = 0x0000000000000002UL, 523 FDLG_NODRAWSHADOW = 0x0000000000000004UL, 524 FDLG_NODRAWPANEL = 0x0000000000000008UL, 525 FDLG_KEEPCONSOLETITLE = 0x0000000000000010UL, 526 FDLG_NONMODAL = 0x0000000000000020UL, 527 FDLG_NONE = 0UL; 528 529 alias extern (Windows) intptr_t function(HANDLE hDlg, intptr_t Msg, intptr_t Param1, void* Param2)FARWINDOWPROC; 530 531 alias extern (Windows) intptr_t function(HANDLE hDlg, intptr_t Msg, intptr_t Param1, void* Param2)FARAPISENDDLGMESSAGE; 532 533 alias extern (Windows) intptr_t function(HANDLE hDlg, intptr_t Msg, intptr_t Param1, void* Param2)FARAPIDEFDLGPROC; 534 535 alias extern (Windows) HANDLE function( 536 in GUID* PluginId, 537 in GUID* Id, 538 intptr_t X1, 539 intptr_t Y1, 540 intptr_t X2, 541 intptr_t Y2, 542 in wchar* HelpTopic, 543 in FarDialogItem* Item, 544 size_t ItemsNumber, 545 intptr_t Reserved, 546 FARDIALOGFLAGS Flags, 547 FARWINDOWPROC DlgProc, 548 void* Param) FARAPIDIALOGINIT; 549 550 alias extern (Windows) intptr_t function(HANDLE hDlg)FARAPIDIALOGRUN; 551 552 alias extern (Windows) void function(HANDLE hDlg)FARAPIDIALOGFREE; 553 554 struct FarKey 555 { 556 WORD VirtualKeyCode; 557 DWORD ControlKeyState; 558 } 559 560 alias ulong MENUITEMFLAGS; 561 const MENUITEMFLAGS 562 MIF_SELECTED = 0x000000000010000UL, 563 MIF_CHECKED = 0x000000000020000UL, 564 MIF_SEPARATOR = 0x000000000040000UL, 565 MIF_DISABLE = 0x000000000080000UL, 566 MIF_GRAYED = 0x000000000100000UL, 567 MIF_HIDDEN = 0x000000000200000UL, 568 MIF_NONE = 0UL; 569 570 struct FarMenuItem 571 { 572 MENUITEMFLAGS Flags; 573 const(wchar)* Text; 574 FarKey AccelKey; 575 intptr_t UserData; 576 intptr_t[2] Reserved; 577 } 578 579 alias ulong FARMENUFLAGS; 580 const FARMENUFLAGS 581 FMENU_SHOWAMPERSAND = 0x0000000000000001UL, 582 FMENU_WRAPMODE = 0x0000000000000002UL, 583 FMENU_AUTOHIGHLIGHT = 0x0000000000000004UL, 584 FMENU_REVERSEAUTOHIGHLIGHT = 0x0000000000000008UL, 585 FMENU_CHANGECONSOLETITLE = 0x0000000000000010UL, 586 FMENU_NONE = 0UL; 587 588 alias extern (Windows) intptr_t function( 589 in GUID* PluginId, 590 in GUID* Id, 591 intptr_t X, 592 intptr_t Y, 593 intptr_t MaxHeight, 594 const FARMENUFLAGS Flags, 595 in wchar* Title, 596 in wchar* Bottom, 597 in wchar* HelpTopic, 598 in FarKey* BreakKeys, 599 intptr_t* BreakCode, 600 in FarMenuItem* Item, 601 size_t ItemsNumber) FARAPIMENU; 602 603 alias ulong PLUGINPANELITEMFLAGS; 604 const PLUGINPANELITEMFLAGS 605 PPIF_SELECTED = 0x0000000040000000UL, 606 PPIF_PROCESSDESCR = 0x0000000080000000UL, 607 PPIF_NONE = 0UL; 608 609 struct FarPanelItemFreeInfo 610 { 611 size_t StructSize; 612 HANDLE hPlugin; 613 } 614 615 alias extern (Windows) void function( 616 void* UserData, 617 in FarPanelItemFreeInfo* Info) FARPANELITEMFREECALLBACK; 618 619 struct UserDataItem 620 { 621 void* Data; 622 FARPANELITEMFREECALLBACK FreeData; 623 } 624 625 struct PluginPanelItem 626 { 627 FILETIME CreationTime; 628 FILETIME LastAccessTime; 629 FILETIME LastWriteTime; 630 FILETIME ChangeTime; 631 ulong FileSize; 632 ulong AllocationSize; 633 const(wchar)* FileName; 634 const(wchar)* AlternateFileName; 635 const(wchar)* Description; 636 const(wchar)* Owner; 637 const(wchar*)* CustomColumnData; 638 size_t CustomColumnNumber; 639 PLUGINPANELITEMFLAGS Flags; 640 UserDataItem UserData; 641 uintptr_t FileAttributes; 642 uintptr_t NumberOfLinks; 643 uintptr_t CRC32; 644 intptr_t[2] Reserved; 645 } 646 647 struct FarGetPluginPanelItem 648 { 649 size_t StructSize; 650 size_t Size; 651 PluginPanelItem* Item; 652 } 653 654 struct SortingPanelItem 655 { 656 FILETIME CreationTime; 657 FILETIME LastAccessTime; 658 FILETIME LastWriteTime; 659 FILETIME ChangeTime; 660 ulong FileSize; 661 ulong AllocationSize; 662 const(wchar)* FileName; 663 const(wchar)* AlternateFileName; 664 const(wchar)* Description; 665 const(wchar)* Owner; 666 const(wchar*)* CustomColumnData; 667 size_t CustomColumnNumber; 668 PLUGINPANELITEMFLAGS Flags; 669 UserDataItem UserData; 670 uintptr_t FileAttributes; 671 uintptr_t NumberOfLinks; 672 uintptr_t CRC32; 673 intptr_t Position; 674 intptr_t SortGroup; 675 uintptr_t NumberOfStreams; 676 ulong StreamsSize; 677 } 678 679 alias ulong PANELINFOFLAGS; 680 const PANELINFOFLAGS 681 PFLAGS_SHOWHIDDEN = 0x0000000000000001UL, 682 PFLAGS_HIGHLIGHT = 0x0000000000000002UL, 683 PFLAGS_REVERSESORTORDER = 0x0000000000000004UL, 684 PFLAGS_USESORTGROUPS = 0x0000000000000008UL, 685 PFLAGS_SELECTEDFIRST = 0x0000000000000010UL, 686 PFLAGS_REALNAMES = 0x0000000000000020UL, 687 PFLAGS_PANELLEFT = 0x0000000000000080UL, 688 PFLAGS_DIRECTORIESFIRST = 0x0000000000000100UL, 689 PFLAGS_USECRC32 = 0x0000000000000200UL, 690 PFLAGS_PLUGIN = 0x0000000000000800UL, 691 PFLAGS_VISIBLE = 0x0000000000001000UL, 692 PFLAGS_FOCUS = 0x0000000000002000UL, 693 PFLAGS_ALTERNATIVENAMES = 0x0000000000004000UL, 694 PFLAGS_SHORTCUT = 0x0000000000008000UL, 695 PFLAGS_NONE = 0UL; 696 697 enum PANELINFOTYPE 698 { 699 PTYPE_FILEPANEL = 0, 700 PTYPE_TREEPANEL = 1, 701 PTYPE_QVIEWPANEL = 2, 702 PTYPE_INFOPANEL = 3, 703 } 704 705 enum OPENPANELINFO_SORTMODES 706 { 707 SM_DEFAULT = 0, 708 SM_UNSORTED = 1, 709 SM_NAME = 2, 710 SM_EXT = 3, 711 SM_MTIME = 4, 712 SM_CTIME = 5, 713 SM_ATIME = 6, 714 SM_SIZE = 7, 715 SM_DESCR = 8, 716 SM_OWNER = 9, 717 SM_COMPRESSEDSIZE = 10, 718 SM_NUMLINKS = 11, 719 SM_NUMSTREAMS = 12, 720 SM_STREAMSSIZE = 13, 721 SM_FULLNAME = 14, 722 SM_CHTIME = 15, 723 724 SM_COUNT 725 } 726 727 struct PanelInfo 728 { 729 size_t StructSize; 730 HANDLE PluginHandle; 731 GUID OwnerGuid; 732 PANELINFOFLAGS Flags; 733 size_t ItemsNumber; 734 size_t SelectedItemsNumber; 735 RECT PanelRect; 736 size_t CurrentItem; 737 size_t TopPanelItem; 738 intptr_t ViewMode; 739 PANELINFOTYPE PanelType; 740 OPENPANELINFO_SORTMODES SortMode; 741 } 742 743 struct PanelRedrawInfo 744 { 745 size_t StructSize; 746 size_t CurrentItem; 747 size_t TopPanelItem; 748 } 749 750 struct CmdLineSelect 751 { 752 size_t StructSize; 753 intptr_t SelStart; 754 intptr_t SelEnd; 755 } 756 757 struct FarPanelDirectory 758 { 759 size_t StructSize; 760 const(wchar)* Name; 761 const(wchar)* Param; 762 GUID PluginId; 763 const(wchar)* File; 764 } 765 766 const PANEL_NONE = cast(HANDLE)-1; 767 const PANEL_ACTIVE = cast(HANDLE)-1; 768 const PANEL_PASSIVE = cast(HANDLE)-2; 769 const PANEL_STOP = cast(HANDLE)-1; 770 771 enum FILE_CONTROL_COMMANDS 772 { 773 FCTL_CLOSEPANEL = 0, 774 FCTL_GETPANELINFO = 1, 775 FCTL_UPDATEPANEL = 2, 776 FCTL_REDRAWPANEL = 3, 777 FCTL_GETCMDLINE = 4, 778 FCTL_SETCMDLINE = 5, 779 FCTL_SETSELECTION = 6, 780 FCTL_SETVIEWMODE = 7, 781 FCTL_INSERTCMDLINE = 8, 782 FCTL_SETUSERSCREEN = 9, 783 FCTL_SETPANELDIRECTORY = 10, 784 FCTL_SETCMDLINEPOS = 11, 785 FCTL_GETCMDLINEPOS = 12, 786 FCTL_SETSORTMODE = 13, 787 FCTL_SETSORTORDER = 14, 788 FCTL_SETCMDLINESELECTION = 15, 789 FCTL_GETCMDLINESELECTION = 16, 790 FCTL_CHECKPANELSEXIST = 17, 791 FCTL_GETUSERSCREEN = 19, 792 FCTL_ISACTIVEPANEL = 20, 793 FCTL_GETPANELITEM = 21, 794 FCTL_GETSELECTEDPANELITEM = 22, 795 FCTL_GETCURRENTPANELITEM = 23, 796 FCTL_GETPANELDIRECTORY = 24, 797 FCTL_GETCOLUMNTYPES = 25, 798 FCTL_GETCOLUMNWIDTHS = 26, 799 FCTL_BEGINSELECTION = 27, 800 FCTL_ENDSELECTION = 28, 801 FCTL_CLEARSELECTION = 29, 802 FCTL_SETDIRECTORIESFIRST = 30, 803 FCTL_GETPANELFORMAT = 31, 804 FCTL_GETPANELHOSTFILE = 32, 805 FCTL_GETPANELPREFIX = 34, 806 FCTL_SETACTIVEPANEL = 35, 807 } 808 809 alias extern (Windows) void function( 810 intptr_t X, 811 intptr_t Y, 812 in FarColor* Color, 813 in wchar* Str) FARAPITEXT; 814 815 alias extern (Windows) HANDLE function(intptr_t X1, intptr_t Y1, intptr_t X2, intptr_t Y2)FARAPISAVESCREEN; 816 817 alias extern (Windows) void function(HANDLE hScreen)FARAPIRESTORESCREEN; 818 819 alias extern (Windows) intptr_t function( 820 in wchar* Dir, 821 PluginPanelItem** pPanelItem, 822 size_t* pItemsNumber) FARAPIGETDIRLIST; 823 824 alias extern (Windows) intptr_t function( 825 in GUID* PluginId, 826 HANDLE hPanel, 827 in wchar* Dir, 828 PluginPanelItem** pPanelItem, 829 size_t* pItemsNumber) FARAPIGETPLUGINDIRLIST; 830 831 alias extern (Windows) void function(PluginPanelItem* PanelItem, size_t nItemsNumber)FARAPIFREEDIRLIST; 832 833 alias extern (Windows) void function(HANDLE hPanel, PluginPanelItem* PanelItem, size_t nItemsNumber)FARAPIFREEPLUGINDIRLIST; 834 835 alias ulong VIEWER_FLAGS; 836 const VIEWER_FLAGS 837 VF_NONMODAL = 0x0000000000000001UL, 838 VF_DELETEONCLOSE = 0x0000000000000002UL, 839 VF_ENABLE_F6 = 0x0000000000000004UL, 840 VF_DISABLEHISTORY = 0x0000000000000008UL, 841 VF_IMMEDIATERETURN = 0x0000000000000100UL, 842 VF_DELETEONLYFILEONCLOSE = 0x0000000000000200UL, 843 VF_NONE = 0UL; 844 845 alias extern (Windows) intptr_t function( 846 in wchar* FileName, 847 in wchar* Title, 848 intptr_t X1, 849 intptr_t Y1, 850 intptr_t X2, 851 intptr_t Y2, 852 VIEWER_FLAGS Flags, 853 uintptr_t CodePage) FARAPIVIEWER; 854 855 alias ulong EDITOR_FLAGS; 856 const EDITOR_FLAGS 857 EF_NONMODAL = 0x0000000000000001UL, 858 EF_CREATENEW = 0x0000000000000002UL, 859 EF_ENABLE_F6 = 0x0000000000000004UL, 860 EF_DISABLEHISTORY = 0x0000000000000008UL, 861 EF_DELETEONCLOSE = 0x0000000000000010UL, 862 EF_IMMEDIATERETURN = 0x0000000000000100UL, 863 EF_DELETEONLYFILEONCLOSE = 0x0000000000000200UL, 864 EF_LOCKED = 0x0000000000000400UL, 865 EF_DISABLESAVEPOS = 0x0000000000000800UL, 866 EF_OPENMODE_MASK = 0x00000000F0000000UL, 867 EF_OPENMODE_QUERY = 0x0000000000000000UL, 868 EF_OPENMODE_NEWIFOPEN = 0x0000000010000000UL, 869 EF_OPENMODE_USEEXISTING = 0x0000000020000000UL, 870 EF_OPENMODE_BREAKIFOPEN = 0x0000000030000000UL, 871 EF_OPENMODE_RELOADIFOPEN = 0x0000000040000000UL, 872 EN_NONE = 0UL; 873 874 enum EDITOR_EXITCODE 875 { 876 EEC_OPEN_ERROR = 0, 877 EEC_MODIFIED = 1, 878 EEC_NOT_MODIFIED = 2, 879 EEC_LOADING_INTERRUPTED = 3, 880 } 881 882 alias extern (Windows) intptr_t function( 883 in wchar* FileName, 884 in wchar* Title, 885 intptr_t X1, 886 intptr_t Y1, 887 intptr_t X2, 888 intptr_t Y2, 889 EDITOR_FLAGS Flags, 890 int StartLine, 891 int StartChar, 892 uintptr_t CodePage) FARAPIEDITOR; 893 894 alias extern (Windows) const(wchar)* function( 895 in GUID* PluginId, 896 intptr_t MsgId) FARAPIGETMSG; 897 898 alias ulong FARHELPFLAGS; 899 const FARHELPFLAGS 900 FHELP_NOSHOWERROR = 0x0000000080000000UL, 901 FHELP_SELFHELP = 0x0000000000000000UL, 902 FHELP_FARHELP = 0x0000000000000001UL, 903 FHELP_CUSTOMFILE = 0x0000000000000002UL, 904 FHELP_CUSTOMPATH = 0x0000000000000004UL, 905 FHELP_GUID = 0x0000000000000008UL, 906 FHELP_USECONTENTS = 0x0000000040000000UL, 907 FHELP_NONE = 0UL; 908 909 alias extern (Windows) BOOL function( 910 in wchar* ModuleName, 911 in wchar* Topic, 912 FARHELPFLAGS Flags) FARAPISHOWHELP; 913 914 enum ADVANCED_CONTROL_COMMANDS 915 { 916 ACTL_GETFARMANAGERVERSION = 0, 917 ACTL_WAITKEY = 2, 918 ACTL_GETCOLOR = 3, 919 ACTL_GETARRAYCOLOR = 4, 920 ACTL_GETWINDOWINFO = 6, 921 ACTL_GETWINDOWCOUNT = 7, 922 ACTL_SETCURRENTWINDOW = 8, 923 ACTL_COMMIT = 9, 924 ACTL_GETFARHWND = 10, 925 ACTL_SETARRAYCOLOR = 16, 926 ACTL_REDRAWALL = 19, 927 ACTL_SYNCHRO = 20, 928 ACTL_SETPROGRESSSTATE = 21, 929 ACTL_SETPROGRESSVALUE = 22, 930 ACTL_QUIT = 23, 931 ACTL_GETFARRECT = 24, 932 ACTL_GETCURSORPOS = 25, 933 ACTL_SETCURSORPOS = 26, 934 ACTL_PROGRESSNOTIFY = 27, 935 ACTL_GETWINDOWTYPE = 28, 936 } 937 938 enum FAR_MACRO_CONTROL_COMMANDS 939 { 940 MCTL_LOADALL = 0, 941 MCTL_SAVEALL = 1, 942 MCTL_SENDSTRING = 2, 943 MCTL_GETSTATE = 5, 944 MCTL_GETAREA = 6, 945 MCTL_ADDMACRO = 7, 946 MCTL_DELMACRO = 8, 947 MCTL_GETLASTERROR = 9, 948 MCTL_EXECSTRING = 10, 949 } 950 951 alias ulong FARKEYMACROFLAGS; 952 const FARKEYMACROFLAGS 953 KMFLAGS_SILENTCHECK = 0x0000000000000001UL, 954 KMFLAGS_NOSENDKEYSTOPLUGINS = 0x0000000000000002UL, 955 KMFLAGS_ENABLEOUTPUT = 0x0000000000000004UL, 956 KMFLAGS_LANGMASK = 0x0000000000000070UL, // 3 bits reserved for 8 languages 957 KMFLAGS_LUA = 0x0000000000000000UL, 958 KMFLAGS_MOONSCRIPT = 0x0000000000000010UL, 959 KMFLAGS_NONE = 0UL; 960 961 enum FARMACROSENDSTRINGCOMMAND 962 { 963 MSSC_POST =0, 964 MSSC_CHECK =2, 965 } 966 967 enum FARMACROAREA 968 { 969 MACROAREA_OTHER = 0, // Reserved 970 MACROAREA_SHELL = 1, // File panels 971 MACROAREA_VIEWER = 2, // Internal viewer program 972 MACROAREA_EDITOR = 3, // Editor 973 MACROAREA_DIALOG = 4, // Dialogs 974 MACROAREA_SEARCH = 5, // Quick search in panels 975 MACROAREA_DISKS = 6, // Menu of disk selection 976 MACROAREA_MAINMENU = 7, // Main menu 977 MACROAREA_MENU = 8, // Other menus 978 MACROAREA_HELP = 9, // Help system 979 MACROAREA_INFOPANEL = 10, // Info panel 980 MACROAREA_QVIEWPANEL = 11, // Quick view panel 981 MACROAREA_TREEPANEL = 12, // Folders tree panel 982 MACROAREA_FINDFOLDER = 13, // Find folder 983 MACROAREA_USERMENU = 14, // User menu 984 MACROAREA_SHELLAUTOCOMPLETION = 15, // Autocompletion list in command line 985 MACROAREA_DIALOGAUTOCOMPLETION = 16, // Autocompletion list in dialogs 986 MACROAREA_GRABBER = 17, // Mode of copying text from the screen 987 MACROAREA_DESKTOP = 18, // Desktop 988 989 MACROAREA_COMMON = 255, 990 } 991 992 enum FARMACROSTATE 993 { 994 MACROSTATE_NOMACRO = 0, 995 MACROSTATE_EXECUTING = 1, 996 MACROSTATE_EXECUTING_COMMON = 2, 997 MACROSTATE_RECORDING = 3, 998 MACROSTATE_RECORDING_COMMON = 4, 999 } 1000 1001 enum FARMACROPARSEERRORCODE 1002 { 1003 MPEC_SUCCESS = 0, 1004 MPEC_ERROR = 1, 1005 } 1006 1007 struct MacroParseResult 1008 { 1009 size_t StructSize; 1010 DWORD ErrCode; 1011 COORD ErrPos; 1012 const(wchar)* ErrSrc; 1013 } 1014 1015 struct MacroSendMacroText 1016 { 1017 size_t StructSize; 1018 FARKEYMACROFLAGS Flags; 1019 INPUT_RECORD AKey; 1020 const(wchar)* SequenceText; 1021 } 1022 1023 alias ulong FARADDKEYMACROFLAGS; 1024 const FARADDKEYMACROFLAGS AKMFLAGS_NONE = 0UL; 1025 1026 alias extern (Windows) intptr_t function(void* Id, FARADDKEYMACROFLAGS Flags)FARMACROCALLBACK; 1027 1028 struct MacroAddMacro 1029 { 1030 size_t StructSize; 1031 void* Id; 1032 const(wchar)* SequenceText; 1033 const(wchar)* Description; 1034 FARKEYMACROFLAGS Flags; 1035 INPUT_RECORD AKey; 1036 FARMACROAREA Area; 1037 FARMACROCALLBACK Callback; 1038 intptr_t Priority; 1039 } 1040 1041 enum FARMACROVARTYPE 1042 { 1043 FMVT_UNKNOWN = 0, 1044 FMVT_INTEGER = 1, 1045 FMVT_STRING = 2, 1046 FMVT_DOUBLE = 3, 1047 FMVT_BOOLEAN = 4, 1048 FMVT_BINARY = 5, 1049 FMVT_POINTER = 6, 1050 FMVT_NIL = 7, 1051 FMVT_ARRAY = 8, 1052 FMVT_PANEL = 9, 1053 } 1054 1055 struct FarMacroValueBinary 1056 { 1057 void* Data; 1058 size_t Size; 1059 } 1060 1061 struct FarMacroValueArray 1062 { 1063 FarMacroValue* Values; 1064 size_t Count; 1065 } 1066 1067 struct FarMacroValue 1068 { 1069 FARMACROVARTYPE Type = FARMACROVARTYPE.FMVT_NIL; 1070 union 1071 { 1072 long Integer; 1073 long Boolean; 1074 double Double; 1075 const(wchar)* String; 1076 void* Pointer; 1077 FarMacroValueBinary Binary; 1078 FarMacroValueArray Array; 1079 } 1080 1081 this(int v) { Type=FARMACROVARTYPE.FMVT_INTEGER; Integer=v; } 1082 this(uint v) { Type=FARMACROVARTYPE.FMVT_INTEGER; Integer=v; } 1083 this(long v) { Type=FARMACROVARTYPE.FMVT_INTEGER; Integer=v; } 1084 this(ulong v) { Type=FARMACROVARTYPE.FMVT_INTEGER; Integer=v; } 1085 this(bool v) { Type=FARMACROVARTYPE.FMVT_BOOLEAN; Boolean=v; } 1086 this(double v) { Type=FARMACROVARTYPE.FMVT_DOUBLE; Double=v; } 1087 this(const(wchar)* v) { Type=FARMACROVARTYPE.FMVT_STRING; String=v; } 1088 this(void* v) { Type=FARMACROVARTYPE.FMVT_POINTER; Pointer=v; } 1089 this(ref const GUID v) { Type=FARMACROVARTYPE.FMVT_BINARY; Binary.Data=cast(void*)&v; Binary.Size=GUID.sizeof; } 1090 this(FarMacroValue* arr,size_t count) { Type=FARMACROVARTYPE.FMVT_ARRAY; Array.Values=arr; Array.Count=count; } 1091 } 1092 1093 struct FarMacroCall 1094 { 1095 size_t StructSize; 1096 size_t Count; 1097 FarMacroValue* Values; 1098 extern (Windows) void function(void* CallbackData, FarMacroValue* Values, size_t Count) Callback; 1099 void* CallbackData; 1100 } 1101 1102 struct FarGetValue 1103 { 1104 size_t StructSize; 1105 intptr_t Type; 1106 FarMacroValue Value; 1107 } 1108 1109 struct MacroExecuteString 1110 { 1111 size_t StructSize; 1112 FARKEYMACROFLAGS Flags; 1113 const(wchar)* SequenceText; 1114 size_t InCount; 1115 FarMacroValue* InValues; 1116 size_t OutCount; 1117 const(FarMacroValue)* OutValues; 1118 } 1119 1120 struct FarMacroLoad 1121 { 1122 size_t StructSize; 1123 const(wchar)* Path; 1124 ulong Flags; 1125 } 1126 1127 alias ulong FARSETCOLORFLAGS; 1128 const FARSETCOLORFLAGS 1129 FSETCLR_REDRAW = 0x0000000000000001UL, 1130 FSETCLR_NONE = 0UL; 1131 1132 struct FarSetColors 1133 { 1134 size_t StructSize; 1135 FARSETCOLORFLAGS Flags; 1136 size_t StartIndex; 1137 size_t ColorsCount; 1138 FarColor* Colors; 1139 } 1140 1141 enum WINDOWINFO_TYPE 1142 { 1143 WTYPE_DESKTOP = 0, 1144 WTYPE_PANELS = 1, 1145 WTYPE_VIEWER = 2, 1146 WTYPE_EDITOR = 3, 1147 WTYPE_DIALOG = 4, 1148 WTYPE_VMENU = 5, 1149 WTYPE_HELP = 6, 1150 WTYPE_COMBOBOX = 7, 1151 WTYPE_GRABBER = 8, 1152 WTYPE_HMENU = 9, 1153 } 1154 1155 alias ulong WINDOWINFO_FLAGS; 1156 const WINDOWINFO_FLAGS 1157 WIF_MODIFIED = 0x0000000000000001UL, 1158 WIF_CURRENT = 0x0000000000000002UL, 1159 WIF_MODAL = 0x0000000000000004UL, 1160 WIF_NONE = 0; 1161 1162 struct WindowInfo 1163 { 1164 size_t StructSize; 1165 intptr_t Id; 1166 wchar* TypeName; 1167 wchar* Name; 1168 intptr_t TypeNameSize; 1169 intptr_t NameSize; 1170 intptr_t Pos; 1171 WINDOWINFO_TYPE Type; 1172 WINDOWINFO_FLAGS Flags; 1173 } 1174 1175 struct WindowType 1176 { 1177 size_t StructSize; 1178 WINDOWINFO_TYPE Type; 1179 } 1180 1181 enum TASKBARPROGRESSTATE 1182 { 1183 TBPS_NOPROGRESS =0x0, 1184 TBPS_INDETERMINATE=0x1, 1185 TBPS_NORMAL =0x2, 1186 TBPS_ERROR =0x4, 1187 TBPS_PAUSED =0x8, 1188 } 1189 1190 struct ProgressValue 1191 { 1192 size_t StructSize; 1193 ulong Completed; 1194 ulong Total; 1195 } 1196 1197 enum VIEWER_CONTROL_COMMANDS 1198 { 1199 VCTL_GETINFO = 0, 1200 VCTL_QUIT = 1, 1201 VCTL_REDRAW = 2, 1202 VCTL_SETKEYBAR = 3, 1203 VCTL_SETPOSITION = 4, 1204 VCTL_SELECT = 5, 1205 VCTL_SETMODE = 6, 1206 VCTL_GETFILENAME = 7, 1207 } 1208 1209 alias ulong VIEWER_OPTIONS; 1210 const VIEWER_OPTIONS 1211 VOPT_SAVEFILEPOSITION = 0x0000000000000001UL, 1212 VOPT_AUTODETECTCODEPAGE = 0x0000000000000002UL, 1213 VOPT_SHOWTITLEBAR = 0x0000000000000004UL, 1214 VOPT_SHOWKEYBAR = 0x0000000000000008UL, 1215 VOPT_SHOWSCROLLBAR = 0x0000000000000010UL, 1216 VOPT_QUICKVIEW = 0x0000000000000020UL, 1217 VOPT_NONE = 0UL; 1218 1219 enum VIEWER_SETMODE_TYPES 1220 { 1221 VSMT_VIEWMODE = 0, 1222 VSMT_WRAP = 1, 1223 VSMT_WORDWRAP = 2, 1224 } 1225 1226 alias ulong VIEWER_SETMODEFLAGS_TYPES; 1227 const VIEWER_SETMODEFLAGS_TYPES 1228 VSMFL_REDRAW = 0x0000000000000001UL, 1229 VSMFL_NONE = 0; 1230 1231 struct ViewerSetMode 1232 { 1233 size_t StructSize; 1234 VIEWER_SETMODE_TYPES Type; 1235 union 1236 { 1237 intptr_t iParam; 1238 wchar* wszParam; 1239 } 1240 VIEWER_SETMODEFLAGS_TYPES Flags; 1241 } 1242 1243 struct ViewerSelect 1244 { 1245 size_t StructSize; 1246 long BlockStartPos; 1247 long BlockLen; 1248 } 1249 1250 alias ulong VIEWER_SETPOS_FLAGS; 1251 const VIEWER_SETPOS_FLAGS 1252 VSP_NOREDRAW = 0x0000000000000001UL, 1253 VSP_PERCENT = 0x0000000000000002UL, 1254 VSP_RELATIVE = 0x0000000000000004UL, 1255 VSP_NORETNEWPOS = 0x0000000000000008UL, 1256 VSP_NONE = 0; 1257 1258 struct ViewerSetPosition 1259 { 1260 size_t StructSize; 1261 VIEWER_SETPOS_FLAGS Flags; 1262 long StartPos; 1263 long LeftPos; 1264 } 1265 1266 alias ulong VIEWER_MODE_FLAGS; 1267 const VIEWER_MODE_FLAGS 1268 VMF_WRAP = 0x0000000000000001UL, 1269 VMF_WORDWRAP = 0x0000000000000002UL, 1270 VMF_NONE = 0; 1271 1272 enum VIEWER_MODE_TYPE 1273 { 1274 VMT_TEXT =0, 1275 VMT_HEX =1, 1276 VMT_DUMP =2, 1277 } 1278 1279 struct ViewerMode 1280 { 1281 uintptr_t CodePage; 1282 VIEWER_MODE_FLAGS Flags; 1283 VIEWER_MODE_TYPE ViewMode; 1284 } 1285 1286 struct ViewerInfo 1287 { 1288 size_t StructSize; 1289 intptr_t ViewerID; 1290 intptr_t TabSize; 1291 ViewerMode CurMode; 1292 long FileSize; 1293 long FilePos; 1294 long LeftPos; 1295 VIEWER_OPTIONS Options; 1296 intptr_t WindowSizeX; 1297 intptr_t WindowSizeY; 1298 } 1299 1300 enum VIEWER_EVENTS 1301 { 1302 VE_READ =0, 1303 VE_CLOSE =1, 1304 1305 VE_GOTFOCUS =6, 1306 VE_KILLFOCUS =7, 1307 } 1308 1309 enum EDITOR_EVENTS 1310 { 1311 EE_READ =0, 1312 EE_SAVE =1, 1313 EE_REDRAW =2, 1314 EE_CLOSE =3, 1315 1316 EE_GOTFOCUS =6, 1317 EE_KILLFOCUS =7, 1318 EE_CHANGE =8, 1319 } 1320 1321 enum DIALOG_EVENTS 1322 { 1323 DE_DLGPROCINIT =0, 1324 DE_DEFDLGPROCINIT =1, 1325 DE_DLGPROCEND =2, 1326 } 1327 1328 enum SYNCHRO_EVENTS 1329 { 1330 SE_COMMONSYNCHRO =0, 1331 } 1332 1333 const EEREDRAW_ALL = cast(void*)0; 1334 const CURRENT_EDITOR = -1; 1335 1336 enum EDITOR_CONTROL_COMMANDS 1337 { 1338 ECTL_GETSTRING = 0, 1339 ECTL_SETSTRING = 1, 1340 ECTL_INSERTSTRING = 2, 1341 ECTL_DELETESTRING = 3, 1342 ECTL_DELETECHAR = 4, 1343 ECTL_INSERTTEXT = 5, 1344 ECTL_GETINFO = 6, 1345 ECTL_SETPOSITION = 7, 1346 ECTL_SELECT = 8, 1347 ECTL_REDRAW = 9, 1348 ECTL_TABTOREAL = 10, 1349 ECTL_REALTOTAB = 11, 1350 ECTL_EXPANDTABS = 12, 1351 ECTL_SETTITLE = 13, 1352 ECTL_READINPUT = 14, 1353 ECTL_PROCESSINPUT = 15, 1354 ECTL_ADDCOLOR = 16, 1355 ECTL_GETCOLOR = 17, 1356 ECTL_SAVEFILE = 18, 1357 ECTL_QUIT = 19, 1358 ECTL_SETKEYBAR = 20, 1359 1360 ECTL_SETPARAM = 22, 1361 ECTL_GETBOOKMARKS = 23, 1362 ECTL_DELETEBLOCK = 25, 1363 ECTL_ADDSESSIONBOOKMARK = 26, 1364 ECTL_PREVSESSIONBOOKMARK = 27, 1365 ECTL_NEXTSESSIONBOOKMARK = 28, 1366 ECTL_CLEARSESSIONBOOKMARKS = 29, 1367 ECTL_DELETESESSIONBOOKMARK = 30, 1368 ECTL_GETSESSIONBOOKMARKS = 31, 1369 ECTL_UNDOREDO = 32, 1370 ECTL_GETFILENAME = 33, 1371 ECTL_DELCOLOR = 34, 1372 ECTL_SUBSCRIBECHANGEEVENT = 36, 1373 ECTL_UNSUBSCRIBECHANGEEVENT = 37, 1374 ECTL_GETTITLE = 38, 1375 } 1376 1377 enum EDITOR_SETPARAMETER_TYPES 1378 { 1379 ESPT_TABSIZE = 0, 1380 ESPT_EXPANDTABS = 1, 1381 ESPT_AUTOINDENT = 2, 1382 ESPT_CURSORBEYONDEOL = 3, 1383 ESPT_CHARCODEBASE = 4, 1384 ESPT_CODEPAGE = 5, 1385 ESPT_SAVEFILEPOSITION = 6, 1386 ESPT_LOCKMODE = 7, 1387 ESPT_SETWORDDIV = 8, 1388 ESPT_GETWORDDIV = 9, 1389 ESPT_SHOWWHITESPACE = 10, 1390 ESPT_SETBOM = 11, 1391 } 1392 1393 struct EditorSetParameter 1394 { 1395 size_t StructSize; 1396 EDITOR_SETPARAMETER_TYPES Type; 1397 union 1398 { 1399 intptr_t iParam; 1400 wchar* wszParam; 1401 intptr_t Reserved; 1402 } 1403 ulong Flags; 1404 size_t Size; 1405 } 1406 1407 enum EDITOR_UNDOREDO_COMMANDS 1408 { 1409 EUR_BEGIN = 0, 1410 EUR_END = 1, 1411 EUR_UNDO = 2, 1412 EUR_REDO = 3, 1413 } 1414 1415 struct EditorUndoRedo 1416 { 1417 size_t StructSize; 1418 EDITOR_UNDOREDO_COMMANDS Command; 1419 } 1420 1421 struct EditorGetString 1422 { 1423 size_t StructSize; 1424 intptr_t StringNumber; 1425 intptr_t StringLength; 1426 const(wchar)* StringText; 1427 const(wchar)* StringEOL; 1428 intptr_t SelStart; 1429 intptr_t SelEnd; 1430 } 1431 1432 struct EditorSetString 1433 { 1434 size_t StructSize; 1435 intptr_t StringNumber; 1436 intptr_t StringLength; 1437 const(wchar)* StringText; 1438 const(wchar)* StringEOL; 1439 } 1440 1441 enum EXPAND_TABS 1442 { 1443 EXPAND_NOTABS = 0, 1444 EXPAND_ALLTABS = 1, 1445 EXPAND_NEWTABS = 2, 1446 } 1447 1448 enum EDITOR_OPTIONS 1449 { 1450 EOPT_EXPANDALLTABS = 0x00000001, 1451 EOPT_PERSISTENTBLOCKS = 0x00000002, 1452 EOPT_DELREMOVESBLOCKS = 0x00000004, 1453 EOPT_AUTOINDENT = 0x00000008, 1454 EOPT_SAVEFILEPOSITION = 0x00000010, 1455 EOPT_AUTODETECTCODEPAGE= 0x00000020, 1456 EOPT_CURSORBEYONDEOL = 0x00000040, 1457 EOPT_EXPANDONLYNEWTABS = 0x00000080, 1458 EOPT_SHOWWHITESPACE = 0x00000100, 1459 EOPT_BOM = 0x00000200, 1460 EOPT_SHOWLINEBREAK = 0x00000400, 1461 EOPT_SHOWTITLEBAR = 0x00000800, 1462 EOPT_SHOWKEYBAR = 0x00001000, 1463 EOPT_SHOWSCROLLBAR = 0x00002000, 1464 } 1465 1466 enum EDITOR_BLOCK_TYPES 1467 { 1468 BTYPE_NONE = 0, 1469 BTYPE_STREAM = 1, 1470 BTYPE_COLUMN = 2, 1471 } 1472 1473 enum EDITOR_CURRENTSTATE 1474 { 1475 ECSTATE_MODIFIED = 0x00000001, 1476 ECSTATE_SAVED = 0x00000002, 1477 ECSTATE_LOCKED = 0x00000004, 1478 } 1479 1480 struct EditorInfo 1481 { 1482 size_t StructSize; 1483 intptr_t EditorID; 1484 intptr_t WindowSizeX; 1485 intptr_t WindowSizeY; 1486 intptr_t TotalLines; 1487 intptr_t CurLine; 1488 intptr_t CurPos; 1489 intptr_t CurTabPos; 1490 intptr_t TopScreenLine; 1491 intptr_t LeftPos; 1492 intptr_t Overtype; 1493 intptr_t BlockType; 1494 intptr_t BlockStartLine; 1495 uintptr_t Options; 1496 intptr_t TabSize; 1497 size_t BookmarkCount; 1498 size_t SessionBookmarkCount; 1499 uintptr_t CurState; 1500 uintptr_t CodePage; 1501 } 1502 1503 struct EditorBookmarks 1504 { 1505 size_t StructSize; 1506 size_t Size; 1507 size_t Count; 1508 intptr_t* Line; 1509 intptr_t* Cursor; 1510 intptr_t* ScreenLine; 1511 intptr_t* LeftPos; 1512 } 1513 1514 struct EditorSetPosition 1515 { 1516 size_t StructSize; 1517 intptr_t CurLine; 1518 intptr_t CurPos; 1519 intptr_t CurTabPos; 1520 intptr_t TopScreenLine; 1521 intptr_t LeftPos; 1522 intptr_t Overtype; 1523 } 1524 1525 struct EditorSelect 1526 { 1527 size_t StructSize; 1528 intptr_t BlockType; 1529 intptr_t BlockStartLine; 1530 intptr_t BlockStartPos; 1531 intptr_t BlockWidth; 1532 intptr_t BlockHeight; 1533 } 1534 1535 struct EditorConvertPos 1536 { 1537 size_t StructSize; 1538 intptr_t StringNumber; 1539 intptr_t SrcPos; 1540 intptr_t DestPos; 1541 } 1542 1543 1544 alias ulong EDITORCOLORFLAGS; 1545 const EDITORCOLORFLAGS 1546 ECF_TABMARKFIRST = 0x0000000000000001UL, 1547 ECF_TABMARKCURRENT = 0x0000000000000002UL, 1548 ECF_AUTODELETE = 0x0000000000000004UL, 1549 ECF_NONE = 0; 1550 1551 struct EditorColor 1552 { 1553 size_t StructSize; 1554 intptr_t StringNumber; 1555 intptr_t ColorItem; 1556 intptr_t StartPos; 1557 intptr_t EndPos; 1558 uintptr_t Priority; 1559 EDITORCOLORFLAGS Flags; 1560 FarColor Color; 1561 GUID Owner; 1562 } 1563 1564 struct EditorDeleteColor 1565 { 1566 size_t StructSize; 1567 GUID Owner; 1568 intptr_t StringNumber; 1569 intptr_t StartPos; 1570 } 1571 1572 const EDITOR_COLOR_NORMAL_PRIORITY = 0x80000000U; 1573 1574 struct EditorSaveFile 1575 { 1576 size_t StructSize; 1577 const(wchar)* FileName; 1578 const(wchar)* FileEOL; 1579 uintptr_t CodePage; 1580 } 1581 1582 enum EDITOR_CHANGETYPE 1583 { 1584 ECTYPE_CHANGED = 0, 1585 ECTYPE_ADDED = 1, 1586 ECTYPE_DELETED = 2, 1587 } 1588 1589 struct EditorChange 1590 { 1591 size_t StructSize; 1592 EDITOR_CHANGETYPE Type; 1593 intptr_t StringNumber; 1594 } 1595 1596 struct EditorSubscribeChangeEvent 1597 { 1598 size_t StructSize; 1599 GUID PluginId; 1600 } 1601 1602 alias ulong INPUTBOXFLAGS; 1603 const INPUTBOXFLAGS 1604 FIB_ENABLEEMPTY = 0x0000000000000001UL, 1605 FIB_PASSWORD = 0x0000000000000002UL, 1606 FIB_EXPANDENV = 0x0000000000000004UL, 1607 FIB_NOUSELASTHISTORY = 0x0000000000000008UL, 1608 FIB_BUTTONS = 0x0000000000000010UL, 1609 FIB_NOAMPERSAND = 0x0000000000000020UL, 1610 FIB_EDITPATH = 0x0000000000000040UL, 1611 FIB_EDITPATHEXEC = 0x0000000000000080UL, 1612 FIB_NONE = 0UL; 1613 1614 alias extern (Windows) intptr_t function( 1615 in GUID* PluginId, 1616 in GUID* Id, 1617 in wchar* Title, 1618 in wchar* SubTitle, 1619 in wchar* HistoryName, 1620 in wchar* SrcText, 1621 wchar* DestText, 1622 size_t DestSize, 1623 in wchar* HelpTopic, 1624 INPUTBOXFLAGS Flags) FARAPIINPUTBOX; 1625 1626 enum FAR_PLUGINS_CONTROL_COMMANDS 1627 { 1628 PCTL_LOADPLUGIN = 0, 1629 PCTL_UNLOADPLUGIN = 1, 1630 PCTL_FORCEDLOADPLUGIN = 2, 1631 PCTL_FINDPLUGIN = 3, 1632 PCTL_GETPLUGININFORMATION = 4, 1633 PCTL_GETPLUGINS = 5, 1634 } 1635 1636 enum FAR_PLUGIN_LOAD_TYPE 1637 { 1638 PLT_PATH = 0, 1639 } 1640 1641 enum FAR_PLUGIN_FIND_TYPE 1642 { 1643 PFM_GUID = 0, 1644 PFM_MODULENAME = 1, 1645 } 1646 1647 alias ulong FAR_PLUGIN_FLAGS; 1648 const FAR_PLUGIN_FLAGS 1649 FPF_LOADED = 0x0000000000000001UL, 1650 FPF_ANSI = 0x1000000000000000UL, 1651 FPF_NONE = 0UL; 1652 1653 enum FAR_FILE_FILTER_CONTROL_COMMANDS 1654 { 1655 FFCTL_CREATEFILEFILTER = 0, 1656 FFCTL_FREEFILEFILTER = 1, 1657 FFCTL_OPENFILTERSMENU = 2, 1658 FFCTL_STARTINGTOFILTER = 3, 1659 FFCTL_ISFILEINFILTER = 4, 1660 } 1661 1662 enum FAR_FILE_FILTER_TYPE 1663 { 1664 FFT_PANEL = 0, 1665 FFT_FINDFILE = 1, 1666 FFT_COPY = 2, 1667 FFT_SELECT = 3, 1668 FFT_CUSTOM = 4, 1669 } 1670 1671 enum FAR_REGEXP_CONTROL_COMMANDS 1672 { 1673 RECTL_CREATE = 0, 1674 RECTL_FREE = 1, 1675 RECTL_COMPILE = 2, 1676 RECTL_OPTIMIZE = 3, 1677 RECTL_MATCHEX = 4, 1678 RECTL_SEARCHEX = 5, 1679 RECTL_BRACKETSCOUNT = 6, 1680 } 1681 1682 struct RegExpMatch 1683 { 1684 intptr_t start,end; 1685 } 1686 1687 struct RegExpSearch 1688 { 1689 const(wchar)* Text; 1690 intptr_t Position; 1691 intptr_t Length; 1692 RegExpMatch* Match; 1693 intptr_t Count; 1694 void* Reserved; 1695 } 1696 1697 enum FAR_SETTINGS_CONTROL_COMMANDS 1698 { 1699 SCTL_CREATE = 0, 1700 SCTL_FREE = 1, 1701 SCTL_SET = 2, 1702 SCTL_GET = 3, 1703 SCTL_ENUM = 4, 1704 SCTL_DELETE = 5, 1705 SCTL_CREATESUBKEY = 6, 1706 SCTL_OPENSUBKEY = 7, 1707 } 1708 1709 enum FARSETTINGSTYPES 1710 { 1711 FST_UNKNOWN = 0, 1712 FST_SUBKEY = 1, 1713 FST_QWORD = 2, 1714 FST_STRING = 3, 1715 FST_DATA = 4, 1716 } 1717 1718 enum FARSETTINGS_SUBFOLDERS 1719 { 1720 FSSF_ROOT = 0, 1721 FSSF_HISTORY_CMD = 1, 1722 FSSF_HISTORY_FOLDER = 2, 1723 FSSF_HISTORY_VIEW = 3, 1724 FSSF_HISTORY_EDIT = 4, 1725 FSSF_HISTORY_EXTERNAL = 5, 1726 FSSF_FOLDERSHORTCUT_0 = 6, 1727 FSSF_FOLDERSHORTCUT_1 = 7, 1728 FSSF_FOLDERSHORTCUT_2 = 8, 1729 FSSF_FOLDERSHORTCUT_3 = 9, 1730 FSSF_FOLDERSHORTCUT_4 = 10, 1731 FSSF_FOLDERSHORTCUT_5 = 11, 1732 FSSF_FOLDERSHORTCUT_6 = 12, 1733 FSSF_FOLDERSHORTCUT_7 = 13, 1734 FSSF_FOLDERSHORTCUT_8 = 14, 1735 FSSF_FOLDERSHORTCUT_9 = 15, 1736 FSSF_CONFIRMATIONS = 16, 1737 FSSF_SYSTEM = 17, 1738 FSSF_PANEL = 18, 1739 FSSF_EDITOR = 19, 1740 FSSF_SCREEN = 20, 1741 FSSF_DIALOG = 21, 1742 FSSF_INTERFACE = 22, 1743 FSSF_PANELLAYOUT = 23, 1744 } 1745 1746 enum FAR_PLUGIN_SETTINGS_LOCATION 1747 { 1748 PSL_ROAMING = 0, 1749 PSL_LOCAL = 1, 1750 } 1751 1752 struct FarSettingsCreate 1753 { 1754 size_t StructSize; 1755 GUID Guid; 1756 HANDLE Handle; 1757 } 1758 1759 struct FarSettingsItemData 1760 { 1761 size_t Size; 1762 const(void)* Data; 1763 } 1764 1765 struct FarSettingsItem 1766 { 1767 size_t StructSize; 1768 size_t Root; 1769 const(wchar)* Name; 1770 FARSETTINGSTYPES Type; 1771 union 1772 { 1773 ulong Number; 1774 const(wchar)* String; 1775 FarSettingsItemData Data; 1776 } 1777 } 1778 1779 struct FarSettingsName 1780 { 1781 const(wchar)* Name; 1782 FARSETTINGSTYPES Type; 1783 } 1784 1785 struct FarSettingsHistory 1786 { 1787 const(wchar)* Name; 1788 const(wchar)* Param; 1789 GUID PluginId; 1790 const(wchar)* File; 1791 FILETIME Time; 1792 BOOL Lock; 1793 } 1794 1795 struct FarSettingsEnum 1796 { 1797 size_t StructSize; 1798 size_t Root; 1799 size_t Count; 1800 union 1801 { 1802 const(FarSettingsName)* Items; 1803 const(FarSettingsHistory)* Histories; 1804 } 1805 } 1806 1807 struct FarSettingsValue 1808 { 1809 size_t StructSize; 1810 size_t Root; 1811 const(wchar)* Value; 1812 } 1813 1814 alias extern (Windows) intptr_t function(HANDLE hPanel, FILE_CONTROL_COMMANDS Command, intptr_t Param1, void* Param2)FARAPIPANELCONTROL; 1815 1816 alias extern (Windows) intptr_t function( 1817 in GUID* PluginId, 1818 ADVANCED_CONTROL_COMMANDS Command, 1819 intptr_t Param1, 1820 void* Param2) FARAPIADVCONTROL; 1821 1822 alias extern (Windows) intptr_t function(intptr_t ViewerID, VIEWER_CONTROL_COMMANDS Command, intptr_t Param1, void* Param2)FARAPIVIEWERCONTROL; 1823 1824 alias extern (Windows) intptr_t function(intptr_t EditorID, EDITOR_CONTROL_COMMANDS Command, intptr_t Param1, void* Param2)FARAPIEDITORCONTROL; 1825 1826 alias extern (Windows) intptr_t function( 1827 in GUID* PluginId, 1828 FAR_MACRO_CONTROL_COMMANDS Command, 1829 intptr_t Param1, 1830 void* Param2) FARAPIMACROCONTROL; 1831 1832 alias extern (Windows) intptr_t function(HANDLE hHandle, FAR_PLUGINS_CONTROL_COMMANDS Command, intptr_t Param1, void* Param2)FARAPIPLUGINSCONTROL; 1833 1834 alias extern (Windows) intptr_t function(HANDLE hHandle, FAR_FILE_FILTER_CONTROL_COMMANDS Command, intptr_t Param1, void* Param2)FARAPIFILEFILTERCONTROL; 1835 1836 alias extern (Windows) intptr_t function(HANDLE hHandle, FAR_REGEXP_CONTROL_COMMANDS Command, intptr_t Param1, void* Param2)FARAPIREGEXPCONTROL; 1837 1838 alias extern (Windows) intptr_t function(HANDLE hHandle, FAR_SETTINGS_CONTROL_COMMANDS Command, intptr_t Param1, void* Param2)FARAPISETTINGSCONTROL; 1839 1840 enum FARCLIPBOARD_TYPE 1841 { 1842 FCT_ANY=0, 1843 FCT_STREAM=1, 1844 FCT_COLUMN=2 1845 } 1846 1847 alias extern (C) int function(wchar* Buffer, in wchar* Format, ...) FARSTDSPRINTF; 1848 1849 alias extern (C) int function(wchar* Buffer, size_t Sizebuf, in wchar* Format, ...) FARSTDSNPRINTF; 1850 1851 alias extern (C) int function(in wchar* Buffer, in wchar* Format, ...) FARSTDSSCANF; 1852 1853 alias extern (Windows) void function(void* base, size_t nelem, size_t width, int function(in void* , in void* , void* userparam)fcmp, void* userparam) FARSTDQSORT; 1854 1855 alias extern (Windows) void* function(in void* key, in void* base, size_t nelem, size_t width, int function(in void* , in void* , void* userparam)fcmp, void* userparam) FARSTDBSEARCH; 1856 1857 alias extern (Windows) size_t function(in wchar* Computer, in wchar* Name, wchar* Owner, size_t Size) FARSTDGETFILEOWNER; 1858 1859 alias extern (Windows) size_t function(in wchar* Name) FARSTDGETNUMBEROFLINKS; 1860 1861 alias extern (Windows) int function(in wchar* s) FARSTDATOI; 1862 1863 alias extern (Windows) long function(in wchar* s) FARSTDATOI64; 1864 1865 alias extern (Windows) wchar* function(long value, wchar* Str, int radix)FARSTDITOA64; 1866 1867 alias extern (Windows) wchar* function(int value, wchar* Str, int radix)FARSTDITOA; 1868 1869 alias extern (Windows) wchar* function(wchar* Str)FARSTDLTRIM; 1870 1871 alias extern (Windows) wchar* function(wchar* Str)FARSTDRTRIM; 1872 1873 alias extern (Windows) wchar* function(wchar* Str)FARSTDTRIM; 1874 1875 alias extern (Windows) wchar* function(wchar* Str, intptr_t MaxLength)FARSTDTRUNCSTR; 1876 1877 alias extern (Windows) wchar* function(wchar* Str, intptr_t MaxLength)FARSTDTRUNCPATHSTR; 1878 1879 alias extern (Windows) wchar* function(wchar* Str)FARSTDQUOTESPACEONLY; 1880 1881 alias extern (Windows) const(wchar)* function(in wchar* Path) FARSTDPOINTTONAME; 1882 1883 alias extern (Windows) BOOL function(wchar* Path)FARSTDADDENDSLASH; 1884 1885 alias extern (Windows) BOOL function(FARCLIPBOARD_TYPE Type, in wchar* Data) FARSTDCOPYTOCLIPBOARD; 1886 1887 alias extern (Windows) size_t function(FARCLIPBOARD_TYPE Type, wchar* Data, size_t Size)FARSTDPASTEFROMCLIPBOARD; 1888 1889 alias extern (Windows) int function(wchar Ch)FARSTDLOCALISLOWER; 1890 1891 alias extern (Windows) int function(wchar Ch)FARSTDLOCALISUPPER; 1892 1893 alias extern (Windows) int function(wchar Ch)FARSTDLOCALISALPHA; 1894 1895 alias extern (Windows) int function(wchar Ch)FARSTDLOCALISALPHANUM; 1896 1897 alias extern (Windows) wchar function(wchar LowerChar)FARSTDLOCALUPPER; 1898 1899 alias extern (Windows) wchar function(wchar UpperChar)FARSTDLOCALLOWER; 1900 1901 alias extern (Windows) void function(wchar* Buf, intptr_t Length)FARSTDLOCALUPPERBUF; 1902 1903 alias extern (Windows) void function(wchar* Buf, intptr_t Length)FARSTDLOCALLOWERBUF; 1904 1905 alias extern (Windows) void function(wchar* s1)FARSTDLOCALSTRUPR; 1906 1907 alias extern (Windows) void function(wchar* s1)FARSTDLOCALSTRLWR; 1908 1909 deprecated 1910 alias extern (Windows) int function(in wchar* s1, in wchar* s2) FARSTDLOCALSTRICMP; 1911 1912 deprecated 1913 alias extern (Windows) int function(in wchar* s1, in wchar* s2, intptr_t n) FARSTDLOCALSTRNICMP; 1914 1915 alias extern (Windows) ulong function() FARSTDFARCLOCK; 1916 1917 alias extern (Windows) int function(in wchar* Str1, size_t Size1, in wchar* Str2, size_t Size2) FARSTDCOMPARESTRINGS; 1918 1919 alias ulong PROCESSNAME_FLAGS; 1920 const PROCESSNAME_FLAGS 1921 // 0xFFFF - length 1922 // 0xFF0000 - mode 1923 // 0xFFFFFFFFFF000000 - flags 1924 PN_CMPNAME = 0x0000000000000000UL, 1925 PN_CMPNAMELIST = 0x0000000000010000UL, 1926 PN_GENERATENAME = 0x0000000000020000UL, 1927 PN_CHECKMASK = 0x0000000000030000UL, 1928 PN_SKIPPATH = 0x0000000001000000UL, 1929 PN_SHOWERRORMESSAGE = 0x0000000002000000UL, 1930 PN_NONE = 0; 1931 1932 alias extern (Windows) size_t function( 1933 in wchar* param1, 1934 wchar* param2, 1935 size_t size, 1936 PROCESSNAME_FLAGS flags) FARSTDPROCESSNAME; 1937 1938 alias extern (Windows) void function(wchar* Str)FARSTDUNQUOTE; 1939 1940 alias ulong XLAT_FLAGS; 1941 const XLAT_FLAGS 1942 XLAT_SWITCHKEYBLAYOUT = 0x0000000000000001UL, 1943 XLAT_SWITCHKEYBBEEP = 0x0000000000000002UL, 1944 XLAT_USEKEYBLAYOUTNAME = 0x0000000000000004UL, 1945 XLAT_CONVERTALLCMDLINE = 0x0000000000010000UL, 1946 XLAT_NONE = 0UL; 1947 1948 alias extern (Windows) size_t function( 1949 in INPUT_RECORD* Key, 1950 wchar* KeyText, 1951 size_t Size) FARSTDINPUTRECORDTOKEYNAME; 1952 1953 alias extern (Windows) wchar* function(wchar* Line, intptr_t StartPos, intptr_t EndPos, XLAT_FLAGS Flags)FARSTDXLAT; 1954 1955 alias extern (Windows) BOOL function( 1956 in wchar* Name, 1957 INPUT_RECORD* Key) FARSTDKEYNAMETOINPUTRECORD; 1958 1959 alias extern (Windows) int function( 1960 in PluginPanelItem* FData, 1961 in wchar* FullName, 1962 void* Param) FRSUSERFUNC; 1963 1964 alias ulong FRSMODE; 1965 const FRSMODE 1966 FRS_RETUPDIR = 0x0000000000000001UL, 1967 FRS_RECUR = 0x0000000000000002UL, 1968 FRS_SCANSYMLINK = 0x0000000000000004UL, 1969 FRS_NONE = 0; 1970 1971 alias extern (Windows) void function( 1972 in wchar* InitDir, 1973 in wchar* Mask, 1974 FRSUSERFUNC Func, 1975 FRSMODE Flags, 1976 void* Param) FARSTDRECURSIVESEARCH; 1977 1978 alias extern (Windows) size_t function( 1979 wchar* Dest, 1980 size_t DestSize, 1981 in wchar* Prefix) FARSTDMKTEMP; 1982 1983 alias extern (Windows) size_t function( 1984 in wchar* Path, 1985 wchar* Root, 1986 size_t DestSize) FARSTDGETPATHROOT; 1987 1988 enum LINK_TYPE 1989 { 1990 LINK_HARDLINK = 1, 1991 LINK_JUNCTION = 2, 1992 LINK_VOLMOUNT = 3, 1993 LINK_SYMLINKFILE = 4, 1994 LINK_SYMLINKDIR = 5, 1995 LINK_SYMLINK = 6, 1996 } 1997 1998 alias ulong MKLINK_FLAGS; 1999 const MKLINK_FLAGS 2000 MLF_SHOWERRMSG = 0x0000000000010000UL, 2001 MLF_DONOTUPDATEPANEL = 0x0000000000020000UL, 2002 MLF_HOLDTARGET = 0x0000000000040000UL, 2003 MLF_NONE = 0UL; 2004 2005 alias extern (Windows) BOOL function( 2006 in wchar* Src, 2007 in wchar* Dest, 2008 LINK_TYPE Type, 2009 MKLINK_FLAGS Flags) FARSTDMKLINK; 2010 2011 alias extern (Windows) size_t function( 2012 in wchar* Src, 2013 wchar* Dest, 2014 size_t DestSize) FARGETREPARSEPOINTINFO; 2015 2016 enum CONVERTPATHMODES 2017 { 2018 CPM_FULL = 0, 2019 CPM_REAL = 1, 2020 CPM_NATIVE = 2, 2021 } 2022 2023 alias extern (Windows) size_t function( 2024 CONVERTPATHMODES Mode, 2025 in wchar* Src, 2026 wchar* Dest, 2027 size_t DestSize) FARCONVERTPATH; 2028 2029 alias extern (Windows) size_t function(size_t Size, wchar* Buffer)FARGETCURRENTDIRECTORY; 2030 2031 alias ulong FARFORMATFILESIZEFLAGS; 2032 const FARFORMATFILESIZEFLAGS 2033 FFFS_COMMAS = 0x0100000000000000UL, 2034 FFFS_FLOATSIZE = 0x0200000000000000UL, 2035 FFFS_SHOWBYTESINDEX = 0x0400000000000000UL, 2036 FFFS_ECONOMIC = 0x0800000000000000UL, 2037 FFFS_THOUSAND = 0x1000000000000000UL, 2038 FFFS_MINSIZEINDEX = 0x2000000000000000UL, 2039 FFFS_MINSIZEINDEX_MASK = 0x0000000000000003UL, 2040 FFFS_NONE = 0; 2041 2042 alias extern (Windows) size_t function(ulong Size, intptr_t Width, FARFORMATFILESIZEFLAGS Flags, wchar* Dest, size_t DestSize)FARFORMATFILESIZE; 2043 2044 struct FarStandardFunctions 2045 { 2046 size_t StructSize; 2047 FARSTDATOI atoi; 2048 FARSTDATOI64 atoi64; 2049 FARSTDITOA itoa; 2050 FARSTDITOA64 itoa64; 2051 FARSTDSPRINTF sprintf; 2052 FARSTDSSCANF sscanf; 2053 FARSTDQSORT qsort; 2054 FARSTDBSEARCH bsearch; 2055 FARSTDSNPRINTF snprintf; 2056 FARSTDLOCALISLOWER LIsLower; 2057 FARSTDLOCALISUPPER LIsUpper; 2058 FARSTDLOCALISALPHA LIsAlpha; 2059 FARSTDLOCALISALPHANUM LIsAlphanum; 2060 FARSTDLOCALUPPER LUpper; 2061 FARSTDLOCALLOWER LLower; 2062 FARSTDLOCALUPPERBUF LUpperBuf; 2063 FARSTDLOCALLOWERBUF LLowerBuf; 2064 FARSTDLOCALSTRUPR LStrupr; 2065 FARSTDLOCALSTRLWR LStrlwr; 2066 deprecated FARSTDLOCALSTRICMP LStricmp; 2067 deprecated FARSTDLOCALSTRNICMP LStrnicmp; 2068 FARSTDUNQUOTE Unquote; 2069 FARSTDLTRIM LTrim; 2070 FARSTDRTRIM RTrim; 2071 FARSTDTRIM Trim; 2072 FARSTDTRUNCSTR TruncStr; 2073 FARSTDTRUNCPATHSTR TruncPathStr; 2074 FARSTDQUOTESPACEONLY QuoteSpaceOnly; 2075 FARSTDPOINTTONAME PointToName; 2076 FARSTDGETPATHROOT GetPathRoot; 2077 FARSTDADDENDSLASH AddEndSlash; 2078 FARSTDCOPYTOCLIPBOARD CopyToClipboard; 2079 FARSTDPASTEFROMCLIPBOARD PasteFromClipboard; 2080 FARSTDINPUTRECORDTOKEYNAME FarInputRecordToName; 2081 FARSTDKEYNAMETOINPUTRECORD FarNameToInputRecord; 2082 FARSTDXLAT XLat; 2083 FARSTDGETFILEOWNER GetFileOwner; 2084 FARSTDGETNUMBEROFLINKS GetNumberOfLinks; 2085 FARSTDRECURSIVESEARCH FarRecursiveSearch; 2086 FARSTDMKTEMP MkTemp; 2087 FARSTDPROCESSNAME ProcessName; 2088 FARSTDMKLINK MkLink; 2089 FARCONVERTPATH ConvertPath; 2090 FARGETREPARSEPOINTINFO GetReparsePointInfo; 2091 FARGETCURRENTDIRECTORY GetCurrentDirectory; 2092 FARFORMATFILESIZE FormatFileSize; 2093 FARSTDFARCLOCK FarClock; 2094 FARSTDCOMPARESTRINGS CompareStrings; 2095 } 2096 alias FarStandardFunctions FARSTANDARDFUNCTIONS; 2097 2098 struct PluginStartupInfo 2099 { 2100 size_t StructSize; 2101 const(wchar)* ModuleName; 2102 FARAPIMENU Menu; 2103 FARAPIMESSAGE Message; 2104 FARAPIGETMSG GetMsg; 2105 FARAPIPANELCONTROL PanelControl; 2106 FARAPISAVESCREEN SaveScreen; 2107 FARAPIRESTORESCREEN RestoreScreen; 2108 FARAPIGETDIRLIST GetDirList; 2109 FARAPIGETPLUGINDIRLIST GetPluginDirList; 2110 FARAPIFREEDIRLIST FreeDirList; 2111 FARAPIFREEPLUGINDIRLIST FreePluginDirList; 2112 FARAPIVIEWER Viewer; 2113 FARAPIEDITOR Editor; 2114 FARAPITEXT Text; 2115 FARAPIEDITORCONTROL EditorControl; 2116 FARSTANDARDFUNCTIONS* FSF; 2117 FARAPISHOWHELP ShowHelp; 2118 FARAPIADVCONTROL AdvControl; 2119 FARAPIINPUTBOX InputBox; 2120 FARAPICOLORDIALOG ColorDialog; 2121 FARAPIDIALOGINIT DialogInit; 2122 FARAPIDIALOGRUN DialogRun; 2123 FARAPIDIALOGFREE DialogFree; 2124 FARAPISENDDLGMESSAGE SendDlgMessage; 2125 FARAPIDEFDLGPROC DefDlgProc; 2126 FARAPIVIEWERCONTROL ViewerControl; 2127 FARAPIPLUGINSCONTROL PluginsControl; 2128 FARAPIFILEFILTERCONTROL FileFilterControl; 2129 FARAPIREGEXPCONTROL RegExpControl; 2130 FARAPIMACROCONTROL MacroControl; 2131 FARAPISETTINGSCONTROL SettingsControl; 2132 void* Private; 2133 void* Instance; 2134 } 2135 2136 alias extern (Windows) HANDLE function( 2137 in wchar* Object, 2138 DWORD DesiredAccess, 2139 DWORD ShareMode, 2140 LPSECURITY_ATTRIBUTES SecurityAttributes, 2141 DWORD CreationDistribution, 2142 DWORD FlagsAndAttributes, 2143 HANDLE TemplateFile) FARAPICREATEFILE; 2144 2145 alias extern (Windows) DWORD function(in wchar* FileName) FARAPIGETFILEATTRIBUTES; 2146 2147 alias extern (Windows) BOOL function( 2148 in wchar* FileName, 2149 DWORD dwFileAttributes) FARAPISETFILEATTRIBUTES; 2150 2151 alias extern (Windows) BOOL function( 2152 in wchar* ExistingFileName, 2153 in wchar* NewFileName, 2154 DWORD dwFlags) FARAPIMOVEFILEEX; 2155 2156 alias extern (Windows) BOOL function(in wchar* FileName) FARAPIDELETEFILE; 2157 2158 alias extern (Windows) BOOL function(in wchar* DirName) FARAPIREMOVEDIRECTORY; 2159 2160 alias extern (Windows) BOOL function( 2161 in wchar* PathName, 2162 LPSECURITY_ATTRIBUTES lpSecurityAttributes) FARAPICREATEDIRECTORY; 2163 2164 struct ArclitePrivateInfo 2165 { 2166 size_t StructSize; 2167 FARAPICREATEFILE CreateFile; 2168 FARAPIGETFILEATTRIBUTES GetFileAttributes; 2169 FARAPISETFILEATTRIBUTES SetFileAttributes; 2170 FARAPIMOVEFILEEX MoveFileEx; 2171 FARAPIDELETEFILE DeleteFile; 2172 FARAPIREMOVEDIRECTORY RemoveDirectory; 2173 FARAPICREATEDIRECTORY CreateDirectory; 2174 } 2175 2176 struct NetBoxPrivateInfo 2177 { 2178 size_t StructSize; 2179 FARAPICREATEFILE CreateFile; 2180 FARAPIGETFILEATTRIBUTES GetFileAttributes; 2181 FARAPISETFILEATTRIBUTES SetFileAttributes; 2182 FARAPIMOVEFILEEX MoveFileEx; 2183 FARAPIDELETEFILE DeleteFile; 2184 FARAPIREMOVEDIRECTORY RemoveDirectory; 2185 FARAPICREATEDIRECTORY CreateDirectory; 2186 } 2187 2188 struct MacroPluginReturn 2189 { 2190 intptr_t ReturnType; 2191 size_t Count; 2192 FarMacroValue* Values; 2193 } 2194 2195 alias extern (Windows) intptr_t function(intptr_t CheckCode, FarMacroCall* Data) FARAPICALLFAR; 2196 2197 struct MacroPrivateInfo 2198 { 2199 size_t StructSize; 2200 FARAPICALLFAR CallFar; 2201 } 2202 2203 alias ulong PLUGIN_FLAGS; 2204 const PLUGIN_FLAGS 2205 PF_PRELOAD = 0x0000000000000001UL, 2206 PF_DISABLEPANELS = 0x0000000000000002UL, 2207 PF_EDITOR = 0x0000000000000004UL, 2208 PF_VIEWER = 0x0000000000000008UL, 2209 PF_FULLCMDLINE = 0x0000000000000010UL, 2210 PF_DIALOG = 0x0000000000000020UL, 2211 PF_NONE = 0UL; 2212 2213 struct PluginMenuItem 2214 { 2215 const(GUID)* Guids; 2216 const(wchar*)* Strings; 2217 size_t Count; 2218 } 2219 2220 enum VERSION_STAGE 2221 { 2222 VS_RELEASE = 0, 2223 VS_ALPHA = 1, 2224 VS_BETA = 2, 2225 VS_RC = 3, 2226 } 2227 2228 struct VersionInfo 2229 { 2230 DWORD Major; 2231 DWORD Minor; 2232 DWORD Revision; 2233 DWORD Build; 2234 VERSION_STAGE Stage; 2235 } 2236 2237 BOOL CheckVersion(in VersionInfo* Current, in VersionInfo* Required) 2238 { 2239 return (Current.Major > Required.Major) || (Current.Major == Required.Major && Current.Minor > Required.Minor) || (Current.Major == Required.Major && Current.Minor == Required.Minor && Current.Revision > Required.Revision) || (Current.Major == Required.Major && Current.Minor == Required.Minor && Current.Revision == Required.Revision && Current.Build >= Required.Build); 2240 } 2241 2242 VersionInfo MakeFarVersion(DWORD Major, DWORD Minor, DWORD Revision, DWORD Build, VERSION_STAGE Stage) 2243 { 2244 return VersionInfo(Major, Minor, Revision, Build, Stage); 2245 } 2246 auto FARMANAGERVERSION() { return MakeFarVersion(FARMANAGERVERSION_MAJOR, FARMANAGERVERSION_MINOR, FARMANAGERVERSION_REVISION, FARMANAGERVERSION_BUILD, FARMANAGERVERSION_STAGE); } 2247 2248 struct GlobalInfo 2249 { 2250 size_t StructSize; 2251 VersionInfo MinFarVersion; 2252 VersionInfo Version; 2253 GUID Guid; 2254 const(wchar)* Title; 2255 const(wchar)* Description; 2256 const(wchar)* Author; 2257 void* Instance; 2258 } 2259 2260 struct PluginInfo 2261 { 2262 size_t StructSize; 2263 PLUGIN_FLAGS Flags; 2264 PluginMenuItem DiskMenu; 2265 PluginMenuItem PluginMenu; 2266 PluginMenuItem PluginConfig; 2267 const(wchar)* CommandPrefix; 2268 void* Instance; 2269 } 2270 2271 struct FarGetPluginInformation 2272 { 2273 size_t StructSize; 2274 const(wchar)* ModuleName; 2275 FAR_PLUGIN_FLAGS Flags; 2276 PluginInfo* PInfo; 2277 GlobalInfo* GInfo; 2278 } 2279 2280 alias ulong INFOPANELLINE_FLAGS; 2281 const INFOPANELLINE_FLAGS 2282 IPLFLAGS_SEPARATOR = 0x0000000000000001UL, 2283 IPLFLAGS_NONE = 0; 2284 2285 struct InfoPanelLine 2286 { 2287 const(wchar)* Text; 2288 const(wchar)* Data; 2289 INFOPANELLINE_FLAGS Flags; 2290 } 2291 2292 alias ulong PANELMODE_FLAGS; 2293 const PANELMODE_FLAGS 2294 PMFLAGS_FULLSCREEN = 0x0000000000000001UL, 2295 PMFLAGS_DETAILEDSTATUS = 0x0000000000000002UL, 2296 PMFLAGS_ALIGNEXTENSIONS = 0x0000000000000004UL, 2297 PMFLAGS_CASECONVERSION = 0x0000000000000008UL, 2298 PMFLAGS_NONE = 0; 2299 2300 struct PanelMode 2301 { 2302 const(wchar)* ColumnTypes; 2303 const(wchar)* ColumnWidths; 2304 const(wchar*)* ColumnTitles; 2305 const(wchar)* StatusColumnTypes; 2306 const(wchar)* StatusColumnWidths; 2307 PANELMODE_FLAGS Flags; 2308 } 2309 2310 alias ulong OPENPANELINFO_FLAGS; 2311 const OPENPANELINFO_FLAGS 2312 OPIF_DISABLEFILTER = 0x0000000000000001UL, 2313 OPIF_DISABLESORTGROUPS = 0x0000000000000002UL, 2314 OPIF_DISABLEHIGHLIGHTING = 0x0000000000000004UL, 2315 OPIF_ADDDOTS = 0x0000000000000008UL, 2316 OPIF_RAWSELECTION = 0x0000000000000010UL, 2317 OPIF_REALNAMES = 0x0000000000000020UL, 2318 OPIF_SHOWNAMESONLY = 0x0000000000000040UL, 2319 OPIF_SHOWRIGHTALIGNNAMES = 0x0000000000000080UL, 2320 OPIF_SHOWPRESERVECASE = 0x0000000000000100UL, 2321 OPIF_COMPAREFATTIME = 0x0000000000000400UL, 2322 OPIF_EXTERNALGET = 0x0000000000000800UL, 2323 OPIF_EXTERNALPUT = 0x0000000000001000UL, 2324 OPIF_EXTERNALDELETE = 0x0000000000002000UL, 2325 OPIF_EXTERNALMKDIR = 0x0000000000004000UL, 2326 OPIF_USEATTRHIGHLIGHTING = 0x0000000000008000UL, 2327 OPIF_USECRC32 = 0x0000000000010000UL, 2328 OPIF_USEFREESIZE = 0x0000000000020000UL, 2329 OPIF_SHORTCUT = 0x0000000000040000UL, 2330 OPIF_NONE = 0UL; 2331 2332 struct KeyBarLabel 2333 { 2334 FarKey Key; 2335 const(wchar)* Text; 2336 const(wchar)* LongText; 2337 } 2338 2339 struct KeyBarTitles 2340 { 2341 size_t CountLabels; 2342 KeyBarLabel* Labels; 2343 } 2344 2345 struct FarSetKeyBarTitles 2346 { 2347 size_t StructSize; 2348 KeyBarTitles* Titles; 2349 } 2350 2351 alias ulong OPERATION_MODES; 2352 const OPERATION_MODES 2353 OPM_SILENT =0x0000000000000001UL, 2354 OPM_FIND =0x0000000000000002UL, 2355 OPM_VIEW =0x0000000000000004UL, 2356 OPM_EDIT =0x0000000000000008UL, 2357 OPM_TOPLEVEL =0x0000000000000010UL, 2358 OPM_DESCR =0x0000000000000020UL, 2359 OPM_QUICKVIEW =0x0000000000000040UL, 2360 OPM_PGDN =0x0000000000000080UL, 2361 OPM_COMMANDS =0x0000000000000100UL, 2362 OPM_NONE =0UL; 2363 2364 struct OpenPanelInfo 2365 { 2366 size_t StructSize; 2367 HANDLE hPanel; 2368 OPENPANELINFO_FLAGS Flags; 2369 const(wchar)* HostFile; 2370 const(wchar)* CurDir; 2371 const(wchar)* Format; 2372 const(wchar)* PanelTitle; 2373 const(InfoPanelLine)* InfoLines; 2374 size_t InfoLinesNumber; 2375 const(wchar*)* DescrFiles; 2376 size_t DescrFilesNumber; 2377 const(PanelMode)* PanelModesArray; 2378 size_t PanelModesNumber; 2379 intptr_t StartPanelMode; 2380 OPENPANELINFO_SORTMODES StartSortMode; 2381 intptr_t StartSortOrder; 2382 const(KeyBarTitles)* KeyBar; 2383 const(wchar)* ShortcutData; 2384 ulong FreeSize; 2385 UserDataItem UserData; 2386 void* Instance; 2387 } 2388 2389 struct AnalyseInfo 2390 { 2391 size_t StructSize; 2392 const(wchar)* FileName; 2393 void* Buffer; 2394 size_t BufferSize; 2395 OPERATION_MODES OpMode; 2396 void* Instance; 2397 } 2398 2399 struct OpenAnalyseInfo 2400 { 2401 size_t StructSize; 2402 AnalyseInfo* Info; 2403 HANDLE Handle; 2404 } 2405 2406 struct OpenMacroInfo 2407 { 2408 size_t StructSize; 2409 size_t Count; 2410 FarMacroValue* Values; 2411 } 2412 2413 alias ulong FAROPENSHORTCUTFLAGS; 2414 const FAROPENSHORTCUTFLAGS 2415 FOSF_ACTIVE = 0x0000000000000001UL, 2416 FOSF_NONE = 0; 2417 2418 struct OpenShortcutInfo 2419 { 2420 size_t StructSize; 2421 const(wchar)* HostFile; 2422 const(wchar)* ShortcutData; 2423 FAROPENSHORTCUTFLAGS Flags; 2424 } 2425 2426 struct OpenCommandLineInfo 2427 { 2428 size_t StructSize; 2429 const(wchar)* CommandLine; 2430 } 2431 2432 enum OPENFROM 2433 { 2434 OPEN_LEFTDISKMENU = 0, 2435 OPEN_PLUGINSMENU = 1, 2436 OPEN_FINDLIST = 2, 2437 OPEN_SHORTCUT = 3, 2438 OPEN_COMMANDLINE = 4, 2439 OPEN_EDITOR = 5, 2440 OPEN_VIEWER = 6, 2441 OPEN_FILEPANEL = 7, 2442 OPEN_DIALOG = 8, 2443 OPEN_ANALYSE = 9, 2444 OPEN_RIGHTDISKMENU = 10, 2445 OPEN_FROMMACRO = 11, 2446 OPEN_LUAMACRO = 100, 2447 } 2448 2449 enum MACROCALLTYPE 2450 { 2451 MCT_MACROPARSE = 0, 2452 MCT_LOADMACROS = 1, 2453 MCT_ENUMMACROS = 2, 2454 MCT_WRITEMACROS = 3, 2455 MCT_GETMACRO = 4, 2456 MCT_RECORDEDMACRO = 5, 2457 MCT_DELMACRO = 6, 2458 MCT_RUNSTARTMACRO = 7, 2459 MCT_EXECSTRING = 8, 2460 MCT_PANELSORT = 9, 2461 MCT_GETCUSTOMSORTMODES = 10, 2462 MCT_ADDMACRO = 11, 2463 MCT_KEYMACRO = 12, 2464 MCT_CANPANELSORT = 13, 2465 } 2466 2467 enum MACROPLUGINRETURNTYPE 2468 { 2469 MPRT_NORMALFINISH = 0, 2470 MPRT_ERRORFINISH = 1, 2471 MPRT_ERRORPARSE = 2, 2472 MPRT_KEYS = 3, 2473 MPRT_PRINT = 4, 2474 MPRT_PLUGINCALL = 5, 2475 MPRT_PLUGINMENU = 6, 2476 MPRT_PLUGINCONFIG = 7, 2477 MPRT_PLUGINCOMMAND = 8, 2478 MPRT_USERMENU = 9, 2479 MPRT_HASNOMACRO = 10, 2480 } 2481 2482 struct OpenMacroPluginInfo 2483 { 2484 MACROCALLTYPE CallType; 2485 FarMacroCall* Data; 2486 MacroPluginReturn Ret; 2487 } 2488 2489 enum FAR_EVENTS 2490 { 2491 FE_CHANGEVIEWMODE =0, 2492 FE_REDRAW =1, 2493 FE_IDLE =2, 2494 FE_CLOSE =3, 2495 FE_BREAK =4, 2496 FE_COMMAND =5, 2497 2498 FE_GOTFOCUS =6, 2499 FE_KILLFOCUS =7, 2500 FE_CHANGESORTPARAMS =8, 2501 } 2502 2503 struct OpenInfo 2504 { 2505 size_t StructSize; 2506 OPENFROM OpenFrom; 2507 const(GUID)* Guid; 2508 intptr_t Data; 2509 void* Instance; 2510 } 2511 2512 struct SetDirectoryInfo 2513 { 2514 size_t StructSize; 2515 HANDLE hPanel; 2516 const(wchar)* Dir; 2517 intptr_t Reserved; 2518 OPERATION_MODES OpMode; 2519 UserDataItem UserData; 2520 void* Instance; 2521 } 2522 2523 struct SetFindListInfo 2524 { 2525 size_t StructSize; 2526 HANDLE hPanel; 2527 const(PluginPanelItem)* PanelItem; 2528 size_t ItemsNumber; 2529 void* Instance; 2530 } 2531 2532 struct PutFilesInfo 2533 { 2534 size_t StructSize; 2535 HANDLE hPanel; 2536 PluginPanelItem* PanelItem; 2537 size_t ItemsNumber; 2538 BOOL Move; 2539 const(wchar)* SrcPath; 2540 OPERATION_MODES OpMode; 2541 void* Instance; 2542 } 2543 2544 struct ProcessHostFileInfo 2545 { 2546 size_t StructSize; 2547 HANDLE hPanel; 2548 PluginPanelItem* PanelItem; 2549 size_t ItemsNumber; 2550 OPERATION_MODES OpMode; 2551 void* Instance; 2552 } 2553 2554 struct MakeDirectoryInfo 2555 { 2556 size_t StructSize; 2557 HANDLE hPanel; 2558 const(wchar)* Name; 2559 OPERATION_MODES OpMode; 2560 void* Instance; 2561 } 2562 2563 struct CompareInfo 2564 { 2565 size_t StructSize; 2566 HANDLE hPanel; 2567 const(PluginPanelItem)* Item1; 2568 const(PluginPanelItem)* Item2; 2569 OPENPANELINFO_SORTMODES Mode; 2570 void* Instance; 2571 } 2572 2573 struct GetFindDataInfo 2574 { 2575 size_t StructSize; 2576 HANDLE hPanel; 2577 PluginPanelItem* PanelItem; 2578 size_t ItemsNumber; 2579 OPERATION_MODES OpMode; 2580 void* Instance; 2581 } 2582 2583 struct FreeFindDataInfo 2584 { 2585 size_t StructSize; 2586 HANDLE hPanel; 2587 PluginPanelItem* PanelItem; 2588 size_t ItemsNumber; 2589 void* Instance; 2590 } 2591 2592 struct GetFilesInfo 2593 { 2594 size_t StructSize; 2595 HANDLE hPanel; 2596 PluginPanelItem* PanelItem; 2597 size_t ItemsNumber; 2598 BOOL Move; 2599 const(wchar)* DestPath; 2600 OPERATION_MODES OpMode; 2601 void* Instance; 2602 } 2603 2604 struct DeleteFilesInfo 2605 { 2606 size_t StructSize; 2607 HANDLE hPanel; 2608 PluginPanelItem* PanelItem; 2609 size_t ItemsNumber; 2610 OPERATION_MODES OpMode; 2611 void* Instance; 2612 } 2613 2614 struct ProcessPanelInputInfo 2615 { 2616 size_t StructSize; 2617 HANDLE hPanel; 2618 INPUT_RECORD Rec; 2619 void* Instance; 2620 } 2621 2622 struct ProcessEditorInputInfo 2623 { 2624 size_t StructSize; 2625 INPUT_RECORD Rec; 2626 void* Instance; 2627 } 2628 2629 alias ulong PROCESSCONSOLEINPUT_FLAGS; 2630 const PROCESSCONSOLEINPUT_FLAGS 2631 PCIF_NONE = 0; 2632 2633 struct ProcessConsoleInputInfo 2634 { 2635 size_t StructSize; 2636 PROCESSCONSOLEINPUT_FLAGS Flags; 2637 INPUT_RECORD Rec; 2638 void* Instance; 2639 } 2640 2641 struct ExitInfo 2642 { 2643 size_t StructSize; 2644 void* Instance; 2645 } 2646 2647 struct ProcessPanelEventInfo 2648 { 2649 size_t StructSize; 2650 intptr_t Event; 2651 void* Param; 2652 HANDLE hPanel; 2653 void* Instance; 2654 } 2655 2656 struct ProcessEditorEventInfo 2657 { 2658 size_t StructSize; 2659 intptr_t Event; 2660 void* Param; 2661 intptr_t EditorID; 2662 void* Instance; 2663 } 2664 2665 struct ProcessDialogEventInfo 2666 { 2667 size_t StructSize; 2668 intptr_t Event; 2669 FarDialogEvent* Param; 2670 void* Instance; 2671 } 2672 2673 struct ProcessSynchroEventInfo 2674 { 2675 size_t StructSize; 2676 intptr_t Event; 2677 void* Param; 2678 void* Instance; 2679 } 2680 2681 struct ProcessViewerEventInfo 2682 { 2683 size_t StructSize; 2684 intptr_t Event; 2685 void* Param; 2686 intptr_t ViewerID; 2687 void* Instance; 2688 } 2689 2690 struct ClosePanelInfo 2691 { 2692 size_t StructSize; 2693 HANDLE hPanel; 2694 void* Instance; 2695 } 2696 2697 struct CloseAnalyseInfo 2698 { 2699 size_t StructSize; 2700 HANDLE Handle; 2701 void* Instance; 2702 } 2703 2704 struct ConfigureInfo 2705 { 2706 size_t StructSize; 2707 const(GUID)* Guid; 2708 void* Instance; 2709 } 2710 2711 struct GetContentFieldsInfo 2712 { 2713 size_t StructSize; 2714 size_t Count; 2715 const(wchar*)* Names; 2716 void* Instance; 2717 } 2718 2719 struct GetContentDataInfo 2720 { 2721 size_t StructSize; 2722 const(wchar)* FilePath; 2723 size_t Count; 2724 const(wchar*)* Names; 2725 const(wchar)** Values; 2726 void* Instance; 2727 } 2728 2729 struct ErrorInfo 2730 { 2731 size_t StructSize; 2732 const(wchar)* Summary; 2733 const(wchar)* Description; 2734 } 2735 2736 GUID FarGuid = {0x00000000, 0x0000, 0x0000, [0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00]}; 2737 2738 // Exported Functions 2739 2740 extern (Windows) HANDLE AnalyseW(in AnalyseInfo* Info); 2741 2742 extern (Windows) void CloseAnalyseW(in CloseAnalyseInfo* Info); 2743 2744 extern (Windows) void ClosePanelW(in ClosePanelInfo* Info); 2745 2746 extern (Windows) intptr_t CompareW(in CompareInfo* Info); 2747 2748 extern (Windows) intptr_t ConfigureW(in ConfigureInfo* Info); 2749 2750 extern (Windows) intptr_t DeleteFilesW(in DeleteFilesInfo* Info); 2751 2752 extern (Windows) void ExitFARW(in ExitInfo* Info); 2753 2754 extern (Windows) void FreeFindDataW(in FreeFindDataInfo* Info); 2755 2756 extern (Windows) intptr_t GetFilesW(GetFilesInfo* Info); 2757 2758 extern (Windows) intptr_t GetFindDataW(GetFindDataInfo* Info); 2759 2760 extern (Windows) void GetGlobalInfoW(GlobalInfo* Info); 2761 2762 extern (Windows) void GetOpenPanelInfoW(OpenPanelInfo* Info); 2763 2764 extern (Windows) void GetPluginInfoW(PluginInfo* Info); 2765 2766 extern (Windows) intptr_t MakeDirectoryW(MakeDirectoryInfo* Info); 2767 2768 extern (Windows) HANDLE OpenW(in OpenInfo* Info); 2769 2770 extern (Windows) intptr_t ProcessDialogEventW(in ProcessDialogEventInfo* Info); 2771 2772 extern (Windows) intptr_t ProcessEditorEventW(in ProcessEditorEventInfo* Info); 2773 2774 extern (Windows) intptr_t ProcessEditorInputW(in ProcessEditorInputInfo* Info); 2775 2776 extern (Windows) intptr_t ProcessPanelEventW(in ProcessPanelEventInfo* Info); 2777 2778 extern (Windows) intptr_t ProcessHostFileW(in ProcessHostFileInfo* Info); 2779 2780 extern (Windows) intptr_t ProcessPanelInputW(in ProcessPanelInputInfo* Info); 2781 2782 extern (Windows) intptr_t ProcessConsoleInputW(ProcessConsoleInputInfo* Info); 2783 2784 extern (Windows) intptr_t ProcessSynchroEventW(in ProcessSynchroEventInfo* Info); 2785 2786 extern (Windows) intptr_t ProcessViewerEventW(in ProcessViewerEventInfo* Info); 2787 2788 extern (Windows) intptr_t PutFilesW(in PutFilesInfo* Info); 2789 2790 extern (Windows) intptr_t SetDirectoryW(in SetDirectoryInfo* Info); 2791 2792 extern (Windows) intptr_t SetFindListW(in SetFindListInfo* Info); 2793 2794 extern (Windows) void SetStartupInfoW(in PluginStartupInfo* Info); 2795 2796 extern (Windows) intptr_t GetContentFieldsW(in GetContentFieldsInfo* Info); 2797 2798 extern (Windows) intptr_t GetContentDataW(GetContentDataInfo* Info); 2799 2800 extern (Windows) void FreeContentDataW(in GetContentDataInfo* Info);