понятно, что хочется в последний раз. поэтому если у кого-то есть предложения именно по текущему апи, говорите не стесняйтесь. на текущий момент:
1. struct PluginInfo добавить поле GUID Id; поле обязательно к заполнению.
updated:
1.1. для OPEN_FINDLIST, OPEN_SHORTCUT, OPEN_COMMANDLINE, а также alt-shift-f9 из панели плагина — guid far'а.
1.2. не надо ли что-то сделать с DiskMenuNumbers? Сделали.
1.3. сюда же проблемы с историей и плагинами. или их уже нет?
2. struct PanelInfo добавить поля GUID Id, HANDLE hPlugin.
updated:
3. int WINAPI _export ProcessKeyW(HANDLE hPlugin,const INPUT_RECORD *Rec).
4. DN_KEY, DN_HOTKEY, DM_KEY: Param2 указывает на INPUT_RECORD. реализовано, но вылезли баги фара.починили.
5. ActlKeyMacro Reserved[3] -> Reserved[7]. это валентин попросил

6. struct WindowInfo добавить поле INT_PTR Id, для редакторов EDitorId, для просмотров ViewerID. четно говоря не помню, зачем, но вроде когда-то обсуждалось, что надо.
7. во все структуры добавить StructSize обязательное для заполнения.
8. DialogInfo:
. Owner — GUID плагина или фара. для фара — все нули наверное.
9. LONG_PTR Param в FarDialogItem. устанавливает начальное значение для DM_GETITEMDATA/DM_SETITEMDATA.
9.1 Reserved — что это?
9.2 Selected — возможно тоже во флаги?
9.3 ListPos — что это?
11. переделать struct KeyBarTitles:
12. Info.CmpName убираем.
13. FarMenuItem убираем, FarMenuItemEx переименовываем.
14. PanelMode:
15. OPIF_USEFILTER меняем на OPIF_DISABLEFILTER.
16. FCTL_GETCMDLINESELECTEDTEXT убираем.
17. Изменить функции *Control
18. pluginpanelitem changetime.
19. В OpenPluginInfo убрать поле Reserved, в конец добавить __int64 FreeSize - информация о свободном месте в эмулируемой файловой системе.
и добавить флаг OPIF_USEFREESIZE - плагин оповестит ФАР, что... при отсутствии этого флага поле не заполнено (т.е. не у всех плагинов возможно понятие "свободное место")
20. Добавить PluginHandle в InputBox (как везде) чтоб фар знал откуда топики хэлпа открывать (старый очень баг).
21. Объединить PluginPanelItem и FAR_FIND_DATA
22. Исторические фигни в plugin.hpp надо бы исправить (удалить): DM_SETREDRAW=DM_REDRAW и DM_SETTEXTLENGTH=DM_SETMAXTEXTLENGTH
23. Удалить ACTL_POSTKEYSEQUENCE. Есть аналог в лице ACTL_KEYMACRO. Заменить имя перечисления FARKEYSEQUENCEFLAGS на FARKEYMACROFLAGS (и KSFLAGS_* -> KMFLAGS_* ). Удалить struct KeySequence.
24. ACTL_KEYMACRO перенести в новую функцию MacroControl
25. Control переименовать в PanelControl. Дальше см. п.28
26. http://bugs.farmanager.com/view.php?id=1410 - Добавить флаг в OpenFilePluginW для распознавания архивных операций (ShiftF3)
27. Доделать Analyse. OpenFilePlugin заменить на Analyse+OpenOpugin, OpenOpugin/ClosePlugin переименовать в OpePanel/ClosePanel.
28. Вынести FCTL_*CMDLINE* в CCTL_*. Обработка ком.строки с помощью CmdLineControl()
29. Удалить (без замены) ACTL_GETPOLICIES и enum FarPoliciesFlags - не опубликовано, лишнее, неактуальное
30. Удалить , замена: новая команда ACTL_GETSETTING. и объединить в одно (с заменой префиксов на FSETS_)
31. привести к общему знаменателю возвращаемые значения для диалоговых мессаг.
32. все цвета к структуре:
33. апи для хранения настроек.
34. привести
35. SetDirectoryW должна передавать плагину не const wchar_t *Dir, а указатель на структуру.
36. надо бы починить http://bugs.farmanager.com/view.php?id=1699
37. переделать DM_LISTGETDATA
N-1. скорректированное Писание
N. привести стд.плагины к АПИ 3