Classes in DLL's - Help

Hi. 8-)

Greetings from the rainbow nation in a hot (35 C), sunny South Africa.

I have created an interface class.  The descentants of this class will be in
DLLs.  For instance one descentant is TIReport wich looks like this :

        TIReport = class(TAppInterface)
                function Execute : Boolean; virtual; export; abstract;
                function GetName : String; virtual; export; abstract;

Execute                 - Shows dialog and created a report (printed, the
GetName - Name that will be placed in the menu Browsers

It will be used as installable reports, much like the installable experts of
delphi. Now I only have to supply the DLL of the new report to the customer.
No compiling needed of the main program. :-)

When my database loads, an menu with a caption obtained from GetName is
created.  When the user selects this item Execute is called.  When my app
starts it loads all the DLL's and keeps a list of the classes.  This works
fine when there only 4 or 5 classes registered because there is enough memory
to keep the DLL's and classes in memory.  I have realised that we already
wrote about 25 reports in a previous version (which is being upgraded)
and this will cause nearly every system to crash because my clients do not
have enough memory.  

How can one create a Interface Class Manager that will
        1.  Syncronize DLL's and classes
        2.  Make the MenuItem think the class is loaded
        3.  Load only the nessary report interface DLLs (Those used).

The managers I have written has totally crashed Windows 95.

Can any one help me or point me in a direction? Please?

Werner Strydom