Usually when creating a system that must consider future expansion I have done seperate windows. Meaning main program shells "add-on/plugin" (if you will) and user interacts with it and it does its own thing. Now I want to move some of these separate programs into the display area of the main program (MDI) but I want to keep their code seperate in their own executable. Further more current specs of each of these "plugins" can be mixed and matched, and nothing can be hard coded in the main application to look for known "add-ons" because who knows what else could be added in the future! (Registry/database settings are acceptable.) Think like the Microsoft Management Console.
I have my own ideas on how to do this but my question is how would you do this?
Hope this makes sense.