2008-06-26 12:25 UTC+0200 Viktor Szakats (harbour.01 syenar hu)

* contrib/hbmysql/mysql.c
   * contrib/hbmysql/tmysql.prg
   * contrib/hbmsql/msql.c
   * contrib/hbmsql/tmsql.prg
     ! Fixed again to use hb_parptr()/hb_retptr() 
       instead of hb_parnl()/hb_retnl(). This fixes these libs 
       on 64 bit systems.
       This is an INCOMPATIBLE change, users of these libs will 
       have to update their code when dealing with return values 
       of the following functions:
       - hbmysql / SQLCONNECT()
       - hbmysql / SQLSTORER()
       - hbmysql / SQLUSERES()
       - hbmsql / MSQLSTORER()
       - hbmsql / MSQLLISTFI()
       They will now return pointer type instead of a number, 
       so error checking will have to be changed from r > 0, 
       r ==/=/!=/> 0 to !Empty( r ).
     ; Please test.

   * contrib/hbgf/hbgfw32/win32.c
   * contrib/hbgf/hbgfos2/os2pm.c
   * contrib/hbgf/hbgfos2/os2pm.ch
     * Some cleanups.
     ; Please test for OS/2.
This commit is contained in:
Viktor Szakats
2008-06-26 10:28:07 +00:00
parent c82626bc3d
commit 8dcaa95da6
8 changed files with 84 additions and 68 deletions

View File

@@ -8,6 +8,33 @@
2008-12-31 13:59 UTC+0100 Foo Bar <foo.bar@foobar.org>
*/
2008-06-26 12:25 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* contrib/hbmysql/mysql.c
* contrib/hbmysql/tmysql.prg
* contrib/hbmsql/msql.c
* contrib/hbmsql/tmsql.prg
! Fixed again to use hb_parptr()/hb_retptr()
instead of hb_parnl()/hb_retnl(). This fixes these libs
on 64 bit systems.
This is an INCOMPATIBLE change, users of these libs will
have to update their code when dealing with return values
of the following functions:
- hbmysql / SQLCONNECT()
- hbmysql / SQLSTORER()
- hbmysql / SQLUSERES()
- hbmsql / MSQLSTORER()
- hbmsql / MSQLLISTFI()
They will now return pointer type instead of a number,
so error checking will have to be changed from r > 0,
r ==/=/!=/> 0 to !Empty( r ).
; Please test.
* contrib/hbgf/hbgfw32/win32.c
* contrib/hbgf/hbgfos2/os2pm.c
* contrib/hbgf/hbgfos2/os2pm.ch
* Some cleanups.
; Please test for OS/2.
2008-06-26 11:47 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/contrib/hbmsql/msql.c
! changed msqlGetErrMsg( NULL ) => msqlErrMsg

View File

