Hello, вот что я думаю: каждый плагин - объект наследника класса Fly_Plugin.mcc и имеет 2 спец.метода: MUIM_Fly_Plugin_Know и MUIM_Fly_Plugin_Run также можно обсудить некоторые атрибуты объекта. метод - MUIM_Fly_Plugin_Know. этот метод служит для определения знаний плагина. т.е. know = DoMethod(plugin_obj, MUIM_Fly_Plugin_Know, "show"); метод возвращает TRUE, если плагин знает команду "show". (например это плагин для просмотра картинок) ничего не мешает проверить и другие команды. т.к. плагин может знать их множество. например плагин для работы с ахивами может знать команды: copy, move, delete и rename. метод MUIM_Fly_Plugin_Run запускает плагин на выполнение команды. например: DoMethod(plugin, MUIM_Fly_Plugin_Run, params); где STRPTR params="show ram:test.pic"; таким образом ал-м: 1. пользователь кликает по файлу. 2. определяем тип файла. 3. смотрим соответствующее типу действие (например: "show %f", где %f - полный путь к файлу) 4. теперь пробежимся по списку плагинов и поспращиваем, кто знает эту команду. 5. если нашли такой плагин, то запускаем его с параметром "show %f", подставляя переменные (сместо %f - например, "ram:test.pic") 6. плагин завершил работу. замечание: одну и туже команду могут знать разные плагины. поэтому следует разработать механизм приоритетов. замечание: плагины хранятся в списке в главном модуле. все загружаются при старте. замечание: объект плагина создаёт листер, а значит является его родителем. т.к. листер -объект наследника MUIC_Application, то плагин имеет доступ к листеру и не имеет доступа к основному модулю. <sb> Bye! Waiting to reply, Vovka.