xqz_me
Чел видимо нифига не понимает в VB
Он имеет ввиду что нужно написать обычную DLL (VB такие делать не умеет, мона тока ActiveX), сделать LoadLibrary, GetProcAdress, а потом по полученному указателю вызвать функцию из DLL, передав ей Form.hWnd. Тока такой подход нам не подходит совершенно:
1) Даже если мы напишем обычную DLL на VB(есть способ, но свяфзан с кучей багов), то мы:
а) не сможем её отлаживать в IDE
б) не сможем работать с объектами вообще
2) Проблема с вызовом по указателю(модуль правда есть)
3) Не сможем испрользовать преимущества доступа к объектной среде твоей программы.
Посему делаем ТАК:
1) Пишем ActiveX DLL
2) Кладём её в папку Plugins
3) Её имя должно соответствовать ProgID, т. е. для MyPlugIn.MainClass,
MyPlugIn.MainClass.dll (как в MS .NET Framework
)
4) Из проги пробегаемся по всем DLL в папке Plugins regsvr32(или не 32 в некоторых виндах), после чего пытаемся выполнить CreateObject.
Если ошибки не было, то ты получаешь класс из DLL с плагином. После чего делай с ним усё, что хочешь-плагин загружен и готов к работе
Таким образом плагины к твоей проге легко написать на VB, VC и Delphi, на асме придётся повозиться с IDispath, но это уже не твои проблемы