2009-11-26 02:25 UTC+0200 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)

* harbour/contrib/hbwin/axcore.c
  * harbour/contrib/hbwin/olecore.c
    * added OLE error code as OS code. Changed subsystem from BASE to OLE
    ; NOTE: function hb_errRT_OLE() is static and defined in both modules.
      I'm not sure about the future parameters of the function, so, 
      I do not want to make it public.

  * harbour/contrib/hbwin/legacycd.c
  * harbour/contrib/hbwin/legacyco.c
    * moved code inside #ifndef HB_WIN_LEGACY_LEVEL_OFF
This commit is contained in:
Mindaugas Kavaliauskas
2009-11-26 00:26:16 +00:00
parent 9a0ebe20a8
commit 626faad80c
5 changed files with 70 additions and 15 deletions

View File

@@ -17,6 +17,19 @@
past entries belonging to author(s): Viktor Szakats.
*/
2009-11-26 02:25 UTC+0200 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)
* harbour/contrib/hbwin/axcore.c
* harbour/contrib/hbwin/olecore.c
* added OLE error code as OS code. Changed subsystem from BASE to OLE
; NOTE: function hb_errRT_OLE() is static and defined in both modules.
I'm not sure about the future parameters of the function, so,
I do not want to make it public.
* harbour/contrib/hbwin/legacycd.c
* harbour/contrib/hbwin/legacyco.c
* moved code inside #ifndef HB_WIN_LEGACY_LEVEL_OFF
2009-11-25 19:10 UTC+0200 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)
* harbour/contrib/rddads/ads1.c
* changed field type mapping of HB_FT_* define, ADS_* define,

View File

@@ -67,6 +67,23 @@ static HMODULE s_hLib = NULL;
static PHB_AX_GETCTRL s_pAtlAxGetControl = NULL;
static void hb_errRT_OLE( HB_ERRCODE errGenCode, HB_ERRCODE errSubCode, HB_ERRCODE errOsCode, const char * szDescription, const char * szOperation )
{
PHB_ITEM pError;
pError = hb_errRT_New( ES_ERROR, "OLE", errGenCode, errSubCode, szDescription, szOperation, errOsCode, EF_NONE );
if( hb_pcount() != 0 )
{
/* HB_ERR_ARGS_BASEPARAMS */
PHB_ITEM pArray = hb_arrayBaseParams();
hb_errPutArgsArray( pError, pArray );
hb_itemRelease( pArray );
}
hb_errLaunch( pError );
hb_errRelease( pError );
}
static void hb_oleAxExit( void* cargo )
{
HB_SYMBOL_UNUSED( cargo );
@@ -123,7 +140,7 @@ PHB_ITEM hb_oleAxControlNew( PHB_ITEM pItem, HWND hWnd )
if( ! hb_oleAxInit() || ! s_pAtlAxGetControl )
{
hb_oleSetError( S_OK );
hb_errRT_BASE_SubstR( EG_UNSUPPORTED, 3012, "ActiveX not initialized", HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS );
hb_errRT_OLE( EG_UNSUPPORTED, 3012, 0, "ActiveX not initialized", HB_ERR_FUNCNAME );
}
else
{
@@ -140,7 +157,7 @@ PHB_ITEM hb_oleAxControlNew( PHB_ITEM pItem, HWND hWnd )
if( lOleError == S_OK )
pItem = hb_oleItemPut( pItem, pDisp );
else
hb_errRT_BASE_SubstR( EG_ARG, 3012, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS );
hb_errRT_OLE( EG_ARG, 3012, ( HB_ERRCODE ) lOleError, NULL, HB_ERR_FUNCNAME );
}
return pItem;
@@ -152,7 +169,7 @@ HB_FUNC( __AXGETCONTROL ) /* ( hWnd ) --> pDisp */
HWND hWnd = ( HWND ) hb_parptr( 1 );
if( ! hWnd )
hb_errRT_BASE_SubstR( EG_ARG, 3012, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS );
hb_errRT_OLE( EG_ARG, 3012, 0, NULL, HB_ERR_FUNCNAME );
else
hb_oleAxControlNew( hb_stackReturnItem(), hWnd );
}
@@ -166,7 +183,7 @@ HB_FUNC( __AXDOVERB ) /* ( hWndAx, iVerb ) --> hResult */
if( ! hb_oleAxInit() || ! s_pAtlAxGetControl )
{
hb_oleSetError( S_OK );
hb_errRT_BASE_SubstR( EG_UNSUPPORTED, 3012, "ActiveX not initialized", HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS );
hb_errRT_OLE( EG_UNSUPPORTED, 3012, 0, "ActiveX not initialized", HB_ERR_FUNCNAME );
return;
}
@@ -452,9 +469,9 @@ HB_FUNC( __AXREGISTERHANDLER ) /* ( pDisp, bHandler [, cID] ) --> pSink */
hb_oleSetError( lOleError );
if( lOleError != S_OK )
hb_errRT_BASE_SubstR( EG_ARG, 3012, "Failed to obtain connection point", HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS );
hb_errRT_OLE( EG_ARG, 3012, ( HB_ERRCODE ) lOleError, "Failed to obtain connection point", HB_ERR_FUNCNAME );
}
else
hb_errRT_BASE_SubstR( EG_ARG, 3012, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS );
hb_errRT_OLE( EG_ARG, 3012, 0, "Failed to obtain connection point", HB_ERR_FUNCNAME );
}
}

View File

