From 22603b95c2e83d92ba130ab3997d3d364e31a38c Mon Sep 17 00:00:00 2001 From: Mindaugas Kavaliauskas Date: Tue, 23 Apr 2013 13:59:25 +0300 Subject: [PATCH] 2013-04-23 14:00 UTC+0300 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt) * harbour/contrib/rddads/adsfunc.c * ADSREGCALLBACK() implemented using AdsRegisterCallbackFunction() instead of obsolete AdsRegisterProgressCallback(). This enables draw progress bar for both indexing and SQL query processing. ; implementation unchanged for old ADS versions (<= 6.1) --- ChangeLog.txt | 7 +++++++ contrib/rddads/adsfunc.c | 25 +++++++++++++++++++++---- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/ChangeLog.txt b/ChangeLog.txt index 04fe5952dc..68dafbe508 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -10,6 +10,13 @@ * Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment */ +2013-04-23 14:00 UTC+0300 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt) + * harbour/contrib/rddads/adsfunc.c + * ADSREGCALLBACK() implemented using AdsRegisterCallbackFunction() instead + of obsolete AdsRegisterProgressCallback(). This enables draw progress + bar for both indexing and SQL query processing. + ; implementation unchanged for old ADS versions (<= 6.1) + 2013-04-22 22:05 UTC+0200 Przemysław Czerpak (druzus/at/poczta.onet.pl) * bin/check.hb * bin/commit.hb diff --git a/contrib/rddads/adsfunc.c b/contrib/rddads/adsfunc.c index 24a5c78ac9..a619659384 100644 --- a/contrib/rddads/adsfunc.c +++ b/contrib/rddads/adsfunc.c @@ -1430,22 +1430,31 @@ HB_FUNC( ADSCONVERTTABLE ) } #if ! defined( ADS_LINUX ) -UNSIGNED32 WINAPI hb_adsShowPercentageCB( UNSIGNED16 usPercentDone ) +#if ADS_LIB_VERSION >= 620 +UNSIGNED32 WINAPI hb_adsShowCallback( UNSIGNED16 usPercentDone, UNSIGNED32 ulCallbackID ) +#else +UNSIGNED32 WINAPI hb_adsShowCallback( UNSIGNED16 usPercentDone ) +#endif { PHB_ITEM pCallBack = hb_ads_getCallBack(); if( pCallBack ) { PHB_ITEM pPercentDone = hb_itemPutNI( NULL, usPercentDone ); +#if ADS_LIB_VERSION >= 620 + PHB_ITEM pCallbackID = hb_itemPutNL( NULL, ulCallbackID ); + HB_BOOL fResult = hb_itemGetL( hb_vmEvalBlockV( pCallBack, 2, pPercentDone, pCallbackID ) ); + hb_itemRelease( pCallbackID ); +#else HB_BOOL fResult = hb_itemGetL( hb_vmEvalBlockV( pCallBack, 1, pPercentDone ) ); - +#endif hb_itemRelease( pPercentDone ); return fResult ? 1 : 0; } #if HB_TR_LEVEL >= HB_TR_DEBUG else - HB_TRACE( HB_TR_DEBUG, ( "hb_adsShowPercentageCB(%d) called with no codeblock set.", usPercentDone ) ); + HB_TRACE( HB_TR_DEBUG, ( "hb_adsShowCallback(%d) called with no codeblock set.", usPercentDone ) ); #endif return 0; @@ -1469,7 +1478,11 @@ HB_FUNC( ADSREGCALLBACK ) if( pCallBack ) { hb_ads_setCallBack( pCallBack ); - if( AdsRegisterProgressCallback( hb_adsShowPercentageCB ) == AE_SUCCESS ) +#if ADS_LIB_VERSION >= 620 + if( AdsRegisterCallbackFunction( hb_adsShowCallback, hb_parnl( 2 ) ) == AE_SUCCESS ) +#else + if( AdsRegisterProgressCallback( hb_adsShowCallback ) == AE_SUCCESS ) +#endif fResult = HB_TRUE; else hb_ads_setCallBack( NULL ); @@ -1483,7 +1496,11 @@ HB_FUNC( ADSCLRCALLBACK ) { #if ! defined( ADS_LINUX ) hb_ads_setCallBack( NULL ); +#if ADS_LIB_VERSION >= 620 + hb_retnl( AdsClearCallbackFunction() ); +#else hb_retnl( AdsClearProgressCallback() ); +#endif #else hb_retnl( 0 ); #endif /* ADS_LINUX */