Wrapping ActiveX Controls/Automation Servers at run-time

I have an interesting project i'm trying to do in CBuilder4.
I want to create an application that can dynamically load other sub-apps at
runtime (kind of like MMC).  The base app uses ADO to communicate with a
database, and it passes that data on to the clients.

Currently, i've implemented my own framework using forms in DLL's and using
ADO in a dll that was writting in VC6.  However, it's very buggy and i
realize that active was created to solve this problem, so i turned to it.
In essense, i have a few questions about how this will work in BCB.  I know
what i want to do, but i can't figure out how to make builder do it.

Basically, i want an active form for the sub-apps- an activex control.
However, i also want each one of these controls to implement another
interface (my own specific interface for passing data around).  You can't
seem to add anything but a new, unique interface to an active form.
(Basically, i want to load this interface from its classid, which would be
known and static, but i want to be able to get different implementations of
it by loading different classids.)  How to do this is the first obstacle.

The second is how to wrap this in CBuilder.  It's easy when it's an
activeform to use properties, methods, and events of an activex control- you
just import it, and use it.  An automation server, however (ADO, for
example), or the seperate interface i talked about above is less easy to
import.  I can use the import type library command, but it is woefully
unhappy about importing properties, and, most painfully, events.  I'd love
to have it hide the nitty-grittiness of implementing events in ActiveX from
me (i've done it in VC6, and it was a nightmare- and i can't figure out how
to do it in BCB.)  Why can't it just make a nonvisual control that wraps
each interface in the library?

Anyways..  I really want this level of run-time modularity and i was
wondering if anyone can tell me how to get it.  So far the best i've done is
created an active form, added my properties and events to the main interface
(the activeform), imported the control, and then hacked the template files
the import generates to load different classids.  But, since the interface
in the activeX control is not static, and not inforced, this seems destined
to failure (and bugginess ,which is what i'm trying to avoid! :)  This does
work, however, as an interesting side note..

Oh, one final question: Is BCB5 possibly any better about this?

If you've made it this far, thanks, at least, for reading so much! :)

Nathan Teske
Associate Software Engineer
Axonn Corporation
101 W. Robert E Lee Blvd
New Orleans
LA 70119