Latest post of the previous page:
“Дорога в тысячу миль начинается с первого шага.”Max Rusov wrote:Вот если бы все API было на интерфейсах, тогда - да. А так - как то выбивается...
Latest post of the previous page:
“Дорога в тысячу миль начинается с первого шага.”Max Rusov wrote:Вот если бы все API было на интерфейсах, тогда - да. А так - как то выбивается...
В целом да. Только не IFarFileSystem, а IStorage.Max Rusov wrote:Запрашивается в текущей панели интерфейс IFarFileSystem и дергаются его методы... Среди них есть метод GetFile, возвращающий интерфейс IStream... Лепота...
Вот этого - точно не надо.HaRT wrote:регистрацию реализаций в реестре
Вот именно такие довески к интерфейсам меня и напрягают. Идея в чистом виде может и хороша, но чтобы сделать реализовать COM интерфейс в плагине нужно будет написать ещё целую тучу кода.HaRT wrote:Только если и использовать COM-интерфейсы, то надо хорошо продумать, хотим ли мы завязывать Фар на подсчёт ссылок (это ещё полбеды) и регистрацию реализаций в реестре (вот это уже куда более тяжёлая штука, впрочем, необходимая для работы стандартных фабрик).
Это заблуждение.Ariman wrote:чтобы сделать реализовать COM интерфейс в плагине нужно будет написать ещё целую тучу кода.
Так уж прям там полноценные COM интерфейсы? С регистрацией, счетчиком ссылок и т.п.Max Rusov wrote:Посмотрите FarHints, например. В нем API субплагинов на интерфейсах.
Это он небольшой если база есть. Как на делфи, например, где и счетчик ссылок готовый и регистратор и всё остальное. А если с нуля делать, то телодвижений хватает. Сделать то не проблема, но хочется удобств по максимумуHaRT wrote:Это заблуждение.
Я реализовывал COM-сервера и по собственному опыту знаю, что оверхед небольшой.