@@ -52,8 +52,6 @@
*
*/
#define INCL_BASE
#define INCL_PM
#include <os2.h>
@@ -70,12 +68,13 @@ MRESULT EXPENTRY WndProc( HWND, ULONG, MPARAM, MPARAM );
MRESULT EXPENTRY WndProc( HWND hWnd, ULONG Msg, MPARAM mp1, MPARAM mp2 )
{
static PHB_DYNS pDynSym = 0;
static PHB_DYNS s_pDynSym = 0;
MRESULT mResult;
HPS hps;
if( ! pDynSym )
pDynSym = hb_dynsymFind( "HB_GUI" );
if( ! s_pDynSym )
s_pDynSym = hb_dynsymFind( "HB_GUI" );
switch (Msg)
{
@@ -87,7 +86,7 @@ MRESULT EXPENTRY WndProc( HWND hWnd, ULONG Msg, MPARAM mp1, MPARAM mp2 )
default:
hb_vmPushState();
hb_vmPushSymbol( hb_dynsymSymbol( pDynSym ) );
hb_vmPushSymbol( hb_dynsymSymbol( s_pDynSym ) );
hb_vmPushNil();
hb_vmPushLong( (LONG) hWnd );
hb_vmPushLong( (LONG) Msg );
@@ -102,13 +101,11 @@ MRESULT EXPENTRY WndProc( HWND hWnd, ULONG Msg, MPARAM mp1, MPARAM mp2 )
return mResult;
}
}
HB_FUNC( WINREGISTERCLASS )
{
hb_retl( WinRegisterClass( hb_pm_GetHab(), /* anchor block handle */
hb_parc( 1 ), /* Class Name */
( PFNWP ) WndProc, /* default Class procedure */
@@ -119,42 +116,37 @@ HB_FUNC( WINREGISTERCLASS )
HB_FUNC(WINCREATEWINDOW)
{
HWND hwnd;
hwnd = WinCreateWindow( (HWND) hb_parnl(1), /* hWnd parent */
(PCSZ) hb_parc(2), /* pszClass */
(PCSZ) hb_parc(3), /* pszName */
(ULONG) hb_parnl(4), /* flStyle */
(LONG) hb_parnl(5), /* x */
(LONG) hb_parnl(6), /* y */
(LONG) hb_parnl(7), /* cx */
(LONG) hb_parnl(8), /* cy */
(HWND) hb_parnl(9), /* hwndOwner */
(HWND) hb_parnl(10), /* hwndInsertBehind */
(ULONG) hb_parnl(11), /* id */
(PVOID) hb_parnl(12), /* pCtlData, */
(PVOID) hb_parnl(13)); /* pPresParams */
hb_retnl((LONG) hwnd);
hb_retnl( (LONG) WinCreateWindow( (HWND) hb_parnl(1), /* hWnd parent */
(PCSZ) hb_parc(2), /* pszClass */
(PCSZ) hb_parc(3), /* pszName */
(ULONG) hb_parnl(4), /* flStyle */
(LONG) hb_parnl(5), /* x */
(LONG) hb_parnl(6), /* y */
(LONG) hb_parnl(7), /* cx */
(LONG) hb_parnl(8), /* cy */
(HWND) hb_parnl(9), /* hwndOwner */
(HWND) hb_parnl(10), /* hwndInsertBehind */
(ULONG) hb_parnl(11), /* id */
(PVOID) hb_parnl(12), /* pCtlData, */
(PVOID) hb_parnl(13))); /* pPresParams */
}
HB_FUNC( WINCREATESTDWINDOW )
{
ULONG lFrame = hb_parnl( 3 );
HWND hWndClient, hWndFrame;
HWND hWndClient;
hWndFrame = WinCreateStdWindow( ( HWND ) hb_parnl( 1 ), /* hWndParent */
hb_parnl( 2 ), /* style */
&lFrame, /* lFrame */
hb_parc( 4 ), /* cClassName */
hb_parc( 5 ), /* cCaption */
hb_parnl( 6 ), /* lStyleClient */
hb_parnl( 7 ), /* hModule */
hb_parnl( 8 ), /* nId */
( PHWND ) &hWndClient ); /* Window client handle */
hb_retnl( (LONG) WinCreateStdWindow( ( HWND ) hb_parnl( 1 ), /* hWndParent */
hb_parnl( 2 ), /* style */
&lFrame, /* lFrame */
hb_parc( 4 ), /* cClassName */
hb_parc( 5 ), /* cCaption */
hb_parnl( 6 ), /* lStyleClient */
hb_parnl( 7 ), /* hModule */
hb_parnl( 8 ), /* nId */
( PHWND ) &hWndClient )); /* Window client handle */
hb_retnl( (LONG) hWndFrame);
hb_stornl( ( LONG ) hWndClient, 9 );
}
@@ -166,9 +158,7 @@ HB_FUNC( HB_FORMSHOWMODAL )
WinShowWindow( ( HWND ) hb_parnl( 1 ), 1 );
while( WinGetMsg( hab, &qmsg, 0, 0, 0 ) )
{
WinDispatchMsg( hab, &qmsg );
}
}
@@ -195,7 +185,7 @@ HB_FUNC( WINGETTEXT )
{
BYTE bBuffer[ 255 ];
WinQueryWindowText( ( HWND ) hb_parnl( 1 ), 254, bBuffer );
WinQueryWindowText( ( HWND ) hb_parnl( 1 ), sizeof( bBuffer ) - 1, bBuffer );
hb_retc( bBuffer );
}
@@ -210,11 +200,9 @@ HB_FUNC( MSGINFO )
}
HAB hb_pm_GetHab() {
HWND hWnd = WinQueryActiveWindow( HWND_DESKTOP);
return WinQueryAnchorBlock(hWnd);
HAB hb_pm_GetHab()
{
return WinQueryAnchorBlock( WinQueryActiveWindow( HWND_DESKTOP ) );
}
@@ -232,7 +220,7 @@ HB_FUNC( WINCREATEMENU )
/* Some xBase for C language */
#define IF(x,y,z) ((x)?(y):(z))
#define IIF(x,y,z) ((x)?(y):(z))
HB_FUNC( WINADDMENUITEM )
@@ -240,8 +228,8 @@ HB_FUNC( WINADDMENUITEM )
MENUITEM mit;
mit.iPosition = hb_parni( 3 );
mit.afStyle = IF( ISCHAR( 2 ), MIS_TEXT, MIS_SEPARATOR );
mit.afAttribute = IF( ! hb_parl( 6 ), MIA_DISABLED, 0 );
mit.afStyle = IIF( ISCHAR( 2 ), MIS_TEXT, MIS_SEPARATOR );
mit.afAttribute = IIF( ! hb_parl( 6 ), MIA_DISABLED, 0 );
mit.id = hb_parni( 5 );
mit.hwndSubMenu = hb_parnl( 4 );
mit.hItem = 0;
@@ -258,11 +246,11 @@ HB_FUNC( WINMAKESUBMENUITEM )
{
MENUITEM mit;
MRESULT rc;
char text[100];
char text[ 100 ];
rc = WinSendMsg((HWND) hb_parnl(1), MM_QUERYITEM, MPFROM2SHORT(hb_parni(2), FALSE ), &mit );
if ((BOOL)rc) {
WinSendMsg((HWND) hb_parnl(1), MM_QUERYITEMTEXT, MPFROM2SHORT(hb_parni(2), 100), &text );
WinSendMsg((HWND) hb_parnl(1), MM_QUERYITEMTEXT, MPFROM2SHORT(hb_parni(2), sizeof( text ) ), &text );
WinSendMsg((HWND) hb_parnl(1), MM_DELETEITEM, MPFROM2SHORT(hb_parni(2), FALSE ), 0L );
mit.hwndSubMenu = hb_parnl(3);
@@ -291,8 +279,8 @@ HB_FUNC( WINSETOWNER )
HB_FUNC( WINSENDMSG )
{
hb_retnl( ( LONG ) WinSendMsg( ( HWND ) hb_parnl( 1 ), hb_parnl( 2 ),
( MPARAM ) IF( ISCHAR( 3 ), (ULONG) hb_parc( 3 ), (ULONG) hb_parnl( 3 ) ),
( MPARAM ) IF( ISCHAR( 4 ), (ULONG) hb_parc( 4 ), (ULONG) hb_parnl( 4 ) ) ) );
( MPARAM ) IIF( ISCHAR( 3 ), (ULONG) hb_parc( 3 ), (ULONG) hb_parnl( 3 ) ),
( MPARAM ) IIF( ISCHAR( 4 ), (ULONG) hb_parc( 4 ), (ULONG) hb_parnl( 4 ) ) ) );
}

View File

@@ -2,7 +2,6 @@
* $Id$
*/
/*
* Harbour Project source code:
* Harbour GUI framework for IBM OS/2 Presentation Manager

View File

@@ -52,16 +52,18 @@
*/
#define _WIN32_WINNT 0x0400
#include <windows.h>
#define HB_OS_WIN_32_USED
#include "hbapi.h"
#include "hbvm.h"
#include "hbstack.h"
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
LRESULT CALLBACK WndProc( HWND, UINT, WPARAM, LPARAM );
HB_FUNC( WINREGISTERCLASS )
{
WNDCLASS wndclass ;
WNDCLASS wndclass;
wndclass.lpszClassName = hb_parc( 1 );
wndclass.style = CS_OWNDC | CS_VREDRAW | CS_HREDRAW; // hb_parnl( 2 );
@@ -96,7 +98,7 @@ HB_FUNC( HB_FORMSHOWMODAL )
ShowWindow( ( HWND ) hb_parnl( 1 ), 1 );
while( GetMessage( &msg, NULL, 0, 0 ) )
{
TranslateMessage( &msg );
TranslateMessage( &msg );
DispatchMessage( &msg );
}
}
@@ -124,7 +126,7 @@ HB_FUNC( WINGETTEXT )
{
BYTE bBuffer[ 255 ];
GetWindowText( ( HWND ) hb_parnl( 1 ), (char*) bBuffer, 254 );
GetWindowText( ( HWND ) hb_parnl( 1 ), (char*) bBuffer, sizeof( bBuffer ) - 1 );
hb_retc( (char*) bBuffer );
}
@@ -144,7 +146,7 @@ HB_FUNC( WINCREATEMENU )
/* Some xBase for C language */
#define IF(x,y,z) ((x)?(y):(z))
#define IIF(x,y,z) ((x)?(y):(z))
HB_FUNC( WINADDMENUITEM )
@@ -155,7 +157,7 @@ HB_FUNC( WINADDMENUITEM )
mii.cbSize = sizeof( MENUITEMINFO );
mii.fMask = MIIM_TYPE | MIIM_STATE | MIIM_ID | ((hSubMenu)? MIIM_SUBMENU:0);
mii.fState = IF( ! hb_parl( 6 ), MFS_DISABLED, 0 );
mii.fState = IIF( ! hb_parl( 6 ), MFS_DISABLED, 0 );
mii.wID = hb_parni( 5 );
mii.hSubMenu = hSubMenu;
if( ISCHAR( 2 ) )

View File

@@ -60,8 +60,8 @@
#include "msql.h"
#define HB_PARPTR( n ) hb_parnl( n )
#define HB_RETPTR( n ) hb_retnl( n )
#define HB_PARPTR( n ) hb_parptr( n )
#define HB_RETPTR( n ) hb_retptr( n )
HB_FUNC( MSQLCONNEC ) /* int msqlConnect(char *) */
{

View File

@@ -381,7 +381,7 @@ METHOD New(nSocket, cQuery, cTableName) CLASS TmSQLTable
nRes := msqlListFi(nSocket, cTableName)
if nRes > 0
if !Empty( nRes )
for i := 1 to msqlNumFie(nRes)
aField := msqlFetchF(nRes)
// don't count indexes as real fields
@@ -804,7 +804,7 @@ METHOD TableStruct(cTable) CLASS TmSQLServer
aStruct := {}
nRes := msqlListFi(::nSocket, cTable)
if nRes > 0
if !Empty( nRes )
for i := 1 to msqlNumFie(nRes)
aField := msqlFetchF(nRes)

View File

@@ -75,8 +75,8 @@
/* TODO: Use hb_retptrGC() */
#define HB_PARPTR( n ) hb_parnl( n )
#define HB_RETPTR( n ) hb_retnl( n )
#define HB_PARPTR( n ) hb_parptr( n )
#define HB_RETPTR( n ) hb_retptr( n )
HB_FUNC( SQLVERSION ) /* long mysql_get_server_version( MYSQL * ) */
{

View File

@@ -350,7 +350,7 @@ METHOD New(nSocket, cQuery) CLASS TMySQLQuery
if (rc := sqlQuery(nSocket, cQuery)) == 0
// save result set
if (::nResultHandle := sqlStoreR(nSocket)) > 0
if !Empty(::nResultHandle := sqlStoreR(nSocket))
::nNumRows := sqlNRows(::nResultHandle)
::nNumFields := sqlNumFi(::nResultHandle)
@@ -1373,7 +1373,7 @@ METHOD New(cServer, cUser, cPassword) CLASS TMySQLServer
::nSocket := sqlConnect(cServer, cUser, cPassword)
::lError := .F.
if ::nSocket == 0
if Empty( ::nSocket )
::lError := .T.
endif
@@ -1622,7 +1622,7 @@ METHOD Error() CLASS TMySQLServer
::lError := .F.
return iif(::nSocket > 0, sqlGetErr(::nSocket), "No connection to server")
return iif(Empty( ::nSocket ), "No connection to server", sqlGetErr(::nSocket))
METHOD ListDBs() CLASS TMySQLServer