Hi Antonio,

Sorry no idea. The only bug I see is hb_parnl() usage
while it should be hb_parnint(), but that only affects
x64 systems.

I hope someone will comment who knows OLE better from
the inside.

Brgds,
Viktor

On 2009.08.19., at 4:46, Antonio Linares wrote:

Viktor,

In FWH Class TActiveX we use this code (which was working fine with
previous OleAuto version):

     ::oOleAuto = TOleAuto():New( ActXPdisp( ::hActiveX ) )

ActXPdisp() returns a pDisp.

So we tried this change in legacy.prg:

  IF ISNUMBER( xOle )
     xOle := __OLEPDISP( xOle )
  ENDIF

__OLEPDISP() uses the same code as __OleCreateObject() at the end:

HB_FUNC( __OLEPDISP )
{
  IDispatch*  pDisp = ( IDispatch * ) hb_parnl( 1 );
  IDispatch** ppDisp;

  ppDisp = ( IDispatch** ) hb_gcAlloc( sizeof( IDispatch* ),
hb_ole_destructor );
  *ppDisp = pDisp;
  hb_retptrGC( ppDisp );
}       

That seemed enough to get it working, but hb_oleParam( -1 ) still
issues an error.

So something is still missing in our test. Hope this helps,

Antonio
_______________________________________________
Harbour mailing list
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour

_______________________________________________
Harbour mailing list
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to