I want to design Delphi plugin framework. There are three options:  

1. DLL  

2. BPL  

3. COM interface  

Every option has some disadvantage.

DLL - Promblem with MDI apllication, forms from plugin cannot be embeded to the host exe - mdi application.  

BPL - Every \*.bpl plugin and \*.exe host application must be compiled with the same version of Delphi.  

COM - Interfaces {xxx-xx-xxx-xx} must be registered in system, (regsvr) So plugin framework cannot be portable!

Is everything true what I wrote above? If not, please correct me, or is there some other possibility?  

thanks