Страница 1 из 1
Нужен пример загрузки WLX-плагинов на Delphi
Добавлено: Вт июн 20, 2006 01:09
Alextp
Нужен пример загрузки WLX-плагинов (например, плагина IEView или Imagine) из Delphi-приложения. И корректного освобождения (выгрузки) плагина. Пусть, например, по нажатию кнопки плагин сначала загружается и отображается на форме, а потом по нажатию кнопки корректно выгружается, и форма очищается.
То, что я набросал что называется "на коленке", не работает как надо... Я пока не понял, как привязать плагиновое API к форме или, например, к панели, лежащей на форме...
Добавлено: Пт июн 23, 2006 22:44
Nik
Хм... Я тоже пытался что-то такое соорудить, но работает криво

Присоединяюсь к очереди

Добавлено: Сб июн 24, 2006 19:33
Alextp
Все, с помощью пользователя с ghisler.ch разобрался.
То, что получилось, здесь:
http://wincmd.ru/plugring/wdx_guide.html
Исходник здесь:
http://atorg.net.ru/files/util_WdxWlxGuide_src.rar
Добавлено: Пн июн 26, 2006 03:59
SCHMaster
Не, пардон. может это типа "пальцы...", но звыняйтэ... Куда еще проще - отследить загрузку библиотеки (плагина) и вызов первоначальной ф-ц-ии, и закрыте окнаа (и выгрузку DLL, ежели нуна). На wincmd.ru есть классный примрер для листеров... Робяты, не поленитесь уделить ентому делу пол-часа... Ну а если уж никиак - мну на мыло (токи с указанием тесы, иначе - "СПАМ")
Добавлено: Пн июн 26, 2006 12:17
Alextp
2SCHMaster
Не понял. Зачем отслеживать загрузку DLL и закрытие окна?
Все сделалось проще: DLL загружается, вызывается ListLoad, когда надо выгрузить - вызывается ListCloseWindow и dll выгружается. Все. Что тут надо отслеживать?
Пример для листеров - он для другого. Для того, чтобы написать Lister плагин. А мы здесь пишем внешний загрузчик WLX плагинов (утилиту).
Добавлено: Вт июн 27, 2006 03:23
SCHMaster
И корректного освобождения (выгрузки) плагина
Вот для чего нужно (если нужно) отслеживать момент выгрузки. Т.к. по ListCloseWindow DLL не выгружается, кстати

. А продолжает "висеть" в памяти ТС. Это тоже можно учитесть.
Далее (это насчет проблем привязки плагинного API к форме), ТС перехватывает процедуру окна плагина, и "фильтрует" сообщения, поступающие плагину, отправляя ему далеко не все сообщения. Это тоже учесть нужно. Если проблема в размещении окна плагина на форме, то тут просто - SetWindowPos поможет.
Добавлено: Пт июн 30, 2006 17:41
Alextp
SCHMaster
Вот для чего нужно (если нужно) отслеживать момент выгрузки. Т.к. по ListCloseWindow DLL не выгружается, кстати . А продолжает "висеть" в памяти ТС. Это тоже можно учитесть.
Я знаю. Ну и разве нужно его из-за этого выгружать? Пусть висит.
При завершении программы выгрузится.
Далее (это насчет проблем привязки плагинного API к форме), ТС перехватывает процедуру окна плагина, и "фильтрует" сообщения, поступающие плагину, отправляя ему далеко не все сообщения. Это тоже учесть нужно.
А как это учесть? Еще раз: не в плагине, а в моем загрузчике WLX.
Пока загрузчик ничего такого (фильтрации сообщений) не делает.
И все работает.