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:
@@ -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
|
||||
|
||||
@@ -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 ) ) ) );
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* Harbour Project source code:
|
||||
* Harbour GUI framework for IBM OS/2 Presentation Manager
|
||||
|
||||
@@ -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 ) )
|
||||
|
||||
@@ -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 *) */
|
||||
{
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 * ) */
|
||||
{
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user