Using VB created ActiveX control in Delphi and Builder

I've read the archives and seen a lot of different posts on this topic but I
have yet to see a really complete response.  I've banged my head on the wall
trying to put two and two together and haven't come up with anything.

I have a VB 6 created ActiveX control which I have no choice but to use
Delphi and Builder.  That said, what will it take to make it happen?

From my reading it seems that VB's ActiveX controls have a strange vtable
layout that causes the problems in Delphi and Builder.  I also know that
VB's controls have an IDispatch interface as well.  The wrapper classes
generated by Builder and Delphi seem to always point to the vtable
interface.  A few of the posts I read stated that you could use the
IDispatch interface instead of the vtable one and it should work.  But is
there any way to make that happen in the wrappers instead of having to
literally go through IDispatch and call Invoke, etc yourself?

In Delphi (v5) I'm able to drop the controls after importing them and can
interact with them in the property window.  Invoking methods from code,
however, causes errors.

In Builder (v4 with both patches) things aren't even that good.  When I drop
the control, the property browser tries to access the properties on the
control and it {*word*88}s with each property access.  If I tell it to stop (you
get the option to on each error), it lets me...but then accessing the
control through code gives some wierd COM error.

So, my real question is "how do I use a VB created ActiveX control in Delphi
and Builder."  I've seen a lot of theory about how it could happen, but I'm
looking for a simple clean answer.  Has anyone got one (aside from not using