2012-11-15 13:02 UTC+0100 Viktor Szakats (harbour syenar.net)
* contrib/hbformat/hbfmtcls.prg
+ added new TODO to add space between '!'
operator and single (= not parenthesised) arguments.
* contrib/hbfimage/fi_wrp.c
* minor
* contrib/hbodbc/odbc.c
! fixed to build under ODBC 1.x, 2.x
! fixed to use ODBC 3.x functions instead of
deprecated functions.
* minor cleanups to prev
* contrib/sddodbc/sddodbc.c
! fixed to build under ODBC 1.x, 2.x
* README
+ added note that hbrun scripts are started
in UTF-8 mode.
+ added command lines for formatting C and PRG sources
* minor cleanups
* contrib/hbnf/doc/en/cint86.txt
* contrib/hbnf/ftmenuto.ch
* contrib/xhb/html.ch
* contrib/xhb/htmlform.ch
* extras/gtwvw/docs/funclist.txt
* extras/gtwvw/docs/gtwvw.txt
* extras/gtwvw/docs/whatsnew.txt
* extras/gtwvw/gtwvwd.c
* extras/gtwvw/tests/ebtest7.prg
* extras/gtwvw/tests/prog0.prg
* extras/gtwvw/tests/prog1.prg
* extras/gtwvw/tests/prog2.prg
* extras/gtwvw/tests/wvwtest9.prg
* src/rtl/achoice.prg
* src/vm/thread.c
* website/samples/testcgi.prg.html
* website/samples/testhtml.prg.html
* website/third-party.html
* lowercased (or deleted) references to
source filenames.
This commit is contained in:
@@ -16,10 +16,54 @@
|
||||
The license applies to all entries newer than 2009-04-28.
|
||||
*/
|
||||
|
||||
2012-11-15 13:02 UTC+0100 Viktor Szakats (harbour syenar.net)
|
||||
* contrib/hbformat/hbfmtcls.prg
|
||||
+ added new TODO to add space between '!'
|
||||
operator and single (= not parenthesised) arguments.
|
||||
|
||||
* contrib/hbfimage/fi_wrp.c
|
||||
* minor
|
||||
|
||||
* contrib/hbodbc/odbc.c
|
||||
! fixed to build under ODBC 1.x, 2.x
|
||||
! fixed to use ODBC 3.x functions instead of
|
||||
deprecated functions.
|
||||
* minor cleanups to prev
|
||||
|
||||
* contrib/sddodbc/sddodbc.c
|
||||
! fixed to build under ODBC 1.x, 2.x
|
||||
|
||||
* README
|
||||
+ added note that hbrun scripts are started
|
||||
in UTF-8 mode.
|
||||
+ added command lines for formatting C and PRG sources
|
||||
* minor cleanups
|
||||
|
||||
* contrib/hbnf/doc/en/cint86.txt
|
||||
* contrib/hbnf/ftmenuto.ch
|
||||
* contrib/xhb/html.ch
|
||||
* contrib/xhb/htmlform.ch
|
||||
* extras/gtwvw/docs/funclist.txt
|
||||
* extras/gtwvw/docs/gtwvw.txt
|
||||
* extras/gtwvw/docs/whatsnew.txt
|
||||
* extras/gtwvw/gtwvwd.c
|
||||
* extras/gtwvw/tests/ebtest7.prg
|
||||
* extras/gtwvw/tests/prog0.prg
|
||||
* extras/gtwvw/tests/prog1.prg
|
||||
* extras/gtwvw/tests/prog2.prg
|
||||
* extras/gtwvw/tests/wvwtest9.prg
|
||||
* src/rtl/achoice.prg
|
||||
* src/vm/thread.c
|
||||
* website/samples/testcgi.prg.html
|
||||
* website/samples/testhtml.prg.html
|
||||
* website/third-party.html
|
||||
* lowercased (or deleted) references to
|
||||
source filenames.
|
||||
|
||||
2012-11-15 01:20 UTC+0100 Viktor Szakats (harbour syenar.net)
|
||||
* contrib/hbnf/floptst.prg
|
||||
* utils/hbmk2/hbmk2.prg
|
||||
* minor folloup cleanup
|
||||
* minor followup cleanup
|
||||
|
||||
2012-11-14 21:37 UTC+0100 Viktor Szakats (harbour syenar.net)
|
||||
* COPYING
|
||||
|
||||
@@ -766,7 +766,7 @@ TABLE OF CONTENT
|
||||
- HB_USER_LIBS=[<list>] Add space separated <list> of libs to link process.
|
||||
Lib names should be without extension and path.
|
||||
You only need this in special cases, like CodeGuard
|
||||
build with bcc.
|
||||
build with win/bcc.
|
||||
- HB_INSTALL_IMPLIB=no Copy import libraries created for external .dll
|
||||
dependencies to the library install directory in
|
||||
'install' build phase. Default: yes
|
||||
@@ -1334,7 +1334,7 @@ TABLE OF CONTENT
|
||||
Follows some environment variable settings which are commonly believed
|
||||
by users to be useful, but which in reality are either not needed or
|
||||
not even used by Harbour build process and hbmk2.
|
||||
You can delete them:
|
||||
You should delete them:
|
||||
set HB_DIR=<Harbour root dir>
|
||||
set HB_PATH=<Harbour root dir>
|
||||
set HRB_DIR=<Some Harbour dir>
|
||||
@@ -1428,6 +1428,8 @@ TABLE OF CONTENT
|
||||
- To run result of above:
|
||||
'hbmk2 script.hrb [<parameters>]'
|
||||
|
||||
NOTE: .hb and .hrb scripts are started in UTF-8 mode.
|
||||
|
||||
Examples to build a Harbour application:
|
||||
|
||||
- To build one simple .prg:
|
||||
@@ -1801,7 +1803,10 @@ TABLE OF CONTENT
|
||||
created from root directory of the repository sandbox.
|
||||
Zip your patch file before attaching it. Use the extension '.zip'.
|
||||
Always use the same coding/formatting style as you find in
|
||||
the files you're patching.
|
||||
the files you're patching. The easiest way to achieve this
|
||||
is to use these commands to format your sources:
|
||||
$ uncrustify -c <harbour_dir>/bin/harbour.ucf <.c/.h filename>
|
||||
$ <harbour_dir>/bin/hbformat <.prg/.ch/.hb filename>
|
||||
- In the rare case you need to send something large (> 100KB),
|
||||
use this free service: http://dropcanvas.com
|
||||
- Given a good history of valuable contributions, you can get
|
||||
|
||||
@@ -1466,15 +1466,15 @@ HB_FUNC( FI_WINCONVTODIB )
|
||||
#if ! defined( HB_OS_WIN_CE )
|
||||
FIBITMAP * dib = hb_FIBITMAP_par( 1 );
|
||||
HDC hDC = GetDC( NULL );
|
||||
HBITMAP bitmap;
|
||||
|
||||
/* run function */
|
||||
bitmap = CreateDIBitmap( hDC,
|
||||
FreeImage_GetInfoHeader( dib ),
|
||||
CBM_INIT,
|
||||
FreeImage_GetBits( dib ),
|
||||
FreeImage_GetInfo( dib ),
|
||||
DIB_RGB_COLORS );
|
||||
HBITMAP bitmap = CreateDIBitmap( hDC,
|
||||
FreeImage_GetInfoHeader( dib ),
|
||||
CBM_INIT,
|
||||
FreeImage_GetBits( dib ),
|
||||
FreeImage_GetInfo( dib ),
|
||||
DIB_RGB_COLORS );
|
||||
|
||||
ReleaseDC( NULL, hDC );
|
||||
|
||||
if( bitmap )
|
||||
|
||||
@@ -78,6 +78,10 @@
|
||||
// STATIC a4
|
||||
// THREAD STATIC a5
|
||||
// ---
|
||||
//
|
||||
// a. To add a space between "!" operator and its argument
|
||||
// unless it's beginning with a parenthesis:
|
||||
// 'IF ! Empty()' and 'IF !( "a" == b )'
|
||||
|
||||
CREATE CLASS HBFormatCode
|
||||
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
|
||||
That takes care of obtaining the segment portion of the pointer. To
|
||||
specify which register is to contain the offset, use the values REG_DS
|
||||
and REG_ES which are defined in the FTINT86.CH file. When one of these
|
||||
and REG_ES which are defined in the ftint86.ch file. When one of these
|
||||
values is found in an array element, it alerts FT_Int86() to use the
|
||||
offset portion of a pointer instead of a numeric value. REG_DS tells
|
||||
FT_Int86() to use the offset of the string in element 8, while REG_ES
|
||||
@@ -80,11 +80,11 @@
|
||||
also split into two 8-bit registers. This function is only capable of
|
||||
receiving and returning registers that are 16 bits in size. To split
|
||||
a 16-bit register into two 8-bit values, you can use the
|
||||
pseudo-functions HighByte() and LowByte(), contained in the .CH file.
|
||||
pseudo-functions HighByte() and LowByte(), contained in the .ch file.
|
||||
|
||||
To alter an 8-bit number so it will appear in the high-order byte of a
|
||||
register when passed to the FT_INT86() function, use the MakeHI()
|
||||
pseudo-function contained in the .CH file.
|
||||
pseudo-function contained in the .ch file.
|
||||
|
||||
When run in real mode, this function is a shell for __ftint86(),
|
||||
which is written in assembler and does the actual work of executing
|
||||
|
||||
@@ -28,8 +28,8 @@
|
||||
*/
|
||||
|
||||
/*
|
||||
These commands will simplify use of the FT_PROMPT() and
|
||||
FT_MENUTO() functions. Refer to MENUTO.PRG for more info.
|
||||
These commands will simplify use of the ft_Prompt() and
|
||||
ft_MenuTo() functions. Refer to menuto.prg for more info.
|
||||
These commands can replace the existing Clipper @ PROMPT and
|
||||
MENU TO commands.
|
||||
*/
|
||||
|
||||
@@ -146,7 +146,7 @@ typedef unsigned char SQLTCHAR;
|
||||
static HB_GARBAGE_FUNC( hb_SQLHENV_Destructor )
|
||||
{
|
||||
/* Retrieve image pointer holder */
|
||||
SQLHENV ** ptr = ( SQLHENV ** ) Cargo;
|
||||
SQLHENV * ptr = ( SQLHENV * ) Cargo;
|
||||
|
||||
/* Check if pointer is not NULL to avoid multiple freeing */
|
||||
if( *ptr )
|
||||
@@ -155,7 +155,7 @@ static HB_GARBAGE_FUNC( hb_SQLHENV_Destructor )
|
||||
#if ODBCVER >= 0x0300
|
||||
SQLFreeHandle( SQL_HANDLE_ENV, ( SQLHANDLE ) *ptr );
|
||||
#else
|
||||
SQLFreeEnv( ( SQLHENV ) *ptr );
|
||||
SQLFreeEnv( *ptr );
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -177,16 +177,16 @@ static SQLHENV hb_SQLHENV_par( int iParam )
|
||||
return ptr ? *ptr : NULL;
|
||||
}
|
||||
|
||||
static SQLHANDLE hb_SQLHENV_is( int iParam )
|
||||
static SQLHENV hb_SQLHENV_is( int iParam )
|
||||
{
|
||||
return hb_parptrGC( &s_gcSQLHENVFuncs, iParam );
|
||||
}
|
||||
|
||||
static void hb_SQLHENV_stor( SQLHENV hnd, int iParam )
|
||||
static void hb_SQLHENV_stor( SQLHENV hEnv, int iParam )
|
||||
{
|
||||
SQLHENV * ptr = ( SQLHENV * ) hb_gcAllocate( sizeof( SQLHENV ), &s_gcSQLHENVFuncs );
|
||||
|
||||
*ptr = hnd;
|
||||
*ptr = hEnv;
|
||||
|
||||
hb_storptrGC( ( void * ) ptr, iParam );
|
||||
}
|
||||
@@ -196,7 +196,7 @@ static void hb_SQLHENV_stor( SQLHENV hnd, int iParam )
|
||||
static HB_GARBAGE_FUNC( hb_SQLHDBC_Destructor )
|
||||
{
|
||||
/* Retrieve image pointer holder */
|
||||
SQLHDBC ** ptr = ( SQLHDBC ** ) Cargo;
|
||||
SQLHDBC * ptr = ( SQLHDBC * ) Cargo;
|
||||
|
||||
/* Check if pointer is not NULL to avoid multiple freeing */
|
||||
if( *ptr )
|
||||
@@ -205,7 +205,7 @@ static HB_GARBAGE_FUNC( hb_SQLHDBC_Destructor )
|
||||
#if ODBCVER >= 0x0300
|
||||
SQLFreeHandle( SQL_HANDLE_DBC, ( SQLHANDLE ) *ptr );
|
||||
#else
|
||||
SQLFreeConnect( ( SQLHDBC ) *ptr );
|
||||
SQLFreeConnect( *ptr );
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -227,16 +227,16 @@ static SQLHDBC hb_SQLHDBC_par( int iParam )
|
||||
return ptr ? *ptr : NULL;
|
||||
}
|
||||
|
||||
static SQLHANDLE hb_SQLHDBC_is( int iParam )
|
||||
static SQLHDBC hb_SQLHDBC_is( int iParam )
|
||||
{
|
||||
return hb_parptrGC( &s_gcSQLHDBCFuncs, iParam );
|
||||
}
|
||||
|
||||
static void hb_SQLHDBC_stor( SQLHDBC hnd, int iParam )
|
||||
static void hb_SQLHDBC_stor( SQLHDBC hDbc, int iParam )
|
||||
{
|
||||
SQLHDBC * ptr = ( SQLHDBC * ) hb_gcAllocate( sizeof( SQLHDBC ), &s_gcSQLHDBCFuncs );
|
||||
|
||||
*ptr = hnd;
|
||||
*ptr = hDbc;
|
||||
|
||||
hb_storptrGC( ( void * ) ptr, iParam );
|
||||
}
|
||||
@@ -246,7 +246,7 @@ static void hb_SQLHDBC_stor( SQLHDBC hnd, int iParam )
|
||||
static HB_GARBAGE_FUNC( hb_SQLHSTMT_Destructor )
|
||||
{
|
||||
/* Retrieve image pointer holder */
|
||||
SQLHSTMT ** ptr = ( SQLHSTMT ** ) Cargo;
|
||||
SQLHSTMT * ptr = ( SQLHSTMT * ) Cargo;
|
||||
|
||||
/* Check if pointer is not NULL to avoid multiple freeing */
|
||||
if( *ptr )
|
||||
@@ -255,7 +255,7 @@ static HB_GARBAGE_FUNC( hb_SQLHSTMT_Destructor )
|
||||
#if ODBCVER >= 0x0300
|
||||
SQLFreeHandle( SQL_HANDLE_STMT, ( SQLHANDLE ) *ptr );
|
||||
#else
|
||||
SQLFreeStmt( ( SQLHSTMT ) *ptr, SQL_DROP );
|
||||
SQLFreeStmt( *ptr, SQL_DROP );
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -277,16 +277,16 @@ static SQLHSTMT hb_SQLHSTMT_par( int iParam )
|
||||
return ptr ? *ptr : NULL;
|
||||
}
|
||||
|
||||
static SQLHANDLE hb_SQLHSTMT_is( int iParam )
|
||||
static SQLHSTMT hb_SQLHSTMT_is( int iParam )
|
||||
{
|
||||
return hb_parptrGC( &s_gcSQLHSTMTFuncs, iParam );
|
||||
}
|
||||
|
||||
static void hb_SQLHSTMT_stor( SQLHSTMT hnd, int iParam )
|
||||
static void hb_SQLHSTMT_stor( SQLHSTMT hStmt, int iParam )
|
||||
{
|
||||
SQLHSTMT * ptr = ( SQLHSTMT * ) hb_gcAllocate( sizeof( SQLHSTMT ), &s_gcSQLHSTMTFuncs );
|
||||
|
||||
*ptr = hnd;
|
||||
*ptr = hStmt;
|
||||
|
||||
hb_storptrGC( ( void * ) ptr, iParam );
|
||||
}
|
||||
@@ -295,7 +295,11 @@ HB_FUNC( SQLALLOCENV ) /* @hEnv --> nRetCode */
|
||||
{
|
||||
SQLHENV hEnv;
|
||||
|
||||
#if ODBCVER >= 0x0300
|
||||
hb_retni( SQLAllocHandle( SQL_HANDLE_ENV, SQL_NULL_HANDLE, &hEnv ) );
|
||||
#else
|
||||
hb_retni( SQLAllocEnv( &hEnv ) );
|
||||
#endif
|
||||
|
||||
hb_SQLHENV_stor( hEnv, 1 );
|
||||
}
|
||||
@@ -304,9 +308,14 @@ HB_FUNC( SQLALLOCCONNECT ) /* hEnv, @hDbc --> nRetCode */
|
||||
{
|
||||
if( hb_SQLHENV_is( 1 ) )
|
||||
{
|
||||
SQLHENV hEnv = hb_SQLHENV_par( 1 );
|
||||
SQLHDBC hDbc;
|
||||
|
||||
hb_retni( SQLAllocConnect( hb_SQLHENV_par( 1 ), &hDbc ) );
|
||||
#if ODBCVER >= 0x0300
|
||||
hb_retni( SQLAllocHandle( SQL_HANDLE_DBC, hEnv, &hDbc ) );
|
||||
#else
|
||||
hb_retni( SQLAllocConnect( hEnv, &hDbc ) );
|
||||
#endif
|
||||
|
||||
hb_SQLHDBC_stor( hDbc, 2 );
|
||||
}
|
||||
@@ -410,9 +419,14 @@ HB_FUNC( SQLALLOCSTMT ) /* hDbc, @hStmt --> nRetCode */
|
||||
{
|
||||
if( hb_SQLHDBC_is( 1 ) )
|
||||
{
|
||||
SQLHDBC hDbc = hb_SQLHDBC_par( 1 );
|
||||
SQLHSTMT hStmt;
|
||||
|
||||
hb_retni( SQLAllocStmt( hb_SQLHDBC_par( 1 ), &hStmt ) );
|
||||
#if ODBCVER >= 0x0300
|
||||
hb_retni( SQLAllocHandle( SQL_HANDLE_STMT, hDbc, &hStmt ) );
|
||||
#else
|
||||
hb_retni( SQLAllocStmt( hDbc, &hStmt ) );
|
||||
#endif
|
||||
|
||||
hb_SQLHSTMT_stor( hStmt, 2 );
|
||||
}
|
||||
@@ -666,6 +680,7 @@ HB_FUNC( SQLERROR ) /* hEnv, hDbc, hStmt, @cErrorClass, @nType, @cErrorMsg */
|
||||
|
||||
HB_FUNC( SQLGETDIAGREC ) /* nHandleType, hHandle, nRecNumber, @cSQLState, @nError, @cErrorMsg */
|
||||
{
|
||||
#if ODBCVER >= 0x0300
|
||||
SQLSMALLINT iHandleType = ( SQLSMALLINT ) hb_parni( 1 );
|
||||
SQLHANDLE hHandle;
|
||||
|
||||
@@ -710,6 +725,12 @@ HB_FUNC( SQLGETDIAGREC ) /* nHandleType, hHandle, nRecNumber, @cSQLState, @nErro
|
||||
}
|
||||
else
|
||||
hb_errRT_BASE_SubstR( EG_ARG, 0, NULL, HB_ERR_FUNCNAME, HB_ERR_ARGS_BASEPARAMS );
|
||||
#else
|
||||
hb_retni( SQL_ERROR );
|
||||
hb_storc( "", 4 );
|
||||
hb_stornl( 0, 5 );
|
||||
hb_storc( "", 6 );
|
||||
#endif
|
||||
}
|
||||
|
||||
HB_FUNC( SQLROWCOUNT )
|
||||
@@ -760,7 +781,7 @@ HB_FUNC( SQLSETCONNECTATTR ) /* hDbc, nOption, uOption */
|
||||
#else
|
||||
hb_retni( SQLSetConnectOption( hb_SQLHDBC_par( 1 ),
|
||||
( SQLUSMALLINT ) hb_parni( 2 ),
|
||||
( SQLULEN ) HB_ISCHAR( 3 ) ? ( SQLULEN ) hb_parc( 3 ) : hb_parnl( 3 ) ) );
|
||||
HB_ISCHAR( 3 ) ? ( SQLULEN ) hb_parc( 3 ) : ( SQLULEN ) hb_parnl( 3 ) ) );
|
||||
#endif
|
||||
}
|
||||
else
|
||||
@@ -779,7 +800,7 @@ HB_FUNC( SQLSETSTMTATTR ) /* hStmt, nOption, uOption --> nRetCode */
|
||||
#else
|
||||
hb_retni( SQLSetStmtOption( hb_SQLHSTMT_par( 1 ),
|
||||
( SQLUSMALLINT ) hb_parni( 2 ),
|
||||
( SQLULEN ) HB_ISCHAR( 3 ) ? ( SQLULEN ) hb_parc( 3 ) : hb_parnl( 3 ) ) );
|
||||
HB_ISCHAR( 3 ) ? ( SQLULEN ) hb_parc( 3 ) : ( SQLULEN ) hb_parnl( 3 ) ) );
|
||||
#endif
|
||||
}
|
||||
else
|
||||
|
||||
@@ -209,11 +209,21 @@ static HB_ERRCODE odbcConnect( SQLDDCONNECTION * pConnection, PHB_ITEM pItem )
|
||||
char * szError;
|
||||
HB_ERRCODE errCode;
|
||||
|
||||
#if ODBCVER >= 0x0300
|
||||
if( SQL_SUCCEEDED( SQLAllocHandle( SQL_HANDLE_ENV, SQL_NULL_HANDLE, &hEnv ) ) )
|
||||
#else
|
||||
if( SQL_SUCCEEDED( SQLAllocEnv( &hEnv ) ) )
|
||||
#endif
|
||||
{
|
||||
#if ODBCVER >= 0x0300
|
||||
SQLSetEnvAttr( hEnv, SQL_ATTR_ODBC_VERSION, ( SQLPOINTER ) SQL_OV_ODBC3, SQL_IS_UINTEGER );
|
||||
#endif
|
||||
|
||||
#if ODBCVER >= 0x0300
|
||||
if( SQL_SUCCEEDED( SQLAllocHandle( SQL_HANDLE_DBC, hEnv, &hConnect ) ) )
|
||||
#else
|
||||
if( SQL_SUCCEEDED( SQLAllocConnect( hEnv, &hConnect ) ) )
|
||||
#endif
|
||||
{
|
||||
void * hConnStr;
|
||||
SQLTCHAR cBuffer[ 1024 ];
|
||||
@@ -243,7 +253,11 @@ static HB_ERRCODE odbcConnect( SQLDDCONNECTION * pConnection, PHB_ITEM pItem )
|
||||
hb_rddsqlSetError( errCode, szError, NULL, NULL, 0 );
|
||||
hb_xfree( szError );
|
||||
}
|
||||
#if ODBCVER >= 0x0300
|
||||
SQLFreeHandle( SQL_HANDLE_DBC, hConnect );
|
||||
#else
|
||||
SQLFreeConnect( hConnect );
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -251,7 +265,11 @@ static HB_ERRCODE odbcConnect( SQLDDCONNECTION * pConnection, PHB_ITEM pItem )
|
||||
hb_errRT_ODBCDD( EG_OPEN, ESQLDD_CONNALLOC, szError, hb_arrayGetCPtr( pItem, 2 ), errCode );
|
||||
hb_xfree( szError );
|
||||
}
|
||||
#if ODBCVER >= 0x0300
|
||||
SQLFreeHandle( SQL_HANDLE_ENV, hEnv );
|
||||
#else
|
||||
SQLFreeEnv( hEnv );
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -268,8 +286,13 @@ static HB_ERRCODE odbcDisconnect( SQLDDCONNECTION * pConnection )
|
||||
SDDCONN * pSDDConn = ( SDDCONN * ) pConnection->pSDDConn;
|
||||
|
||||
SQLDisconnect( pSDDConn->hConn );
|
||||
#if ODBCVER >= 0x0300
|
||||
SQLFreeHandle( SQL_HANDLE_DBC, pSDDConn->hConn );
|
||||
SQLFreeHandle( SQL_HANDLE_ENV, pSDDConn->hEnv );
|
||||
#else
|
||||
SQLFreeConnect( pSDDConn->hConn );
|
||||
SQLFreeEnv( pSDDConn->hEnv );
|
||||
#endif
|
||||
hb_xfree( pSDDConn );
|
||||
return HB_SUCCESS;
|
||||
}
|
||||
@@ -284,7 +307,11 @@ static HB_ERRCODE odbcExecute( SQLDDCONNECTION * pConnection, PHB_ITEM pItem )
|
||||
char * szError;
|
||||
HB_ERRCODE errCode;
|
||||
|
||||
#if ODBCVER >= 0x0300
|
||||
if( ! SQL_SUCCEEDED( SQLAllocHandle( SQL_HANDLE_STMT, pSDDConn->hConn, &hStmt ) ) )
|
||||
#else
|
||||
if( ! SQL_SUCCEEDED( SQLAllocStmt( pSDDConn->hConn, &hStmt ) ) )
|
||||
#endif
|
||||
{
|
||||
szError = odbcGetError( pSDDConn->hEnv, pSDDConn->hConn, SQL_NULL_HSTMT, &errCode );
|
||||
hb_errRT_ODBCDD( EG_OPEN, ESQLDD_STMTALLOC, szError, hb_itemGetCPtr( pItem ), errCode );
|
||||
@@ -302,7 +329,11 @@ static HB_ERRCODE odbcExecute( SQLDDCONNECTION * pConnection, PHB_ITEM pItem )
|
||||
{
|
||||
/* TODO: new id */
|
||||
hb_rddsqlSetError( 0, NULL, hb_itemGetCPtr( pItem ), NULL, ( unsigned long ) iCount );
|
||||
#if ODBCVER >= 0x0300
|
||||
SQLFreeHandle( SQL_HANDLE_STMT, hStmt );
|
||||
#else
|
||||
SQLFreeStmt( hStmt, SQL_DROP );
|
||||
#endif
|
||||
return HB_SUCCESS;
|
||||
}
|
||||
}
|
||||
@@ -312,7 +343,11 @@ static HB_ERRCODE odbcExecute( SQLDDCONNECTION * pConnection, PHB_ITEM pItem )
|
||||
szError = odbcGetError( pSDDConn->hEnv, pSDDConn->hConn, hStmt, &errCode );
|
||||
hb_rddsqlSetError( errCode, szError, hb_itemGetCPtr( pItem ), NULL, errCode );
|
||||
hb_xfree( szError );
|
||||
#if ODBCVER >= 0x0300
|
||||
SQLFreeHandle( SQL_HANDLE_STMT, hStmt );
|
||||
#else
|
||||
SQLFreeStmt( hStmt, SQL_DROP );
|
||||
#endif
|
||||
return HB_FAILURE;
|
||||
}
|
||||
|
||||
@@ -333,7 +368,11 @@ static HB_ERRCODE odbcOpen( SQLBASEAREAP pArea )
|
||||
pArea->pSDDData = memset( hb_xgrab( sizeof( SDDDATA ) ), 0, sizeof( SDDDATA ) );
|
||||
pSDDData = ( SDDDATA * ) pArea->pSDDData;
|
||||
|
||||
#if ODBCVER >= 0x0300
|
||||
if( ! SQL_SUCCEEDED( SQLAllocHandle( SQL_HANDLE_STMT, pSDDConn->hConn, &hStmt ) ) )
|
||||
#else
|
||||
if( ! SQL_SUCCEEDED( SQLAllocStmt( pSDDConn->hConn, &hStmt ) ) )
|
||||
#endif
|
||||
{
|
||||
szError = odbcGetError( pSDDConn->hEnv, pSDDConn->hConn, SQL_NULL_HSTMT, &errCode );
|
||||
hb_errRT_ODBCDD( EG_OPEN, ESQLDD_STMTALLOC, szError, pArea->szQuery, errCode );
|
||||
@@ -350,7 +389,11 @@ static HB_ERRCODE odbcOpen( SQLBASEAREAP pArea )
|
||||
hb_strfree( hQuery );
|
||||
hb_itemRelease( pItem );
|
||||
szError = odbcGetError( pSDDConn->hEnv, pSDDConn->hConn, hStmt, &errCode );
|
||||
#if ODBCVER >= 0x0300
|
||||
SQLFreeHandle( SQL_HANDLE_STMT, hStmt );
|
||||
#else
|
||||
SQLFreeStmt( hStmt, SQL_DROP );
|
||||
#endif
|
||||
hb_errRT_ODBCDD( EG_OPEN, ESQLDD_INVALIDQUERY, szError, pArea->szQuery, errCode );
|
||||
hb_xfree( szError );
|
||||
return HB_FAILURE;
|
||||
@@ -364,7 +407,11 @@ static HB_ERRCODE odbcOpen( SQLBASEAREAP pArea )
|
||||
if( ! SQL_SUCCEEDED( SQLNumResultCols( hStmt, &iNameLen ) ) )
|
||||
{
|
||||
szError = odbcGetError( pSDDConn->hEnv, pSDDConn->hConn, hStmt, &errCode );
|
||||
#if ODBCVER >= 0x0300
|
||||
SQLFreeHandle( SQL_HANDLE_STMT, hStmt );
|
||||
#else
|
||||
SQLFreeStmt( hStmt, SQL_DROP );
|
||||
#endif
|
||||
hb_errRT_ODBCDD( EG_OPEN, ESQLDD_STMTDESCR + 1000, szError, pArea->szQuery, errCode );
|
||||
hb_xfree( szError );
|
||||
return HB_FAILURE;
|
||||
@@ -395,7 +442,11 @@ static HB_ERRCODE odbcOpen( SQLBASEAREAP pArea )
|
||||
{
|
||||
hb_itemRelease( pItemEof );
|
||||
szError = odbcGetError( pSDDConn->hEnv, pSDDConn->hConn, hStmt, NULL );
|
||||
#if ODBCVER >= 0x0300
|
||||
SQLFreeHandle( SQL_HANDLE_STMT, hStmt );
|
||||
#else
|
||||
SQLFreeStmt( hStmt, SQL_DROP );
|
||||
#endif
|
||||
hb_errRT_ODBCDD( EG_OPEN, ESQLDD_STMTDESCR + 1001, szError, pArea->szQuery, 0 );
|
||||
hb_xfree( szError );
|
||||
return HB_FAILURE;
|
||||
@@ -461,18 +512,24 @@ static HB_ERRCODE odbcOpen( SQLBASEAREAP pArea )
|
||||
break;
|
||||
|
||||
case SQL_DATE:
|
||||
#if ODBCVER >= 0x0300
|
||||
case SQL_TYPE_DATE:
|
||||
#endif
|
||||
pFieldInfo.uiType = HB_FT_DATE;
|
||||
break;
|
||||
|
||||
case SQL_TIME:
|
||||
#if ODBCVER >= 0x0300
|
||||
case SQL_TYPE_TIME:
|
||||
#endif
|
||||
pFieldInfo.uiType = HB_FT_DATE;
|
||||
break;
|
||||
|
||||
/* SQL_DATETIME = SQL_DATE = 9 */
|
||||
case SQL_TIMESTAMP:
|
||||
#if ODBCVER >= 0x0300
|
||||
case SQL_TYPE_TIMESTAMP:
|
||||
#endif
|
||||
pFieldInfo.uiType = HB_FT_TIMESTAMP;
|
||||
break;
|
||||
|
||||
@@ -561,7 +618,11 @@ static HB_ERRCODE odbcOpen( SQLBASEAREAP pArea )
|
||||
if( bError )
|
||||
{
|
||||
hb_itemRelease( pItemEof );
|
||||
#if ODBCVER >= 0x0300
|
||||
SQLFreeHandle( SQL_HANDLE_STMT, hStmt );
|
||||
#else
|
||||
SQLFreeStmt( hStmt, SQL_DROP );
|
||||
#endif
|
||||
hb_errRT_ODBCDD( EG_CORRUPTION, ESQLDD_INVALIDFIELD, "Invalid field type", pArea->szQuery, errCode );
|
||||
return HB_FAILURE;
|
||||
}
|
||||
@@ -589,7 +650,11 @@ static HB_ERRCODE odbcClose( SQLBASEAREAP pArea )
|
||||
if( pSDDData )
|
||||
{
|
||||
if( pSDDData->hStmt )
|
||||
#if ODBCVER >= 0x0300
|
||||
SQLFreeHandle( SQL_HANDLE_STMT, pSDDData->hStmt );
|
||||
#else
|
||||
SQLFreeStmt( pSDDData->hStmt, SQL_DROP );
|
||||
#endif
|
||||
|
||||
hb_xfree( pSDDData );
|
||||
pArea->pSDDData = NULL;
|
||||
@@ -656,21 +721,20 @@ static HB_ERRCODE odbcGoTo( SQLBASEAREAP pArea, HB_ULONG ulRecNo )
|
||||
}
|
||||
|
||||
case HB_FT_INTEGER:
|
||||
#if ODBCVER >= 0x0300
|
||||
if( pField->uiTypeExtended == ( HB_USHORT ) SQL_BIGINT )
|
||||
{
|
||||
HB_I64 val = 0;
|
||||
/* NOTE: SQL_C_SBIGINT not available before ODBC 3.0 */
|
||||
if( SQL_SUCCEEDED( res = SQLGetData( hStmt, ui, SQL_C_SBIGINT, &val, sizeof( val ), &iLen ) ) )
|
||||
{
|
||||
pItem = hb_itemPutNIntLen( NULL, val, pField->uiLen );
|
||||
}
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
long int val = 0;
|
||||
if( SQL_SUCCEEDED( res = SQLGetData( hStmt, ui, SQL_C_LONG, &val, sizeof( val ), &iLen ) ) )
|
||||
{
|
||||
pItem = hb_itemPutNLLen( NULL, val, pField->uiLen );
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -679,17 +743,13 @@ static HB_ERRCODE odbcGoTo( SQLBASEAREAP pArea, HB_ULONG ulRecNo )
|
||||
{
|
||||
long int val = 0;
|
||||
if( SQL_SUCCEEDED( res = SQLGetData( hStmt, ui, SQL_C_LONG, &val, sizeof( val ), &iLen ) ) )
|
||||
{
|
||||
pItem = hb_itemPutNLLen( NULL, val, pField->uiLen );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
double val = 0.0;
|
||||
if( SQL_SUCCEEDED( res = SQLGetData( hStmt, ui, SQL_C_DOUBLE, &val, sizeof( val ), &iLen ) ) )
|
||||
{
|
||||
pItem = hb_itemPutNDLen( NULL, val, pField->uiLen, pField->uiDec );
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -697,9 +757,7 @@ static HB_ERRCODE odbcGoTo( SQLBASEAREAP pArea, HB_ULONG ulRecNo )
|
||||
{
|
||||
double val = 0.0;
|
||||
if( SQL_SUCCEEDED( res = SQLGetData( hStmt, ui, SQL_C_DOUBLE, &val, sizeof( val ), &iLen ) ) )
|
||||
{
|
||||
pItem = hb_itemPutNDLen( NULL, val, pField->uiLen, pField->uiDec );
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -707,9 +765,7 @@ static HB_ERRCODE odbcGoTo( SQLBASEAREAP pArea, HB_ULONG ulRecNo )
|
||||
{
|
||||
unsigned char val = 0;
|
||||
if( SQL_SUCCEEDED( res = SQLGetData( hStmt, ui, SQL_C_BIT, &val, sizeof( val ), &iLen ) ) )
|
||||
{
|
||||
pItem = hb_itemPutL( NULL, val != 0 );
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -717,9 +773,7 @@ static HB_ERRCODE odbcGoTo( SQLBASEAREAP pArea, HB_ULONG ulRecNo )
|
||||
{
|
||||
DATE_STRUCT val = { 0, 0, 0 };
|
||||
if( SQL_SUCCEEDED( res = SQLGetData( hStmt, ui, SQL_C_DATE, &val, sizeof( val ), &iLen ) ) )
|
||||
{
|
||||
pItem = hb_itemPutD( NULL, val.year, val.month, val.day );
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -727,9 +781,7 @@ static HB_ERRCODE odbcGoTo( SQLBASEAREAP pArea, HB_ULONG ulRecNo )
|
||||
{
|
||||
TIME_STRUCT val = { 0, 0, 0 };
|
||||
if( SQL_SUCCEEDED( res = SQLGetData( hStmt, ui, SQL_C_TIME, &val, sizeof( val ), &iLen ) ) )
|
||||
{
|
||||
pItem = hb_itemPutTDT( NULL, 0, hb_timeEncode( val.hour, val.minute, val.second, 0 ) );
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -737,10 +789,8 @@ static HB_ERRCODE odbcGoTo( SQLBASEAREAP pArea, HB_ULONG ulRecNo )
|
||||
{
|
||||
TIMESTAMP_STRUCT val = { 0, 0, 0, 0, 0, 0, 0 };
|
||||
if( SQL_SUCCEEDED( res = SQLGetData( hStmt, ui, SQL_C_TIMESTAMP, &val, sizeof( val ), &iLen ) ) )
|
||||
{
|
||||
pItem = hb_itemPutTDT( NULL, hb_dateEncode( val.year, val.month, val.day ),
|
||||
hb_timeEncode( val.hour, val.minute, val.second, val.fraction / 1000000 ) );
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
/*
|
||||
* Harbour Project source code:
|
||||
* HTML.CH Main HTML include File Definition of all html lib commands
|
||||
* Main HTML include File Definition of all html lib commands
|
||||
*
|
||||
* Copyright 2000 Manos Aspradakis <maspr@otenet.gr>
|
||||
* www - http://harbour-project.org
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
|
||||
/*
|
||||
* Harbour Project source code:
|
||||
* FORMS.CH Include file to create forms
|
||||
* Include file to create forms
|
||||
*
|
||||
* Copyright 2000 Manos Aspradakis <maspr@otenet.gr>
|
||||
* www - http://harbour-project.org
|
||||
|
||||
@@ -554,7 +554,7 @@ read the source code :-).
|
||||
//-------------------------------------------------
|
||||
//
|
||||
// GTWVT compatibility functions.
|
||||
// See WVT2WVW.CH about how to map coresponding
|
||||
// See wvt2wvw.ch about how to map coresponding
|
||||
// GTWVT functions to GTWVW's ones.
|
||||
//
|
||||
//-------------------------------------------------
|
||||
@@ -798,7 +798,7 @@ WIN_DRAWTEXT ([<vlist>])
|
||||
//
|
||||
// CALLBACK FUNCTIONS
|
||||
// (functions in .prg, called by gtwvw)
|
||||
// See WVT2WVW.CH about how to map coresponding
|
||||
// See wvt2wvw.ch about how to map coresponding
|
||||
// GTWVT functions to GTWVW's ones.
|
||||
//
|
||||
//-------------------------------------------------
|
||||
|
||||
@@ -333,13 +333,13 @@ as similar as possible in structure. Although it is not a correct perpective
|
||||
a GTWVT application can be thought of as a GTWVW application with one window
|
||||
(ie. the Main window). With this perspective, one may expect to compile
|
||||
and link his GTWVT program using GTWVW. And yes, to some extent that is possible.
|
||||
One of the simplest way is to include a function translator (WVT2WVW.CH) that
|
||||
One of the simplest way is to include a function translator (wvt2wvw.ch) that
|
||||
will translate GTWVT functions into GTWVW ones, assuming Current Window is
|
||||
used in all WVW_* functions. (Details of translation is described in WVT2WVW.CH).
|
||||
used in all WVW_* functions. (Details of translation is described in wvt2wvw.ch).
|
||||
|
||||
Notes:
|
||||
If one uses wvtclass functions, he must recompile/link wvtclass.prg and wvtpaint.prg,
|
||||
after adding '#include "WVT2WVW.CH"', using GTWVW.
|
||||
after adding '#include "wvt2wvw.ch"', using GTWVW.
|
||||
|
||||
Notes:
|
||||
There is no guarantee that GTWVW will always be compatible with GTWVT.
|
||||
|
||||
@@ -104,9 +104,9 @@
|
||||
* HB_FUNC( WVW_DRAWIMAGE )
|
||||
Added lTransp optional parameter.
|
||||
Supports displaying images with proportional height/width ratio.
|
||||
+ .PRG callable wvw_SetMaxBMcache()
|
||||
+ .prg callable wvw_SetMaxBMcache()
|
||||
This is to get/set maximum number of bitmap cache for WVW_DRAWIMAGE.
|
||||
+ .PRG callable wvw_NumBMcache()
|
||||
+ .prg callable wvw_NumBMcache()
|
||||
This is to get current number of bitmap cached by WVW_DRAWIMAGE.
|
||||
* contrib/gtwvw/doc/whatsnew.txt
|
||||
* notes about this change.
|
||||
@@ -400,7 +400,7 @@ MISCELLANEOUS
|
||||
* WVW_ID_BASE_PUSHBUTTON is now 64000 (was 65000).
|
||||
It means we may not have Menu Id >= 64000 now.
|
||||
|
||||
New .PRG callable Functions: (combobox functions):
|
||||
New .prg callable Functions: (combobox functions):
|
||||
+ WVW_CBcreate( [nWinNum], nTop, nLeft, nWidth, aText, bBlock, nListLines, ;
|
||||
nReserved, nKbdType, aOffset)
|
||||
+ WVW_CBdestroy( [nWinNum], nCBid )
|
||||
@@ -628,7 +628,7 @@ You can now create pushbutton very easily. Simply define where do you
|
||||
want it to sit, and what action do you want it to do when it's clicked
|
||||
by means of a codeblock.
|
||||
|
||||
In previous version, we had to use WVWMOUSE.PRG to simulate pushbuttons
|
||||
In previous version, we had to use wvwmouse.prg to simulate pushbuttons
|
||||
using wvw_DrawBoxRaised(). We also had to handle 'OnMouseHover', 'OnMouseOut',
|
||||
'OnPressed', etc, to simulate the pressed/released state of the button.
|
||||
By using native push buttons, we don't have to worry about all that anymore.
|
||||
@@ -689,7 +689,7 @@ by WVW_INPUTFOCUS().
|
||||
If no WVW_INPUTFOCUS() exists, or if it returns .f., GTWVW will do
|
||||
the usual response: asterisk sound and flashing window.
|
||||
|
||||
See INPFOCUS.PRG sample program demonstrating this feature.
|
||||
See inpfocus.prg sample program demonstrating this feature.
|
||||
|
||||
|
||||
/*-------------------------------------------------------------------*/
|
||||
@@ -830,7 +830,7 @@ WVW_Draw* functions.
|
||||
window.
|
||||
* Some castings and optimizations.
|
||||
* Some changes in some EXPORTed C functions.
|
||||
(All .PRG / HB_FUNC functions are not affected)
|
||||
(All .prg / HB_FUNC functions are not affected)
|
||||
* aOffset parameter to more primitive GUI drawing functions
|
||||
(following the changes on GTWVT by Pritpal Bedi)
|
||||
|
||||
@@ -843,13 +843,13 @@ WVW_Draw* functions.
|
||||
* Some changes to Tooltip functions
|
||||
(adopted from Pritpal Bedi's work on GTWVT)
|
||||
|
||||
+ New .PRG / HB_FUNC functions: (adopted from Pritpal Bedi's on GTWVT)
|
||||
+ New .prg / HB_FUNC functions: (adopted from Pritpal Bedi's on GTWVT)
|
||||
+ HB_FUNC( WVW_UPDATEWINDOW )
|
||||
+ HB_FUNC( WVW_DRAWCOLORRECT ) (similar to WVW_FillRectangle)
|
||||
+ DlgModeless functions
|
||||
+ many WIN_* functions, general window API wrapper functions
|
||||
|
||||
- Removed .PRG / HB_FUNC functions:
|
||||
- Removed .prg / HB_FUNC functions:
|
||||
- WVW_DeleteObject()
|
||||
(following GTWVT. Use WIN_DeleteObject() instead)
|
||||
|
||||
|
||||
@@ -5337,7 +5337,7 @@ static VOID CALLBACK hb_gt_wvwFlashWindow( HWND hwnd, UINT uMsg, UINT_PTR idEven
|
||||
static void hb_gt_wvwInputNotAllowed( UINT usWinNum, UINT message, WPARAM wParam, LPARAM lParam )
|
||||
{
|
||||
|
||||
/* user may handle this event and returns .t. from .PRG level
|
||||
/* user may handle this event and returns .T. from .prg level
|
||||
using function WVW_INPUTFOCUS()
|
||||
*/
|
||||
if( s_pWvwData->s_sApp->pSymWVW_INPUTFOCUS )
|
||||
|
||||
@@ -884,7 +884,7 @@ STATIC FUNCTION GetNumMask( Text, mcvaltype )
|
||||
|
||||
RETURN s
|
||||
|
||||
// from TGET.PRG
|
||||
// from tget.prg
|
||||
|
||||
STATIC FUNCTION IsBadDate( cBuffer ) // , cPicFunc )
|
||||
|
||||
|
||||
@@ -90,7 +90,7 @@ PROCEDURE xGet1()
|
||||
|
||||
RETURN // xGet1()
|
||||
|
||||
/* the following is adapted from WVTGUI.PRG by Pritpal Bedi
|
||||
/* the following is adapted from wvtgui.prg by Pritpal Bedi
|
||||
for illustration purposes only */
|
||||
|
||||
FUNCTION xBrowse1()
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
/*
|
||||
Copyright 2004 Budyanto Dj. <budyanto@centrin.net.id>
|
||||
|
||||
This is PROG0.PRG modified in a quick and dirty fashion to convert
|
||||
pseudo-windows in PROG0.PRG into real windows of GTWVW.
|
||||
This is prog0.prg modified in a quick and dirty fashion to convert
|
||||
pseudo-windows in prog0.prg into real windows of GTWVW.
|
||||
|
||||
This quick and dirty approach is making use of GTWVW's MainCoord Mode.
|
||||
Instead of specifying to which window we are writing output, we simply
|
||||
@@ -108,7 +108,7 @@ PROCEDURE xGet1()
|
||||
|
||||
RETURN // xGet1()
|
||||
|
||||
/* the following is adapted from WVTGUI.PRG by Pritpal Bedi
|
||||
/* the following is adapted from wvtgui.prg by Pritpal Bedi
|
||||
for illustration purposes only */
|
||||
|
||||
FUNCTION xBrowse1()
|
||||
|
||||
@@ -128,7 +128,7 @@ PROCEDURE xGet1()
|
||||
|
||||
RETURN // xGet1()
|
||||
|
||||
/* the following is adapted from WVTGUI.PRG by Pritpal Bedi
|
||||
/* the following is adapted from wvtgui.prg by Pritpal Bedi
|
||||
for illustration purposes only */
|
||||
|
||||
FUNCTION xBrowse1()
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
// Budyanto Dj. <budyanto@centrin.net.id>
|
||||
// based on:
|
||||
//
|
||||
// WVTGUI.PRG,
|
||||
// wvtgui.prg,
|
||||
// GTWVT Console GUI Interface
|
||||
// by Pritpal Bedi <pritpal@vouchcac.com>
|
||||
//
|
||||
@@ -114,14 +114,8 @@
|
||||
|
||||
#define IDTRYAGAIN 10
|
||||
|
||||
#define WVW_MAXWINDOWS 20 // ! must match with HBGTWVW.H
|
||||
#define WVW_DEFAULT_MENUKEYEVENT 1024 // ! must match with HBGTWVW.H
|
||||
|
||||
// 20040303: !!! copied from WVWMOUSE.PRG pls create an include file
|
||||
// mouse object types //20040303
|
||||
#define _MOBJECT_BUTTON 0 // mouse button
|
||||
#define _MOBJECT_HSCROLL 1 // horiz scrollbar //obsolete, not used
|
||||
#define _MOBJECT_VSCROLL 2 // horiz scrollbar //obsolete, not used
|
||||
#define WVW_MAXWINDOWS 20 // ! must match with hbgtwvw.h
|
||||
#define WVW_DEFAULT_MENUKEYEVENT 1024 // ! must match with hbgtwvw.h
|
||||
|
||||
// for Button Types: //20040303
|
||||
#define _BUTTON_NORMAL 0 // normal button
|
||||
|
||||
@@ -76,7 +76,7 @@ FUNCTION AChoice( nTop, nLeft, nBottom, nRight, acItems, xSelect, xUserFunc, nPo
|
||||
ColorSelect( CLR_STANDARD )
|
||||
|
||||
/* NOTE: Undocumented parameter passing handled. ACHOICE()
|
||||
is called in such way in RLDIALG.PRG from RL tool
|
||||
is called in such way in rldialg.prg from RL tool
|
||||
supplied with Clipper 5.x. 6th parameter is the
|
||||
user function and 7th parameter is zero (empty I
|
||||
suppose). [vszakats] */
|
||||
|
||||
@@ -893,7 +893,7 @@ HB_THREAD_NO hb_threadNO( void )
|
||||
}
|
||||
|
||||
/*
|
||||
* .PRG level functions
|
||||
* .prg level functions
|
||||
*/
|
||||
|
||||
/* I. THREADS */
|
||||
|
||||
@@ -24,7 +24,6 @@ body { color: #000000; background-color: #FFFFFF; }
|
||||
<BODY bgColor=#ffffff>
|
||||
<PRE><CODE><SPAN style="FONT: 10pt Courier New"><SPAN class=any1-comment>/*
|
||||
*
|
||||
* TestCGI.PRG
|
||||
* Harbour Test of a CGI/HTML-Generator class.
|
||||
*
|
||||
* 1999/05/30 First implementation.
|
||||
|
||||
@@ -24,7 +24,6 @@ body { color: #000000; background-color: #FFFFFF; }
|
||||
<BODY bgColor=#ffffff>
|
||||
<PRE><CODE><SPAN style="FONT: 10pt Courier New"><SPAN class=any1-comment>/*
|
||||
*
|
||||
* TestHTML.PRG
|
||||
* Harbour Test of a HTML-Generator class.
|
||||
*
|
||||
* 1999/05/30 First implementation.
|
||||
|
||||
@@ -302,7 +302,7 @@ Harbour supports Vista Software's legendary, award-winning Apollo data engin
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td width="88%"><a href="http://sistemascvc.tripod.com/id10.html" class="texto_subtitulo">Clip2win<br />
|
||||
</a>Clip2win 3.9 is a tool to convert your old DOS programs for Windows so easy. Adding only one line in .PRG of your project and you get a program similar to Windows with menus, controls TextBox, Buttons and other characteristics of the environment. <br />
|
||||
</a>Clip2win 3.9 is a tool to convert your old MS-DOS programs for Windows so easy. Adding only one line in .prg of your project and you get a program similar to Windows with menus, controls TextBox, Buttons and other characteristics of the environment. <br />
|
||||
<br />
|
||||
Clip2win<span style="mso-spacerun:yes"> is </span>a
|
||||
simple way to pass clipper to windows based on Harbour & ooHG.<br />
|
||||
|
||||
Reference in New Issue
Block a user