what i usualy do is create a common interface and a few dls'(for testing purposes). the dlls start with a specific name like ex_ for export add-ons and im_ for import add-ons. then, when the program starts, i will search for the dll's in my program folder and subfolders and cal a common function in those dll's using LoadLibraryEx and other items. the common function is named (in my dll's atleast) Reg_Info to call the info that is needed by my program to work with the dll's. i also get a list of the exported functions, thru that function Reg_Info, in that dll and can work with that. if you want to see the plugin working, just download my RunOnceEx.cmd Creator or ask for the sources (Delphi 7)