Firing events to a container with user defined data types

Hi all,

I have successfully implemented an ActiveForm that interacts with a
That is to say, when the ActiveForm stays in BCB 4. The problem occurs when
using the OCX in VB 6. In the tlb I have (re)defined the data types I
I created a DispInterface for it with the required CoClass.
This enables me to declare something like the following in VB 6.

    Dim hndl As MyHandle (instead of Dim hndl As Object)

All is well up to the point when an expected event occurs (MouseDown).
In this event I receive a handle (2 longs) and I need to massage it in such
a way
that COM understands it. This is where I am stuck. I guess I have to return
IDispatch * but how ?. I really want to keep the IDispatch since I want to
use the
same data type in BCB 4 or VC 6 and VB6 (or any other language).

Next is the snippet of the event code:
(actually I have tried different sceanrio's but this is the state it is in

void __fastcall MyXAppImpl::SelectEvent(TObject *Sender, int X, int Y,
Handle hndl)
    IMyHandleDisp h;

    h.hi     = hndl.hi;
    h.low  = hndl.low;

    Fire_OnSelect(X, Y, (MyHandlePtr *) h);


The Fire_OnSelect(X, Y, hndl) call has the 3rd parameter as hndl which must
be converted to type MyHandle as depicted in the tlb. How do I get the data
of the
local Handle to MyHandle and successfully use MyHandle without an assertion
occuring ?.

So basically this is the model I have in mind:

Container                                  OCX
--------------          COM              --------

MyHandle    < >   ??   < >      MyHandle

All suggestions are welcome as I am totally lost....