Looking at the code. Well with a small incompatibility,
most of the functionality could be resolved. Simply
CREATEOLEOBJECT() should not convert the pointer to
numeric. Such thing is wrong for GC collected ptrs.
I'll do that ASAP.
Caller code will have to be changed then to use 'EMPTY()'
instead of '== 0' to make it work after this.
Brgds,
Viktor
On 2009.08.19., at 4:02, Antonio Linares wrote:
Viktor,
Recently you modified contrib\hbwin\legacy.prg and added this code to
support Windows (numeric) handles for creating an oleauto object:
IF ISNUMBER( xOle ) // xOle is a pDisp
xOle := win_N2P( xOle )
ENDIF
But OleAuto uses this code from __OleCreateObject():
ppDisp = ( IDispatch** ) hb_gcAlloc( sizeof( IDispatch* ),
hb_ole_destructor );
*ppDisp = pDisp;
hb_retptrGC( ppDisp );
which it is different from the pointer created by win_N2P().
So the call to hb_oleParam( -1 ) fails as the pointer containt is
different.
I may be missing something. I appreciate your comments, thanks
Antonio Linares
_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour
_______________________________________________
Harbour mailing list
Harbour@harbour-project.org
http://lists.harbour-project.org/mailman/listinfo/harbour