@@ -61,6 +61,8 @@
#include "hbapi.h"
#ifndef HB_WIN_LEGACY_LEVEL_OFF
/* Please use WAPI_GETLASTERROR(). */
HB_FUNC( GETLASTERROR )
{
@@ -73,3 +75,5 @@ HB_FUNC( SETLASTERROR )
hb_retnl( GetLastError() );
SetLastError( hb_parnl( 1 ) );
}
#endif

View File

@@ -62,6 +62,8 @@
#include "hbapi.h"
#include "hbwinole.h"
#ifndef HB_WIN_LEGACY_LEVEL_OFF
HB_FUNC_EXTERN( WIN_OLEERROR );
HB_FUNC( OLEERROR )
@@ -120,3 +122,5 @@ HB_FUNC( __OLEPDISP )
hb_oleItemPut( hb_param( -1, HB_IT_ANY ),
( IDispatch * ) ( HB_PTRUINT ) hb_parnint( 1 ) );
}
#endif

View File

@@ -175,6 +175,23 @@ static const HB_GC_FUNCS s_gcOleenumFuncs =
};
static void hb_errRT_OLE( HB_ERRCODE errGenCode, HB_ERRCODE errSubCode, HB_ERRCODE errOsCode, const char * szDescription, const char * szOperation )
{
PHB_ITEM pError;
pError = hb_errRT_New( ES_ERROR, "OLE", errGenCode, errSubCode, szDescription, szOperation, errOsCode, EF_NONE );
if( hb_pcount() != 0 )
{
/* HB_ERR_ARGS_BASEPARAMS */
PHB_ITEM pArray = hb_arrayBaseParams();
hb_errPutArgsArray( pError, pArray );
hb_itemRelease( pArray );
}
hb_errLaunch( pError );
hb_errRelease( pError );
}
IDispatch* hb_oleParam( int iParam )
{
HB_OLE * pOle = ( HB_OLE * ) hb_parptrGC( &s_gcOleFuncs, iParam );
@@ -182,7 +199,7 @@ IDispatch* hb_oleParam( int iParam )
if( pOle && pOle->pDisp )
return pOle->pDisp;
hb_errRT_BASE_SubstR( EG_ARG, 3012, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS );
hb_errRT_OLE( EG_ARG, 3012, 0, NULL, HB_ERR_FUNCNAME );
return NULL;
}
@@ -241,7 +258,7 @@ static IEnumVARIANT* hb_oleenumParam( int iParam )
if( ppEnum && *ppEnum )
return *ppEnum;
hb_errRT_BASE_SubstR( EG_ARG, 3012, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS );
hb_errRT_OLE( EG_ARG, 3012, 0, NULL, HB_ERR_FUNCNAME );
return NULL;
}
@@ -1064,7 +1081,7 @@ HB_FUNC( __OLEENUMCREATE ) /* ( __hObj ) */
if( hb_parl( 2 ) )
{
hb_oleSetError( S_OK );
hb_errRT_BASE_SubstR( EG_UNSUPPORTED, 3012, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS );
hb_errRT_OLE( EG_UNSUPPORTED, 3012, 0, NULL, HB_ERR_FUNCNAME );
return;
}
@@ -1090,7 +1107,7 @@ HB_FUNC( __OLEENUMCREATE ) /* ( __hObj ) */
else
{
hb_oleSetError( lOleError );
hb_errRT_BASE_SubstR( EG_ARG, 3012, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS );
hb_errRT_OLE( EG_ARG, 3012, ( HB_ERRCODE ) lOleError, NULL, HB_ERR_FUNCNAME );
return;
}
@@ -1109,7 +1126,7 @@ HB_FUNC( __OLEENUMCREATE ) /* ( __hObj ) */
}
}
hb_oleSetError( lOleError );
hb_errRT_BASE_SubstR( EG_ARG, 3012, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS );
hb_errRT_OLE( EG_ARG, 3012, ( HB_ERRCODE ) lOleError, NULL, HB_ERR_FUNCNAME );
}
@@ -1232,7 +1249,7 @@ HB_FUNC( WIN_OLEAUTO___ONERROR )
hb_oleSetError( lOleError );
if( lOleError != S_OK )
hb_errRT_BASE_SubstR( EG_ARG, 3012, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS );
hb_errRT_OLE( EG_ARG, 3012, ( HB_ERRCODE ) lOleError, NULL, HB_ERR_FUNCNAME );
return;
}
}
@@ -1263,7 +1280,7 @@ HB_FUNC( WIN_OLEAUTO___ONERROR )
hb_oleSetError( lOleError );
if( lOleError != S_OK )
hb_errRT_BASE_SubstR( EG_ARG, 3012, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS );
hb_errRT_OLE( EG_ARG, 3012, ( HB_ERRCODE ) lOleError, NULL, HB_ERR_FUNCNAME );
return;
}
@@ -1271,9 +1288,9 @@ HB_FUNC( WIN_OLEAUTO___ONERROR )
/* TODO: add description containing TypeName of the object */
if( szMethod[ 0 ] == '_' )
hb_errRT_BASE_SubstR( EG_NOVARMETHOD, 1005, NULL, szMethod + 1, HB_ERR_ARGS_BASEPARAMS );
hb_errRT_OLE( EG_NOVARMETHOD, 1005, ( HB_ERRCODE ) lOleError, NULL, szMethod + 1 );
else
hb_errRT_BASE_SubstR( EG_NOMETHOD, 1004, NULL, szMethod, HB_ERR_ARGS_BASEPARAMS );
hb_errRT_OLE( EG_NOMETHOD, 1004, ( HB_ERRCODE ) lOleError, NULL, szMethod );
}