2008-08-24 21:10 UTC+0200 Viktor Szakats (harbour.01 syenar hu)

* contrib/hbw32/w32_ole.c
   * contrib/hbole/ole2.c
     ! 64-bit fix for MessageBox() Harbour level functions.
     * Formatting.
This commit is contained in:
Viktor Szakats
2008-08-24 18:57:23 +00:00
parent d6bf134432
commit e2f4c0e50a
3 changed files with 135 additions and 176 deletions

View File

@@ -8,6 +8,12 @@
2008-12-31 13:59 UTC+0100 Foo Bar <foo.bar@foobar.org>
*/
2008-08-24 21:10 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* contrib/hbw32/w32_ole.c
* contrib/hbole/ole2.c
! 64-bit fix for MessageBox() Harbour level functions.
* Formatting.
2008-08-24 20:40 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* contrib/hbole/ole2.c
! Fixed GPF reported by Guillermo.

View File

@@ -131,7 +131,7 @@ static LPSTR WideToAnsi( LPWSTR cWide )
wLen = WideCharToMultiByte( CP_ACP, 0, ( LPWSTR ) cWide, -1,
NULL, 0, NULL, NULL );
cString = ( LPSTR ) hb_xgrab( (!wLen) ? 2 : wLen );
cString = ( LPSTR ) hb_xgrab( wLen ? wLen : 2 );
WideCharToMultiByte( CP_ACP, 0, ( LPWSTR ) cWide, -1,
cString, wLen, NULL, NULL );
return cString;
@@ -163,9 +163,9 @@ static void GetParams( DISPPARAMS * dParams )
{
case '\0':
#if !defined(__BORLANDC__) && !defined(__XCC__) && !defined(NONAMELESSUNION)
pArgs[ n ].vt = VT_EMPTY;
pArgs[ n ].vt = VT_EMPTY;
#else
pArgs[ n ].n1.n2.vt = VT_EMPTY;
pArgs[ n ].n1.n2.vt = VT_EMPTY;
#endif
break;
@@ -175,22 +175,22 @@ static void GetParams( DISPPARAMS * dParams )
LPWSTR cString;
#if !defined(__BORLANDC__) && !defined(__XCC__) && !defined(NONAMELESSUNION)
pArgs[ n ].vt = VT_BSTR;
pArgs[ n ].vt = VT_BSTR;
#else
pArgs[ n ].n1.n2.vt = VT_BSTR;
pArgs[ n ].n1.n2.vt = VT_BSTR;
#endif
cString = AnsiToWide( hb_parc( nArg ) );
#if !defined(__BORLANDC__) && !defined(__XCC__) && !defined(NONAMELESSUNION)
pArgs[ n ].bstrVal = SysAllocString( (OLECHAR *) cString );
pArgs[ n ].bstrVal = SysAllocString( ( OLECHAR * ) cString );
#else
pArgs[ n ].n1.n2.n3.bstrVal = SysAllocString( (OLECHAR *) cString );
pArgs[ n ].n1.n2.n3.bstrVal = SysAllocString( ( OLECHAR * ) cString );
#endif
hb_xfree( cString );
break;
}
case HB_IT_LOGICAL:
#if !defined(__BORLANDC__) && !defined(__XCC__) && !defined(NONAMELESSUNION)
pArgs[ n ].vt = VT_BOOL;
pArgs[ n ].vt = VT_BOOL;
pArgs[ n ].boolVal = hb_parl( nArg );
#else
pArgs[ n ].n1.n2.vt = VT_BOOL;
@@ -202,29 +202,29 @@ static void GetParams( DISPPARAMS * dParams )
case HB_IT_LONG:
case HB_IT_NUMERIC:
#if !defined(__BORLANDC__) && !defined(__XCC__) && !defined(NONAMELESSUNION)
pArgs[ n ].vt = VT_I4;
pArgs[ n ].vt = VT_I4;
pArgs[ n ].lVal = hb_parnl( nArg );
#else
pArgs[ n ].n1.n2.vt = VT_I4;
pArgs[ n ].n1.n2.vt = VT_I4;
pArgs[ n ].n1.n2.n3.lVal = hb_parnl( nArg );
#endif
break;
case HB_IT_DOUBLE:
#if !defined(__BORLANDC__) && !defined(__XCC__) && !defined(NONAMELESSUNION)
pArgs[ n ].vt = VT_R8;
pArgs[ n ].vt = VT_R8;
pArgs[ n ].dblVal = hb_parnd( nArg );
#else
pArgs[ n ].n1.n2.vt = VT_R8;
pArgs[ n ].n1.n2.vt = VT_R8;
pArgs[ n ].n1.n2.n3.dblVal = hb_parnd( nArg );
#endif
break;
case HB_IT_DATE:
#if !defined(__BORLANDC__) && !defined(__XCC__) && !defined(NONAMELESSUNION)
pArgs[ n ].vt = VT_DATE;
pArgs[ n ].vt = VT_DATE;
pArgs[ n ].dblVal = DateToDbl( hb_pards( nArg ) );
#else
pArgs[ n ].n1.n2.vt = VT_DATE;
pArgs[ n ].n1.n2.vt = VT_DATE;
pArgs[ n ].n1.n2.n3.dblVal = DateToDbl( hb_pards( nArg ) );
#endif
break;
@@ -273,7 +273,7 @@ static void FreeParams( DISPPARAMS * dParams )
int n;
for( n = 0; n < ( int ) dParams->cArgs; n++ )
VariantClear( &(dParams->rgvarg[ n ]) );
VariantClear( &( dParams->rgvarg[ n ] ) );
hb_xfree( ( LPVOID ) dParams->rgvarg );
}
@@ -315,7 +315,7 @@ static void RetValue( void )
default:
if( s_nOleError == S_OK )
s_nOleError = (HRESULT) -1;
s_nOleError = ( HRESULT ) -1;
break;
}
@@ -355,7 +355,7 @@ static void RetValue( void )
default:
if( s_nOleError == S_OK )
s_nOleError = (HRESULT) -1;
s_nOleError = ( HRESULT ) -1;
break;
}
@@ -383,13 +383,13 @@ HB_FUNC( CREATEOLEOBJECT ) /* ( cOleName | cCLSID [, cIID ] ) */
{
LPWSTR cCLSID;
GUID ClassID, iid;
LPIID riid = (LPIID) &IID_IDispatch;
LPIID riid = ( LPIID ) &IID_IDispatch;
cCLSID = AnsiToWide( hb_parc( 1 ) );
if( hb_parc( 1 )[ 0 ] == '{' )
s_nOleError = CLSIDFromString( ( LPOLESTR ) cCLSID, (LPCLSID) &ClassID );
s_nOleError = CLSIDFromString( ( LPOLESTR ) cCLSID, ( LPCLSID ) &ClassID );
else
s_nOleError = CLSIDFromProgID( ( LPCOLESTR ) cCLSID, (LPCLSID) &ClassID );
s_nOleError = CLSIDFromProgID( ( LPCOLESTR ) cCLSID, ( LPCLSID ) &ClassID );
hb_xfree( cCLSID );
if( hb_pcount() == 2 )
@@ -416,13 +416,13 @@ HB_FUNC( CREATEOLEOBJECT ) /* ( cOleName | cCLSID [, cIID ] ) */
HB_FUNC( OLESHOWEXCEPTION )
{
if( (LONG) s_nOleError == DISP_E_EXCEPTION )
if( ( LONG ) s_nOleError == DISP_E_EXCEPTION )
{
#if defined( UNICODE )
MessageBox( NULL, s_excep.bstrDescription, s_excep.bstrSource, MB_ICONHAND );
#else
LPSTR source = WideToAnsi( (LPWSTR) s_excep.bstrSource );
LPSTR description = WideToAnsi( (LPWSTR) s_excep.bstrDescription );
LPSTR source = WideToAnsi( ( LPWSTR ) s_excep.bstrSource );
LPSTR description = WideToAnsi( ( LPWSTR ) s_excep.bstrDescription );
MessageBox( NULL, description, source, MB_ICONHAND );
hb_xfree( source );
hb_xfree( description );
@@ -430,7 +430,7 @@ HB_FUNC( OLESHOWEXCEPTION )
}
}
HB_FUNC( OLEINVOKE ) /* (hOleObject, szMethodName, uParams...) */
HB_FUNC( OLEINVOKE ) /* ( hOleObject, szMethodName, uParams... ) */
{
IDispatch * pDisp = ( IDispatch * ) hb_parptr( 1 );
LPWSTR cMember;
@@ -439,7 +439,7 @@ HB_FUNC( OLEINVOKE ) /* (hOleObject, szMethodName, uParams...) */
UINT uArgErr;
VariantInit( &s_RetVal );
memset( (LPBYTE) &s_excep, 0, sizeof( s_excep ) );
memset( ( LPBYTE ) &s_excep, 0, sizeof( s_excep ) );
cMember = AnsiToWide( hb_parc( 2 ) );
s_nOleError = pDisp->lpVtbl->GetIDsOfNames( pDisp, HB_ID_REF( REFIID, IID_NULL ),
@@ -465,7 +465,7 @@ HB_FUNC( OLEINVOKE ) /* (hOleObject, szMethodName, uParams...) */
RetValue();
}
HB_FUNC( OLESETPROPERTY ) /* (hOleObject, cPropName, uValue, uParams...) */
HB_FUNC( OLESETPROPERTY ) /* ( hOleObject, cPropName, uValue, uParams... ) */
{
IDispatch * pDisp = ( IDispatch * ) hb_parptr( 1 );
LPWSTR cMember;
@@ -475,7 +475,7 @@ HB_FUNC( OLESETPROPERTY ) /* (hOleObject, cPropName, uValue, uParams...) */
UINT uArgErr;
VariantInit( &s_RetVal );
memset( (LPBYTE) &s_excep, 0, sizeof( s_excep ) );
memset( ( LPBYTE ) &s_excep, 0, sizeof( s_excep ) );
cMember = AnsiToWide( hb_parc( 2 ) );
@@ -505,7 +505,7 @@ HB_FUNC( OLESETPROPERTY ) /* (hOleObject, cPropName, uValue, uParams...) */
}
}
HB_FUNC( OLEGETPROPERTY ) /* (hOleObject, cPropName, uParams...) */
HB_FUNC( OLEGETPROPERTY ) /* ( hOleObject, cPropName, uParams... ) */
{
IDispatch * pDisp = ( IDispatch * ) hb_parptr( 1 );
LPWSTR cMember;
@@ -514,7 +514,7 @@ HB_FUNC( OLEGETPROPERTY ) /* (hOleObject, cPropName, uParams...) */
UINT uArgErr;
VariantInit( &s_RetVal );
memset( (LPBYTE) &s_excep, 0, sizeof( s_excep ) );
memset( ( LPBYTE ) &s_excep, 0, sizeof( s_excep ) );
cMember = AnsiToWide( hb_parc( 2 ) );
@@ -549,7 +549,7 @@ HB_FUNC( OLEERROR )
HB_FUNC( OLE2TXTERROR )
{
switch( (LONG) s_nOleError)
switch( ( LONG ) s_nOleError )
{
case S_OK: hb_retc( "S_OK" ); break;
case CO_E_CLASSSTRING: hb_retc( "CO_E_CLASSSTRING" ); break;
@@ -597,7 +597,7 @@ HB_FUNC( GETOLEOBJECT )
{
BSTR wCLSID;
IID ClassID, iid;
LPIID riid = (LPIID) &IID_IDispatch;
LPIID riid = ( LPIID ) &IID_IDispatch;
IUnknown * pUnk = NULL;
char * cOleName = hb_parc( 1 );
void * pDisp = NULL; /* IDispatch */
@@ -605,12 +605,12 @@ HB_FUNC( GETOLEOBJECT )
s_nOleError = S_OK;
wCLSID = (BSTR) AnsiToWide( (LPSTR)cOleName );
wCLSID = ( BSTR ) AnsiToWide( ( LPSTR ) cOleName );
if( cOleName[ 0 ] == '{' )
s_nOleError = CLSIDFromString( wCLSID, (LPCLSID) &ClassID );
s_nOleError = CLSIDFromString( wCLSID, ( LPCLSID ) &ClassID );
else
s_nOleError = CLSIDFromProgID( wCLSID, (LPCLSID) &ClassID );
s_nOleError = CLSIDFromProgID( wCLSID, ( LPCLSID ) &ClassID );
hb_xfree( wCLSID );
@@ -619,7 +619,7 @@ HB_FUNC( GETOLEOBJECT )
char * cID = hb_parc( 2 );
if( cID[ 0 ] == '{' )
{
wCLSID = (BSTR)AnsiToWide( (LPSTR)cID );
wCLSID = ( BSTR ) AnsiToWide( ( LPSTR ) cID );
s_nOleError = CLSIDFromString( wCLSID, &iid );
hb_xfree( wCLSID );
}
@@ -644,7 +644,7 @@ HB_FUNC( MESSAGEBOX )
{
LPTSTR lpStr1 = HB_TCHAR_CONVTO( hb_parcx( 2 ) );
LPTSTR lpStr2 = HB_TCHAR_CONVTO( hb_parcx( 3 ) );
hb_retni( MessageBox( ( HWND ) hb_parnl( 1 ), lpStr1, lpStr2, hb_parni( 4 ) ) );
hb_retni( MessageBox( ( HWND ) hb_parnint( 1 ), lpStr1, lpStr2, hb_parni( 4 ) ) );
HB_TCHAR_FREE( lpStr1 );
HB_TCHAR_FREE( lpStr2 );
}

View File

@@ -141,7 +141,7 @@ static DISPID lPropPut = DISPID_PROPERTYPUT;
static UINT uArgErr;
HRESULT hb_oleVariantToItem( PHB_ITEM pItem, VARIANT *pVariant );
static PHB_ITEM SafeArrayToArray( SAFEARRAY *parray, UINT iDim, long* rgIndices, VARTYPE vt );
static PHB_ITEM SafeArrayToArray( SAFEARRAY * parray, UINT iDim, long * rgIndices, VARTYPE vt );
//---------------------------------------------------------------------------//
HB_EXPORT BSTR hb_oleAnsiToSysString( const char * cString )
@@ -168,7 +168,7 @@ HB_EXPORT LPWSTR hb_oleAnsiToWide( LPSTR cString )
if( nConvertedLen )
{
LPWSTR wString = (LPWSTR) hb_xgrab( nConvertedLen * 2 + 1 );
LPWSTR wString = ( LPWSTR ) hb_xgrab( nConvertedLen * 2 + 1 );
if( MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, cString, -1, wString, nConvertedLen ) )
return wString;
@@ -243,7 +243,7 @@ HB_FUNC( ANSITOWIDE ) // ( cAnsiStr ) -> cWideStr
BSTR wString = hb_oleAnsiToWide( cString );
if( wString )
hb_retclen_buffer( (char *) wString, SysStringLen( wString ) );
hb_retclen_buffer( ( char * ) wString, SysStringLen( wString ) );
}
}
@@ -254,7 +254,7 @@ HB_EXPORT LPSTR hb_oleWideToAnsi( BSTR wString )
if( nConvertedLen )
{
char *cString = (char *) hb_xgrab( nConvertedLen + 1 );
char * cString = ( char * ) hb_xgrab( nConvertedLen + 1 );
if( WideCharToMultiByte( CP_ACP, 0, wString, -1, cString, nConvertedLen + 1, NULL, NULL ) )
return cString;
@@ -317,7 +317,7 @@ HB_EXPORT void hb_oleItemToVariant( VARIANT *pVariant, PHB_ITEM pItem )
sString = hb_itemGetCPtr( pItem );
// Check for hidden signature of SafeArrayToArray().
if( (int) (pItem->item.asString.allocated - ulLen) >= 5 && // TOFIX
if( ( int ) ( pItem->item.asString.allocated - ulLen ) >= 5 && // TOFIX
sString[ ulLen ] == 0x7A && sString[ ulLen + 1 ] == 0x7B && sString[ ulLen + 2 ] == 0x7C && sString[ ulLen + 3 ] == 0x7D )
{
vt = (VARTYPE) sString[ ulLen + 4 ];
@@ -326,10 +326,10 @@ HB_EXPORT void hb_oleItemToVariant( VARIANT *pVariant, PHB_ITEM pItem )
if( bByRef )
{
hb_itemPutCLConst( pItem, (char *) hb_oleAnsiToSysString( sString ), ulLen * 2 + 1 );
hb_itemPutCLConst( pItem, ( char * ) hb_oleAnsiToSysString( sString ), ulLen * 2 + 1 );
pVariant->n1.n2.vt = VT_BYREF | VT_BSTR;
pVariant->n1.n2.n3.pbstrVal = (BSTR *) &( pItem->item.asString.value ); // TOFIX
pVariant->n1.n2.n3.pbstrVal = ( BSTR * ) &( pItem->item.asString.value ); // TOFIX
//wprintf( L"*** BYREF >%s<\n", *pVariant->n1.n2.n3.bstrVal );
}
else
@@ -345,7 +345,7 @@ HB_EXPORT void hb_oleItemToVariant( VARIANT *pVariant, PHB_ITEM pItem )
if( bByRef )
{
pVariant->n1.n2.vt = VT_BYREF | VT_BOOL;
pVariant->n1.n2.n3.pboolVal = (short *) &( pItem->item.asLogical.value ) ; // TOFIX
pVariant->n1.n2.n3.pboolVal = ( short * ) &( pItem->item.asLogical.value ) ; // TOFIX
*pVariant->n1.n2.n3.pboolVal = hb_itemGetL( pItem ) ? VARIANT_TRUE : VARIANT_FALSE;
//pItem->type = HB_IT_LONG;
}
@@ -373,7 +373,7 @@ HB_EXPORT void hb_oleItemToVariant( VARIANT *pVariant, PHB_ITEM pItem )
if( bByRef )
{
pVariant->n1.n2.vt = VT_BYREF | VT_I4;
pVariant->n1.n2.n3.plVal = (long *) &( pItem->item.asInteger.value ) ; // TOFIX
pVariant->n1.n2.n3.plVal = ( long * ) &( pItem->item.asInteger.value ) ; // TOFIX
}
else
{
@@ -387,7 +387,7 @@ HB_EXPORT void hb_oleItemToVariant( VARIANT *pVariant, PHB_ITEM pItem )
if( bByRef )
{
pVariant->n1.n2.vt = VT_BYREF | VT_I4;
pVariant->n1.n2.n3.plVal = (long *) &( pItem->item.asLong.value ) ; // TOFIX
pVariant->n1.n2.n3.plVal = ( long * ) &( pItem->item.asLong.value ) ; // TOFIX
}
else
{
@@ -460,7 +460,7 @@ HB_EXPORT void hb_oleItemToVariant( VARIANT *pVariant, PHB_ITEM pItem )
hb_vmPush( pItem );
hb_vmSend( 0 );
pDisp = (IDispatch *) hb_parnl( -1 );
pDisp = ( IDispatch * ) hb_parnl( -1 );
pDisp->lpVtbl->AddRef( pDisp );
//HB_TRACE(HB_TR_INFO, ("Dispatch: in: %s(%i)%ld\n", pDisp, __FILE__, __LINE__));
@@ -469,8 +469,8 @@ HB_EXPORT void hb_oleItemToVariant( VARIANT *pVariant, PHB_ITEM pItem )
{
pVariant->n1.n2.vt = ( VT_DISPATCH | VT_BYREF );
// Hack!!! Using high 4 bytes of the union (llVal)
*( (IDispatch **) ( &pVariant->n1.n2.n3.lVal ) + 1 ) = pDisp;
pVariant->n1.n2.n3.ppdispVal = (IDispatch **) (&pVariant->n1.n2.n3.lVal ) + 1;
*( ( IDispatch ** ) ( &pVariant->n1.n2.n3.lVal ) + 1 ) = pDisp;
pVariant->n1.n2.n3.ppdispVal = ( IDispatch ** ) ( &pVariant->n1.n2.n3.lVal ) + 1;
}
else
{
@@ -513,8 +513,8 @@ ItemToVariant_StringArray:
{
pVariant->n1.n2.vt = ( VT_ARRAY | VT_BYREF | vt );
// Hack!!! Using high 4 bytes of the union (llVal)
*( (SAFEARRAY **) ( &pVariant->n1.n2.n3.lVal ) + 1 ) = parray;
pVariant->n1.n2.n3.pparray = (SAFEARRAY **) (&pVariant->n1.n2.n3.lVal ) + 1;
*( ( SAFEARRAY ** ) ( &pVariant->n1.n2.n3.lVal ) + 1 ) = parray;
pVariant->n1.n2.n3.pparray = ( SAFEARRAY ** ) ( &pVariant->n1.n2.n3.lVal ) + 1;
}
else
{
@@ -523,7 +523,7 @@ ItemToVariant_StringArray:
}
for( i = 0; i < rgsabound.cElements; i++ )
SafeArrayPutElement( parray, (LONG *) &i, &( sString[i]) );
SafeArrayPutElement( parray, ( LONG * ) &i, &( sString[ i ] ) );
break;
}
@@ -550,13 +550,13 @@ ItemToVariant_StringArray:
switch( pVariant->n1.n2.vt )
{
case VT_UNKNOWN:
pVariant->n1.n2.n3.punkVal = (IUnknown *) hb_parptr( -1 );
pVariant->n1.n2.n3.punkVal = ( IUnknown * ) hb_parptr( -1 );
break;
case ( VT_UNKNOWN | VT_BYREF ):
// Hack!!! Using high 4 bytes of the union (llVal)
*( (IUnknown **) ( &pVariant->n1.n2.n3.lVal ) + 1 ) = (IUnknown *) hb_parptr( -1 );
pVariant->n1.n2.n3.ppunkVal = (IUnknown **) (&pVariant->n1.n2.n3.lVal ) + 1;
*( ( IUnknown ** ) ( &pVariant->n1.n2.n3.lVal ) + 1 ) = ( IUnknown * ) hb_parptr( -1 );
pVariant->n1.n2.n3.ppunkVal = ( IUnknown ** ) ( &pVariant->n1.n2.n3.lVal ) + 1;
break;
default:
@@ -592,8 +592,8 @@ ItemToVariant_ProcessArray:
{
pVariant->n1.n2.vt = ( VT_ARRAY | VT_BYREF | vt );
// Hack!!! Using high 4 bytes of the union (llVal)
*( (SAFEARRAY **) ( &pVariant->n1.n2.n3.lVal ) + 1 ) = parray;
pVariant->n1.n2.n3.pparray = (SAFEARRAY **) (&pVariant->n1.n2.n3.lVal ) + 1;
*( ( SAFEARRAY ** ) ( &pVariant->n1.n2.n3.lVal ) + 1 ) = parray;
pVariant->n1.n2.n3.pparray = ( SAFEARRAY ** ) ( &pVariant->n1.n2.n3.lVal ) + 1;
}
else
{
@@ -604,7 +604,7 @@ ItemToVariant_ProcessArray:
for( i = 0; i < rgsabound.cElements; i++ )
{
hb_oleItemToVariant( &mVariant, hb_arrayGetItemPtr( pItem, i + 1 ) );
SafeArrayPutElement( parray, (LONG *) &i, pSource );
SafeArrayPutElement( parray, ( LONG * ) &i, pSource );
VariantClear( &mVariant );
}
}
@@ -800,11 +800,11 @@ static void FreeParams( DISPPARAMS *pDispParams, PHB_ITEM *aPrgParams )
break;
case VT_BYREF | VT_DATE:
hb_itemPutDL( pItem, (long) ( *( pVariant->n1.n2.n3.pdblVal ) ) + 2415019 );
hb_itemPutDL( pItem, ( long ) ( *( pVariant->n1.n2.n3.pdblVal ) ) + 2415019 );
break;
case VT_DATE:
hb_itemPutDL( pItem, (long) (pVariant->n1.n2.n3.dblVal) + 2415019 );
hb_itemPutDL( pItem, ( long ) ( pVariant->n1.n2.n3.dblVal ) + 2415019 );
break;
case VT_BYREF | VT_EMPTY:
@@ -822,7 +822,7 @@ static void FreeParams( DISPPARAMS *pDispParams, PHB_ITEM *aPrgParams )
VARTYPE vt;
PHB_ITEM pArray;
UINT iDims = SafeArrayGetDim( *pVariant->n1.n2.n3.pparray );
long *rgIndices = (long *) hb_xgrab( sizeof(long) * iDims );
long * rgIndices = ( long * ) hb_xgrab( sizeof( long ) * iDims );
vt = pVariant->n1.n2.vt;
vt &= ~VT_ARRAY;
@@ -830,7 +830,7 @@ static void FreeParams( DISPPARAMS *pDispParams, PHB_ITEM *aPrgParams )
pArray = SafeArrayToArray( *pVariant->n1.n2.n3.pparray, iDims, rgIndices, vt );
hb_xfree( (void *) rgIndices );
hb_xfree( ( void * ) rgIndices );
hb_itemForwardValue( pItem, pArray );
hb_itemRelease( pArray );
@@ -858,7 +858,7 @@ static void FreeParams( DISPPARAMS *pDispParams, PHB_ITEM *aPrgParams )
}
//---------------------------------------------------------------------------//
static PHB_ITEM SafeArrayToArray( SAFEARRAY *parray, UINT iDim, long* rgIndices, VARTYPE vt )
static PHB_ITEM SafeArrayToArray( SAFEARRAY * parray, UINT iDim, long * rgIndices, VARTYPE vt )
{
long iFrom, iTo, iLen, i;
PHB_ITEM pArray = hb_itemNew( NULL );
@@ -894,8 +894,8 @@ static PHB_ITEM SafeArrayToArray( SAFEARRAY *parray, UINT iDim, long* rgIndices,
else
{
VARIANT mElem;
void *pTarget;
char *sArray = NULL;
void * pTarget;
char * sArray = NULL;
VariantInit( &mElem );
@@ -911,7 +911,7 @@ static PHB_ITEM SafeArrayToArray( SAFEARRAY *parray, UINT iDim, long* rgIndices,
{
// Ugly hack, but needed to allocate our signature as hidden bytes!
hb_itemPutC( pArray, NULL );
HB_STRING_ALLOC( pArray, (ULONG)(iLen + 5) );
HB_STRING_ALLOC( pArray, ( ULONG )( iLen + 5 ) );
pArray->item.asString.length = iLen; // TOFIX
sArray = hb_itemGetCPtr( pArray );
@@ -920,7 +920,7 @@ static PHB_ITEM SafeArrayToArray( SAFEARRAY *parray, UINT iDim, long* rgIndices,
sArray[ iLen + 1 ] = 0x7B;
sArray[ iLen + 2 ] = 0x7C;
sArray[ iLen + 3 ] = 0x7D;
sArray[ iLen + 4 ] = (char)(vt);
sArray[ iLen + 4 ] = ( char ) vt;
pTarget = NULL;
}
@@ -965,7 +965,7 @@ static PHB_ITEM SafeArrayToArray( SAFEARRAY *parray, UINT iDim, long* rgIndices,
// Wrap our array with VTArrayWrapper() class ( aArray := VTArrayWrapper( vt, aArray) )
if( HB_IS_ARRAY( pArray ) && vt != VT_VARIANT )
{
PHB_ITEM pVT = hb_itemPutNL( hb_itemNew( NULL ), (LONG) vt );
PHB_ITEM pVT = hb_itemPutNL( hb_itemNew( NULL ), ( LONG ) vt );
hb_vmPushSymbol( hb_dynsymSymbol( s_pSym_VTArrayWrapper ) );
hb_vmPushNil();
@@ -1034,7 +1034,7 @@ HRESULT hb_oleVariantToItem( PHB_ITEM pItem, VARIANT *pVariant )
if( pUnk )
{
IDispatch ** pDispPtr = &pDisp;
pUnk->lpVtbl->QueryInterface( pUnk, HB_ID_REF( REFIID, IID_IDispatch ), (void **) pDispPtr );
pUnk->lpVtbl->QueryInterface( pUnk, HB_ID_REF( REFIID, IID_IDispatch ), ( void ** ) pDispPtr );
}
// Intentionally fall through
@@ -1051,8 +1051,8 @@ HRESULT hb_oleVariantToItem( PHB_ITEM pItem, VARIANT *pVariant )
{
if( pUnk )
{
PHB_ITEM pVT = hb_itemPutNL( hb_itemNew( NULL ), (LONG) pVariant->n1.n2.vt );
PHB_ITEM pUnknown = hb_itemPutPtr( hb_itemNew( NULL ), (void *) pUnk );
PHB_ITEM pVT = hb_itemPutNL( hb_itemNew( NULL ), ( LONG ) pVariant->n1.n2.vt );
PHB_ITEM pUnknown = hb_itemPutPtr( hb_itemNew( NULL ), ( void * ) pUnk );
hb_vmPushSymbol( hb_dynsymSymbol( s_pSym_VTWrapper ) );
hb_vmPushNil();
@@ -1182,11 +1182,11 @@ HRESULT hb_oleVariantToItem( PHB_ITEM pItem, VARIANT *pVariant )
}
case VT_DATE | VT_BYREF:
hb_itemPutDL( pItem, (long) ( *pVariant->n1.n2.n3.pdblVal ) + 2415019 );
hb_itemPutDL( pItem, ( long ) ( *pVariant->n1.n2.n3.pdblVal ) + 2415019 );
break;
case VT_DATE:
hb_itemPutDL( pItem, (long) ( pVariant->n1.n2.n3.dblVal ) + 2415019 );
hb_itemPutDL( pItem, ( long ) ( pVariant->n1.n2.n3.dblVal ) + 2415019 );
break;
case VT_EMPTY | VT_BYREF:
@@ -1221,7 +1221,7 @@ HRESULT hb_oleVariantToItem( PHB_ITEM pItem, VARIANT *pVariant )
if( parray )
{
iDims = SafeArrayGetDim( parray );
rgIndices = (long *) hb_xgrab( sizeof(long) * iDims );
rgIndices = ( long * ) hb_xgrab( sizeof( long ) * iDims );
vt = pVariant->n1.n2.vt;
vt &= ~VT_ARRAY;
@@ -1231,7 +1231,7 @@ HRESULT hb_oleVariantToItem( PHB_ITEM pItem, VARIANT *pVariant )
pArray = SafeArrayToArray( parray, iDims, rgIndices, vt );
hb_xfree( (void *) rgIndices );
hb_xfree( ( void * ) rgIndices );
hb_itemForwardValue( pItem, pArray );
hb_itemRelease( pArray );
@@ -1285,7 +1285,7 @@ HB_FUNC( __OLEENUMSTOP )
//---------------------------------------------------------------------------//
HB_FUNC( OLESHOWEXCEPTION )
{
if( (LONG) s_nOleError == DISP_E_EXCEPTION )
if( ( LONG ) s_nOleError == DISP_E_EXCEPTION )
{
#if defined( UNICODE )
MessageBox( NULL, excep.bstrDescription, excep.bstrSource, MB_ICONHAND );
@@ -1306,14 +1306,14 @@ HB_FUNC( OLESHOWEXCEPTION )
//---------------------------------------------------------------------------//
HB_FUNC( OLEEXCEPTIONSOURCE )
{
if( (LONG) s_nOleError == DISP_E_EXCEPTION )
if( ( LONG ) s_nOleError == DISP_E_EXCEPTION )
hb_retc_buffer( hb_oleWideToAnsi( excep.bstrSource ) );
}
//---------------------------------------------------------------------------//
HB_FUNC( OLEEXCEPTIONDESCRIPTION )
{
if( (LONG) s_nOleError == DISP_E_EXCEPTION )
if( ( LONG ) s_nOleError == DISP_E_EXCEPTION )
hb_retc_buffer( hb_oleWideToAnsi( excep.bstrDescription ) );
}
@@ -1326,84 +1326,37 @@ HB_FUNC( OLEERROR )
//---------------------------------------------------------------------------//
static char * Ole2TxtError( void )
{
switch( (LONG) s_nOleError )
switch( ( LONG ) s_nOleError )
{
case S_OK:
return "S_OK";
case S_OK: return "S_OK";
case CO_E_CLASSSTRING: return "CO_E_CLASSSTRING";
case OLE_E_WRONGCOMPOBJ: return "OLE_E_WRONGCOMPOBJ";
case REGDB_E_CLASSNOTREG: return "REGDB_E_CLASSNOTREG";
case REGDB_E_WRITEREGDB: return "REGDB_E_WRITEREGDB";
case E_FAIL: return "E_FAIL";
case E_OUTOFMEMORY: return "E_OUTOFMEMORY";
case E_NOTIMPL: return "E_NOTIMPL";
case E_INVALIDARG: return "E_INVALIDARG";
case E_UNEXPECTED: return "E_UNEXPECTED";
case DISP_E_UNKNOWNNAME: return "DISP_E_UNKNOWNNAME";
case DISP_E_UNKNOWNLCID: return "DISP_E_UNKNOWNLCID";
case DISP_E_BADPARAMCOUNT: return "DISP_E_BADPARAMCOUNT";
case DISP_E_BADVARTYPE: return "DISP_E_BADVARTYPE";
case DISP_E_EXCEPTION: return "DISP_E_EXCEPTION";
case DISP_E_MEMBERNOTFOUND: return "DISP_E_MEMBERNOTFOUND";
case DISP_E_NONAMEDARGS: return "DISP_E_NONAMEDARGS";
case DISP_E_OVERFLOW: return "DISP_E_OVERFLOW";
case DISP_E_PARAMNOTFOUND: return "DISP_E_PARAMNOTFOUND";
case DISP_E_TYPEMISMATCH: return "DISP_E_TYPEMISMATCH";
case DISP_E_UNKNOWNINTERFACE: return "DISP_E_UNKNOWNINTERFACE";
case DISP_E_PARAMNOTOPTIONAL: return "DISP_E_PARAMNOTOPTIONAL";
case CO_E_SERVER_EXEC_FAILURE: return "CO_E_SERVER_EXEC_FAILURE";
case MK_E_UNAVAILABLE: return "MK_E_UNAVAILABLE";
}
case CO_E_CLASSSTRING:
return "CO_E_CLASSSTRING";
HB_TRACE(HB_TR_INFO, ("TOleAuto Error %p\n", s_nOleError));
case OLE_E_WRONGCOMPOBJ:
return "OLE_E_WRONGCOMPOBJ";
case REGDB_E_CLASSNOTREG:
return "REGDB_E_CLASSNOTREG";
case REGDB_E_WRITEREGDB:
return "REGDB_E_WRITEREGDB";
case E_FAIL:
return "E_FAIL";
case E_OUTOFMEMORY:
return "E_OUTOFMEMORY";
case E_NOTIMPL:
return "E_NOTIMPL";
case E_INVALIDARG:
return "E_INVALIDARG";
case E_UNEXPECTED:
return "E_UNEXPECTED";
case DISP_E_UNKNOWNNAME:
return "DISP_E_UNKNOWNNAME";
case DISP_E_UNKNOWNLCID:
return "DISP_E_UNKNOWNLCID";
case DISP_E_BADPARAMCOUNT:
return "DISP_E_BADPARAMCOUNT";
case DISP_E_BADVARTYPE:
return "DISP_E_BADVARTYPE";
case DISP_E_EXCEPTION:
return "DISP_E_EXCEPTION";
case DISP_E_MEMBERNOTFOUND:
return "DISP_E_MEMBERNOTFOUND";
case DISP_E_NONAMEDARGS:
return "DISP_E_NONAMEDARGS";
case DISP_E_OVERFLOW:
return "DISP_E_OVERFLOW";
case DISP_E_PARAMNOTFOUND:
return "DISP_E_PARAMNOTFOUND";
case DISP_E_TYPEMISMATCH:
return "DISP_E_TYPEMISMATCH";
case DISP_E_UNKNOWNINTERFACE:
return "DISP_E_UNKNOWNINTERFACE";
case DISP_E_PARAMNOTOPTIONAL:
return "DISP_E_PARAMNOTOPTIONAL";
case CO_E_SERVER_EXEC_FAILURE:
return "CO_E_SERVER_EXEC_FAILURE";
case MK_E_UNAVAILABLE:
return "MK_E_UNAVAILABLE";
default:
HB_TRACE(HB_TR_INFO, ("TOleAuto Error %p\n", s_nOleError));
return "Unknown error";
};
return "Unknown error";
}
//---------------------------------------------------------------------------//
@@ -1415,19 +1368,19 @@ HB_FUNC( OLE2TXTERROR )
//---------------------------------------------------------------------------//
HB_FUNC( MESSAGEBOX )
{
LPTSTR lpStr1 = HB_TCHAR_CONVTO( hb_parcx( 2 ) ),
lpStr2 = HB_TCHAR_CONVTO( hb_parcx( 3 ) );
hb_retni( MessageBox( ( HWND ) hb_parnl( 1 ), lpStr1, lpStr2, hb_parni( 4 ) ) );
LPTSTR lpStr1 = HB_TCHAR_CONVTO( hb_parcx( 2 ) );
LPTSTR lpStr2 = HB_TCHAR_CONVTO( hb_parcx( 3 ) );
hb_retni( MessageBox( ( HWND ) hb_parnint( 1 ), lpStr1, lpStr2, hb_parni( 4 ) ) );
HB_TCHAR_FREE( lpStr1 );
HB_TCHAR_FREE( lpStr2 );
}
//---------------------------------------------------------------------------//
HB_FUNC( CREATEOLEOBJECT ) // ( cOleName | cCLSID [, cIID ] )
HB_FUNC( CREATEOLEOBJECT ) /* ( cOleName | cCLSID [, cIID ] ) */
{
BSTR bstrClassID;
IID ClassID, iid;
LPIID riid = (LPIID) &IID_IDispatch;
LPIID riid = ( LPIID ) &IID_IDispatch;
void *pDisp = NULL; // IDispatch
/* void *
* used intentionally to inform compiler that there is no
@@ -1436,9 +1389,9 @@ HB_FUNC( CREATEOLEOBJECT ) // ( cOleName | cCLSID [, cIID ] )
bstrClassID = hb_oleAnsiToSysString( hb_parcx( 1 ) );
if( hb_parcx( 1 )[ 0 ] == '{' )
s_nOleError = CLSIDFromString( bstrClassID, (LPCLSID) &ClassID );
s_nOleError = CLSIDFromString( bstrClassID, ( LPCLSID ) &ClassID );
else
s_nOleError = CLSIDFromProgID( bstrClassID, (LPCLSID) &ClassID );
s_nOleError = CLSIDFromProgID( bstrClassID, ( LPCLSID ) &ClassID );
SysFreeString( bstrClassID );
@@ -1473,7 +1426,7 @@ HB_FUNC( GETOLEOBJECT ) // ( cOleName | cCLSID [, cIID ] )
{
BSTR bstrClassID;
IID ClassID, iid;
LPIID riid = (LPIID) &IID_IDispatch;
LPIID riid = ( LPIID ) &IID_IDispatch;
IUnknown *pUnk = NULL;
void *pDisp = NULL; // IDispatch
/* void *
@@ -1484,9 +1437,9 @@ HB_FUNC( GETOLEOBJECT ) // ( cOleName | cCLSID [, cIID ] )
bstrClassID = hb_oleAnsiToSysString( hb_parcx( 1 ) );
if( hb_parcx( 1 )[ 0 ] == '{' )
s_nOleError = CLSIDFromString( bstrClassID, (LPCLSID) &ClassID );
s_nOleError = CLSIDFromString( bstrClassID, ( LPCLSID ) &ClassID );
else
s_nOleError = CLSIDFromProgID( bstrClassID, (LPCLSID) &ClassID );
s_nOleError = CLSIDFromProgID( bstrClassID, ( LPCLSID ) &ClassID );
//s_nOleError = ProgIDFromCLSID( &ClassID, &pOleStr );
//wprintf( L"Result %i ProgID: '%s'\n", s_nOleError, pOleStr );
@@ -1524,7 +1477,7 @@ HB_FUNC( GETOLEOBJECT ) // ( cOleName | cCLSID [, cIID ] )
}
//---------------------------------------------------------------------------//
HB_FUNC( OLEADDREF ) // (hOleObject, szMethodName, uParams...)
HB_FUNC( OLEADDREF ) /* ( hOleObject, szMethodName, uParams... ) */
{
IDispatch *pDisp = ( IDispatch * ) hb_parnl( 1 );
@@ -1536,7 +1489,7 @@ HB_FUNC( OLEADDREF ) // (hOleObject, szMethodName, uParams...)
}
//---------------------------------------------------------------------------//
HB_FUNC( OLERELEASEOBJECT ) // (hOleObject, szMethodName, uParams...)
HB_FUNC( OLERELEASEOBJECT ) /* ( hOleObject, szMethodName, uParams... ) */
{
IDispatch *pDisp = ( IDispatch * ) hb_parnl( 1 );
@@ -1556,7 +1509,7 @@ static HRESULT OleSetProperty( IDispatch *pDisp, DISPID DispID, DISPPARAMS *pDis
// 1 Based!!!
if( ( ISBYREF( 1 ) ) || ISARRAY( 1 ) )
{
memset( (LPBYTE) &excep, 0, sizeof( excep ) );
memset( ( LPBYTE ) &excep, 0, sizeof( excep ) );
s_nOleError = pDisp->lpVtbl->Invoke( pDisp,
DispID,
@@ -1572,7 +1525,7 @@ static HRESULT OleSetProperty( IDispatch *pDisp, DISPID DispID, DISPPARAMS *pDis
return s_nOleError;
}
memset( (LPBYTE) &excep, 0, sizeof( excep ) );
memset( ( LPBYTE ) &excep, 0, sizeof( excep ) );
s_nOleError = pDisp->lpVtbl->Invoke( pDisp,
DispID,
@@ -1593,7 +1546,7 @@ static HRESULT OleSetProperty( IDispatch *pDisp, DISPID DispID, DISPPARAMS *pDis
//---------------------------------------------------------------------------//
static HRESULT OleInvoke( IDispatch *pDisp, DISPID DispID, DISPPARAMS *pDispParams )
{
memset( (LPBYTE) &excep, 0, sizeof( excep ) );
memset( ( LPBYTE ) &excep, 0, sizeof( excep ) );
s_nOleError = pDisp->lpVtbl->Invoke( pDisp,
DispID,
@@ -1611,7 +1564,7 @@ static HRESULT OleInvoke( IDispatch *pDisp, DISPID DispID, DISPPARAMS *pDispPara
//---------------------------------------------------------------------------//
static HRESULT OleGetProperty( IDispatch *pDisp, DISPID DispID, DISPPARAMS *pDispParams )
{
memset( (LPBYTE) &excep, 0, sizeof( excep ) );
memset( ( LPBYTE ) &excep, 0, sizeof( excep ) );
s_nOleError = pDisp->lpVtbl->Invoke( pDisp,
DispID,
@@ -1658,8 +1611,8 @@ static void OleThrowError( void )
if( s_nOleError == DISP_E_EXCEPTION )
{
// Intentional to avoid report of memory leak if fatal error.
char *sTemp = hb_oleWideToAnsi( excep.bstrDescription );
sDescription = (char *) malloc( strlen( sTemp ) + 1 );
char * sTemp = hb_oleWideToAnsi( excep.bstrDescription );
sDescription = ( char * ) malloc( strlen( sTemp ) + 1 );
hb_strncpy( sDescription, sTemp, strlen( sTemp ) );
hb_xfree( sTemp );
}
@@ -1672,7 +1625,7 @@ static void OleThrowError( void )
if( s_nOleError == DISP_E_EXCEPTION )
{
free( (void *) sDescription );
free( ( void * ) sDescription );
}
if( pReturn )
@@ -1737,7 +1690,7 @@ HB_FUNC( TOLEAUTO__OLEVALUE )
//---------------------------------------------------------------------------//
HB_FUNC( TOLEAUTO_OLENEWENUMERATOR ) // (hOleObject, szMethodName, uParams...)
HB_FUNC( TOLEAUTO_OLENEWENUMERATOR ) /* ( hOleObject, szMethodName, uParams... ) */
{
IDispatch *pDisp;
@@ -1791,7 +1744,7 @@ static HRESULT OleGetID( IDispatch *pDisp, const char *szName, DISPID *pDispID,
else*/ if( szName[0] == '_' && szName[1] && hb_pcount() >= 1 )
{
bstrMessage = hb_oleAnsiToSysString( szName + 1 );
s_nOleError = pDisp->lpVtbl->GetIDsOfNames( pDisp, HB_ID_REF( REFIID, IID_NULL ), (wchar_t **) &bstrMessage, 1, LOCALE_SYSTEM_DEFAULT, pDispID );
s_nOleError = pDisp->lpVtbl->GetIDsOfNames( pDisp, HB_ID_REF( REFIID, IID_NULL ), ( wchar_t ** ) &bstrMessage, 1, LOCALE_SYSTEM_DEFAULT, pDispID );
SysFreeString( bstrMessage );
//HB_TRACE(HB_TR_INFO, ("1. ID of: '%s' -> %i Result: %p\n", hb_itemGetSymbol( hb_stackBaseItem() )->szName + 1, DispID, s_nOleError));
@@ -1808,7 +1761,7 @@ static HRESULT OleGetID( IDispatch *pDisp, const char *szName, DISPID *pDispID,
{
// Try again without removing the assign prefix (_).
bstrMessage = hb_oleAnsiToSysString( szName );
s_nOleError = pDisp->lpVtbl->GetIDsOfNames( pDisp, HB_ID_REF( REFIID, IID_NULL ), (wchar_t **) &bstrMessage, 1, 0, pDispID );
s_nOleError = pDisp->lpVtbl->GetIDsOfNames( pDisp, HB_ID_REF( REFIID, IID_NULL ), ( wchar_t ** ) &bstrMessage, 1, 0, pDispID );
SysFreeString( bstrMessage );
//HB_TRACE(HB_TR_INFO, ("2. ID of: '%s' -> %i Result: %p\n", szName, *pDispID, s_nOleError));
}
@@ -1965,7 +1918,7 @@ OleGetID:
iClassNameLen = hb_parclen( -1 );
iMsgNameLen = strlen( hb_itemGetSymbol( hb_stackBaseItem() )->szName );
sOleClassName = (char *) hb_xgrab( iClassNameLen + 1 + iMsgNameLen + 1 );
sOleClassName = ( char * ) hb_xgrab( iClassNameLen + 1 + iMsgNameLen + 1 );
hb_strncpy( sOleClassName, hb_parc( - 1 ), iClassNameLen );
sOleClassName[ iClassNameLen ] = ':';