CH Files

  Previous topic Next topic JavaScript is required for the print function Mail us feedback on this topic! Mail us feedback on this topic!  
GET ; CHECKBOX ; [VALID ] ; [WHEN ] ; [CAPTION
c:\harbour\include
c:\harbour\include\achoice.ch
/*
 * $Id: achoice.ch 3961 2001-04-27 19:03:46Z dholm $
 */

/*
 * Harbour Project source code:
 * Header file for ACHOICE() function
 *
 * Copyright 1999 {list of individual authors and e-mail addresses}
 * www - http://www.harbour-project.org
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this software; see the file COPYING.  If not, write to
 * the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
 * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
 *
 * As a special exception, the Harbour Project gives permission for
 * additional uses of the text contained in its release of Harbour.
 *
 * The exception is that, if you link the Harbour libraries with other
 * files to produce an executable, this does not by itself cause the
 * resulting executable to be covered by the GNU General Public License.
 * Your use of that executable is in no way restricted on account of
 * linking the Harbour library code into it.
 *
 * This exception does not however invalidate any other reasons why
 * the executable file might be covered by the GNU General Public License.
 *
 * This exception applies only to the code released by the Harbour
 * Project under the name Harbour.  If you copy code from other
 * Harbour Project or Free Software Foundation releases into a copy of
 * Harbour, as the General Public License permits, the exception does
 * not apply to the code that you add in this way.  To avoid misleading
 * anyone as to the status of such modified files, you must delete
 * this exception notice from them.
 *
 * If you write modifications of your own for Harbour, it is your choice
 * whether to permit this exception to apply to your modifications.
 * If you do not wish that, delete this exception notice.
 *
 */

#ifndef _ACHOICE_CH
#define _ACHOICE_CH

/* User callback status codes */
#define AC_IDLE         0       /* Idle                                        */
#define AC_HITTOP       1       /* Attempt to move above the first item        */
#define AC_HITBOTTOM    2       /* Attempt to move below the last item         */
#define AC_EXCEPT       3       /* Keystroke exception                         */
#define AC_NOITEM       4       /* There's no selectable item                  */

/* User callback return codes */
#define AC_ABORT        0       /* Abort ACHOICE() and return zero             */
#define AC_SELECT       1       /* Select current item and return it's index   */
#define AC_CONT         2       /* Continue ACHOICE()                          */
#define AC_GOTO         3       /* Search first chars for the last pressed key */
#define AC_REDRAW       4       /* Redraw ACHOICE()                            */

#endif /* _ACHOICE_CH */
c:\harbour\include\assert.ch
/*
 * $Id: assert.ch 9191 2008-08-19 13:11:22Z vszakats $
 */

/*
 * Harbour Project source code:
 * Header file assertion macros
 *
 * Copyright 1999 {list of individual authors and e-mail addresses}
 * www - http://www.harbour-project.org
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this software; see the file COPYING.  If not, write to
 * the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
 * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
 *
 * As a special exception, the Harbour Project gives permission for
 * additional uses of the text contained in its release of Harbour.
 *
 * The exception is that, if you link the Harbour libraries with other
 * files to produce an executable, this does not by itself cause the
 * resulting executable to be covered by the GNU General Public License.
 * Your use of that executable is in no way restricted on account of
 * linking the Harbour library code into it.
 *
 * This exception does not however invalidate any other reasons why
 * the executable file might be covered by the GNU General Public License.
 *
 * This exception applies only to the code released by the Harbour
 * Project under the name Harbour.  If you copy code from other
 * Harbour Project or Free Software Foundation releases into a copy of
 * Harbour, as the General Public License permits, the exception does
 * not apply to the code that you add in this way.  To avoid misleading
 * anyone as to the status of such modified files, you must delete
 * this exception notice from them.
 *
 * If you write modifications of your own for Harbour, it is your choice
 * whether to permit this exception to apply to your modifications.
 * If you do not wish that, delete this exception notice.
 *
 */

#ifndef HB_ASSERT_CH_
#define HB_ASSERT_CH_
#define _ASSERT_DEFINED /* NOTE: For complete CA-Cl*pper compatibility */

#ifdef NDEBUG

/* When NDEBUG is definded, ignore all ASSERT() calls */
#command ASSERT(  [, ] )      =>

#else

#command ASSERT(  [, ] )      =>                              ;
         IF !(  )                                                  ;
       ;    OutStd(                                                     ;
                    hb_OSNewLine() + ProcName( 0 ) +                    ;
                    "(" + LTrim( Str( ProcLine() ) ) + ")" +            ;
                    "  Assertion failed: " +                            ;
                    iif( <.msg.>, , <"exp"> )                      ;
                  )                                                     ;
       ;    QUIT                                                        ;
       ; ENDIF

#endif /* NDEBUG */

#endif /* HB_ASSERT_CH_ */

c:\harbour\include\blob.ch
/*
 * $Id: blob.ch 6667 2006-04-15 18:51:38Z druzus $
 */

/*
 * Harbour Project source code:
 * Header file for the RDD API Index OrderInfo and DBInfo support
 *
 * Copyright 2004 {list of individual authors and e-mail addresses}
 * www - http://www.xharbour.org
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this software; see the file COPYING.  If not, write to
 * the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
 * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
 *
 * As a special exception, the Harbour Project gives permission for
 * additional uses of the text contained in its release of Harbour.
 *
 * The exception is that, if you link the Harbour libraries with other
 * files to produce an executable, this does not by itself cause the
 * resulting executable to be covered by the GNU General Public License.
 * Your use of that executable is in no way restricted on account of
 * linking the Harbour library code into it.
 *
 * This exception does not however invalidate any other reasons why
 * the executable file might be covered by the GNU General Public License.
 *
 * This exception applies only to the code released by the Harbour
 * Project under the name Harbour.  If you copy code from other
 * Harbour Project or Free Software Foundation releases into a copy of
 * Harbour, as the General Public License permits, the exception does
 * not apply to the code that you add in this way.  To avoid misleading
 * anyone as to the status of such modified files, you must delete
 * this exception notice from them.
 *
 * If you write modifications of your own for Harbour, it is your choice
 * whether to permit this exception to apply to your modifications.
 * If you do not wish that, delete this exception notice.
 *
 */

#ifndef HB_BLOB_CH_
#define HB_BLOB_CH_


#ifndef HB_DBINFO_CH
  #include "dbinfo.ch"
#endif

#xtranslate BLOBRootLock()          => dbInfo( DBI_BLOB_ROOT_LOCK )
#xtranslate BLOBRootUnlock()        => dbInfo( DBI_BLOB_ROOT_UNLOCK )
#xtranslate BLOBRootGet()           => dbInfo( DBI_BLOB_ROOT_GET )
#xtranslate BLOBRootPut(  )  => dbInfo( DBI_BLOB_ROOT_PUT,  )
#xtranslate BLOBRootDelete()        => BLOBRootPut( "" )

#xtranslate BLOBDirectExport( ,  [, ] )   => ;
            dbInfo( DBI_BLOB_DIRECT_EXPORT, { , , ;
                    iif( <.kMode.>, , BLOB_EXPORT_OVERWRITE ) } )
#xtranslate BLOBDirectGet(  [,  [,  ]] )      => ;
            dbInfo( DBI_BLOB_DIRECT_GET, { , ,  } )
#xtranslate BLOBDirectImport( ,  )            => ;
            dbInfo( DBI_BLOB_DIRECT_IMPORT, { ,  } )
#xtranslate BLOBDirectPut( [],  )                   => ;
            dbInfo( DBI_BLOB_DIRECT_PUT, { ,  } )
#xtranslate BLOBGet(  [,  [, ]] )             => ;
            dbFieldInfo( DBS_BLOB_GET, , { ,  } )
#xtranslate BLOBExport( , ,  )            => ;
            dbFileGet( , ,  )
#xtranslate BLOBImport( ,  )                     => ;
            dbFilePut( ,  )

#endif  /* HB_BLOB_CH_ */
c:\harbour\include\box.ch
/*
 * $Id: box.ch 7155 2007-04-14 10:41:54Z vszakats $
 */

/*
 * Harbour Project source code:
 * Header file for box drawing
 *
 * Copyright 1999 {list of individual authors and e-mail addresses}
 * www - http://www.harbour-project.org
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this software; see the file COPYING.  If not, write to
 * the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
 * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
 *
 * As a special exception, the Harbour Project gives permission for
 * additional uses of the text contained in its release of Harbour.
 *
 * The exception is that, if you link the Harbour libraries with other
 * files to produce an executable, this does not by itself cause the
 * resulting executable to be covered by the GNU General Public License.
 * Your use of that executable is in no way restricted on account of
 * linking the Harbour library code into it.
 *
 * This exception does not however invalidate any other reasons why
 * the executable file might be covered by the GNU General Public License.
 *
 * This exception applies only to the code released by the Harbour
 * Project under the name Harbour.  If you copy code from other
 * Harbour Project or Free Software Foundation releases into a copy of
 * Harbour, as the General Public License permits, the exception does
 * not apply to the code that you add in this way.  To avoid misleading
 * anyone as to the status of such modified files, you must delete
 * this exception notice from them.
 *
 * If you write modifications of your own for Harbour, it is your choice
 * whether to permit this exception to apply to your modifications.
 * If you do not wish that, delete this exception notice.
 *
 */

#ifndef _BOX_CH
#define _BOX_CH

/* #defines for DISPBOX() */

/* Single-line */
#define B_SINGLE        ( Chr( 218 ) + Chr( 196 ) + Chr( 191 ) + Chr( 179 ) + ;
                          Chr( 217 ) + Chr( 196 ) + Chr( 192 ) + Chr( 179 ) )

/* Double-line */
#define B_DOUBLE        ( Chr( 201 ) + Chr( 205 ) + Chr( 187 ) + Chr( 186 ) + ;
                          Chr( 188 ) + Chr( 205 ) + Chr( 200 ) + Chr( 186 ) )

/* Single-line top, double-line sides */
#define B_SINGLE_DOUBLE ( Chr( 214 ) + Chr( 196 ) + Chr( 183 ) + Chr( 186 ) + ;
                          Chr( 189 ) + Chr( 196 ) + Chr( 211 ) + Chr( 186 ) )

/* Double-line top, single-line sides */
#define B_DOUBLE_SINGLE ( Chr( 213 ) + Chr( 205 ) + Chr( 184 ) + Chr( 179 ) + ;
                          Chr( 190 ) + Chr( 205 ) + Chr( 212 ) + Chr( 179 ) )

#ifdef HB_COMPAT_XPP

#define B_THIN          ( Chr( 219 ) + Chr( 223 ) + Chr( 219 ) + Chr( 219 ) + ;
                          Chr( 219 ) + Chr( 220 ) + Chr( 219 ) + Chr( 219 ) )

#define B_FAT           ( Chr( 219 ) + Chr( 219 ) + Chr( 219 ) + Chr( 219 ) + ;
                          Chr( 219 ) + Chr( 219 ) + Chr( 219 ) + Chr( 219 ) )

#endif

#endif /* _BOX_CH */
c:\harbour\include\button.ch
/*
 * $Id: button.ch 9191 2008-08-19 13:11:22Z vszakats $
 */

/*
 * Harbour Project source code:
 * Header file for menu classes and related functions
 *
 * Copyright 1999 {list of individual authors and e-mail addresses}
 * www - http://www.harbour-project.org
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this software; see the file COPYING.  If not, write to
 * the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
 * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
 *
 * As a special exception, the Harbour Project gives permission for
 * additional uses of the text contained in its release of Harbour.
 *
 * The exception is that, if you link the Harbour libraries with other
 * files to produce an executable, this does not by itself cause the
 * resulting executable to be covered by the GNU General Public License.
 * Your use of that executable is in no way restricted on account of
 * linking the Harbour library code into it.
 *
 * This exception does not however invalidate any other reasons why
 * the executable file might be covered by the GNU General Public License.
 *
 * This exception applies only to the code released by the Harbour
 * Project under the name Harbour.  If you copy code from other
 * Harbour Project or Free Software Foundation releases into a copy of
 * Harbour, as the General Public License permits, the exception does
 * not apply to the code that you add in this way.  To avoid misleading
 * anyone as to the status of such modified files, you must delete
 * this exception notice from them.
 *
 * If you write modifications of your own for Harbour, it is your choice
 * whether to permit this exception to apply to your modifications.
 * If you do not wish that, delete this exception notice.
 *
 */

#ifndef HB_BUTTON_CH_
#define HB_BUTTON_CH_
#define _BUTTON_DEFINED /* NOTE: For complete CA-Cl*pper compatibility */

/* orientation modes for scrollbar class */
#define SCROLL_VERTICAL          1
#define SCROLL_HORIZONTAL        2

/* menu separators strings */
#define MENU_SEPARATOR           Chr( 196 )
#define SEPARATOR_DOUBLE         ( Chr( 204 ) + Chr( 205 ) + Chr( 185 ) )      /* double line left and right and double separator for popup menu */
#define SEPARATOR_SINGLE         ( Chr( 195 ) + MENU_SEPARATOR + Chr( 180 ) )  /* single separator for popup menu */
#define SEPARATOR_DOUBLE_SINGLE  ( Chr( 199 ) + MENU_SEPARATOR + Chr( 182 ) )  /* double line left and right and single separator for popup menu */

/* return values for HitTest methods */
#define HTNOWHERE                0

#define HTTOPLEFT                -1
#define HTTOP                    -2
#define HTTOPRIGHT               -3
#define HTRIGHT                  -4
#define HTBOTTOMRIGHT            -5
#define HTBOTTOM                 -6
#define HTBOTTOMLEFT             -7
#define HTLEFT                   -8

#define HTBORDERFIRST            -8
#define HTBORDERLAST             -1

#define HTCAPTION                -1025

#define HTCLIENT                 -2049

#define HTSCROLLTHUMBDRAG        -3073
#define HTSCROLLUNITDEC          -3074
#define HTSCROLLUNITINC          -3075
#define HTSCROLLBLOCKDEC         -3076
#define HTSCROLLBLOCKINC         -3077

#define HTSCROLLFIRST            -3077
#define HTSCROLLLAST             -3073

#define HTDROPBUTTON             -4097
#define HTSEPARATOR              -4098

#define HTCELL                   -5121
#define HTHEADING                -5122
#define HTFOOTING                -5123
#define HTHEADSEP                -5124
#define HTFOOTSEP                -5125
#define HTCOLSEP                 -5126

#define HTMENU                   -6145
#define HTSIZE                   -6146
#define HTMINBUTTON              -6147
#define HTMAXBUTTON              -6148
#define HTGROWBOX                HTSIZE
#define HTREDUCE                 HTMINBUTTON
#define HTZOOM                   HTMAXBUTTON

#endif /* HB_BUTTON_CH_ */
c:\harbour\include\color.ch
/*
 * $Id: color.ch 3961 2001-04-27 19:03:46Z dholm $
 */

/*
 * Harbour Project source code:
 * Header file for COLORSELECT() function
 *
 * Copyright 1999 {list of individual authors and e-mail addresses}
 * www - http://www.harbour-project.org
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this software; see the file COPYING.  If not, write to
 * the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
 * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
 *
 * As a special exception, the Harbour Project gives permission for
 * additional uses of the text contained in its release of Harbour.
 *
 * The exception is that, if you link the Harbour libraries with other
 * files to produce an executable, this does not by itself cause the
 * resulting executable to be covered by the GNU General Public License.
 * Your use of that executable is in no way restricted on account of
 * linking the Harbour library code into it.
 *
 * This exception does not however invalidate any other reasons why
 * the executable file might be covered by the GNU General Public License.
 *
 * This exception applies only to the code released by the Harbour
 * Project under the name Harbour.  If you copy code from other
 * Harbour Project or Free Software Foundation releases into a copy of
 * Harbour, as the General Public License permits, the exception does
 * not apply to the code that you add in this way.  To avoid misleading
 * anyone as to the status of such modified files, you must delete
 * this exception notice from them.
 *
 * If you write modifications of your own for Harbour, it is your choice
 * whether to permit this exception to apply to your modifications.
 * If you do not wish that, delete this exception notice.
 *
 */

#ifndef _COLOR_CH
#define _COLOR_CH

/* attributes for color strings */
#define CLR_STANDARD    0
#define CLR_ENHANCED    1
#define CLR_BORDER      2
#define CLR_BACKGROUND  3
#define CLR_UNSELECTED  4

#endif /* _COLOR_CH */
c:\harbour\include\common.ch
/*
 * $Id: common.ch 9394 2008-09-14 18:19:09Z vszakats $
 */

/*
 * Harbour Project source code:
 * Header file for common macros
 *
 * Copyright 1999 {list of individual authors and e-mail addresses}
 * www - http://www.harbour-project.org
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this software; see the file COPYING.  If not, write to
 * the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
 * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
 *
 * As a special exception, the Harbour Project gives permission for
 * additional uses of the text contained in its release of Harbour.
 *
 * The exception is that, if you link the Harbour libraries with other
 * files to produce an executable, this does not by itself cause the
 * resulting executable to be covered by the GNU General Public License.
 * Your use of that executable is in no way restricted on account of
 * linking the Harbour library code into it.
 *
 * This exception does not however invalidate any other reasons why
 * the executable file might be covered by the GNU General Public License.
 *
 * This exception applies only to the code released by the Harbour
 * Project under the name Harbour.  If you copy code from other
 * Harbour Project or Free Software Foundation releases into a copy of
 * Harbour, as the General Public License permits, the exception does
 * not apply to the code that you add in this way.  To avoid misleading
 * anyone as to the status of such modified files, you must delete
 * this exception notice from them.
 *
 * If you write modifications of your own for Harbour, it is your choice
 * whether to permit this exception to apply to your modifications.
 * If you do not wish that, delete this exception notice.
 *
 */

#ifndef HB_COMMON_CH_
#define HB_COMMON_CH_

/* Friendly logical aliases */
#define TRUE                    .T.
#define FALSE                   .F.
#define YES                     .T.
#define NO                      .F.

/* Type checking macros */
#translate ISNIL(  )       => (  == NIL )
#translate ISARRAY(  )     => hb_IsArray(  )
#translate ISBLOCK(  )     => hb_IsBlock(  )
#translate ISCHARACTER(  ) => hb_IsString(  )
#translate ISDATE(  )      => hb_IsDate(  )
#translate ISLOGICAL(  )   => hb_IsLogical(  )
#translate ISMEMO(  )      => hb_IsMemo(  )
#translate ISNUMBER(  )    => hb_IsNumeric(  )
#translate ISOBJECT(  )    => hb_IsObject(  )

/* DEFAULT and UPDATE commands */
#xcommand DEFAULT  TO  [,  TO  ] => ;
                                IF  == NIL ;  :=  ; END ;
                                [; IF  == NIL ;  :=  ; END ]

#command UPDATE  IF  TO  => ;
                                IF  ;  :=  ; END

/* To suppress unused variable -w2 warnings. The code snippet will be 
   optimized out by the compiler, so it won't cause any overhead. 
   It can be used in codeblocks, too. */
/* Please keep it synced with the similar #define in hbclass.ch */
#define HB_SYMBOL_UNUSED( symbol )  ( ( symbol ) )

/* HASH autoadd options */
#define HB_HAUTOADD_NEVER       0x00
#define HB_HAUTOADD_ACCESS      0x01
#define HB_HAUTOADD_ASSIGN      0x02
#define HB_HAUTOADD_ALWAYS      ( HB_HAUTOADD_ACCESS + HB_HAUTOADD_ASSIGN )
#define HB_HAUTOADD_REFERENCE   HB_HAUTOADD_ALWAYS

#endif /* HB_COMMON_CH_ */
c:\harbour\include\dbedit.ch
/*
 * $Id: dbedit.ch 8975 2008-07-11 15:33:41Z druzus $
 */

/*
 * Harbour Project source code:
 * Header file for DBEDIT() function
 *
 * Copyright 1999 {list of individual authors and e-mail addresses}
 * www - http://www.harbour-project.org
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this software; see the file COPYING.  If not, write to
 * the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
 * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
 *
 * As a special exception, the Harbour Project gives permission for
 * additional uses of the text contained in its release of Harbour.
 *
 * The exception is that, if you link the Harbour libraries with other
 * files to produce an executable, this does not by itself cause the
 * resulting executable to be covered by the GNU General Public License.
 * Your use of that executable is in no way restricted on account of
 * linking the Harbour library code into it.
 *
 * This exception does not however invalidate any other reasons why
 * the executable file might be covered by the GNU General Public License.
 *
 * This exception applies only to the code released by the Harbour
 * Project under the name Harbour.  If you copy code from other
 * Harbour Project or Free Software Foundation releases into a copy of
 * Harbour, as the General Public License permits, the exception does
 * not apply to the code that you add in this way.  To avoid misleading
 * anyone as to the status of such modified files, you must delete
 * this exception notice from them.
 *
 * If you write modifications of your own for Harbour, it is your choice
 * whether to permit this exception to apply to your modifications.
 * If you do not wish that, delete this exception notice.
 *
 */

#ifndef _DBEDIT_CH
#define _DBEDIT_CH

/* User function entry modes */
#define DE_IDLE         0       /* Idle                                    */
#define DE_HITTOP       1       /* Attempt to cursor past top of file      */
#define DE_HITBOTTOM    2       /* Attempt to cursor past bottom of file   */
#define DE_EMPTY        3       /* No records in work area                 */
#define DE_EXCEPT       4       /* Key exception                           */

/* User function return codes */
#define DE_ABORT        0       /* Abort DBEDIT()                          */
#define DE_CONT         1       /* Continue DBEDIT()                       */
#define DE_REFRESH      2       /* Force reread/redisplay of all data rows */
#ifdef HB_C52_UNDOC
   #define DE_APPEND       3       /* Undocumented CA-Cl*pper append mode in DBEdit */
#endif

#endif /* _DBEDIT_CH */
c:\harbour\include\dbinfo.ch
/*
 * $Id: dbinfo.ch 9203 2008-08-21 09:12:17Z vszakats $
 */

/*
 * Harbour Project source code:
 * Header file for the RDD API Index OrderInfo and DBInfo support
 *
 * Copyright 2000 {list of individual authors and e-mail addresses}
 * www - http://www.harbour-project.org
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this software; see the file COPYING.  If not, write to
 * the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
 * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
 *
 * As a special exception, the Harbour Project gives permission for
 * additional uses of the text contained in its release of Harbour.
 *
 * The exception is that, if you link the Harbour libraries with other
 * files to produce an executable, this does not by itself cause the
 * resulting executable to be covered by the GNU General Public License.
 * Your use of that executable is in no way restricted on account of
 * linking the Harbour library code into it.
 *
 * This exception does not however invalidate any other reasons why
 * the executable file might be covered by the GNU General Public License.
 *
 * This exception applies only to the code released by the Harbour
 * Project under the name Harbour.  If you copy code from other
 * Harbour Project or Free Software Foundation releases into a copy of
 * Harbour, as the General Public License permits, the exception does
 * not apply to the code that you add in this way.  To avoid misleading
 * anyone as to the status of such modified files, you must delete
 * this exception notice from them.
 *
 * If you write modifications of your own for Harbour, it is your choice
 * whether to permit this exception to apply to your modifications.
 * If you do not wish that, delete this exception notice.
 *
 */

/* NOTE: This file is also used by C code. */

#ifndef HB_DBINFO_CH_
#define HB_DBINFO_CH_

/*
   Constants for SELF_RDDINFO ()
*/

#define RDDI_ISDBF                1    /* Does this RDD support DBFs? */
#define RDDI_CANPUTREC            2    /* Can this RDD Put Records? */
#define RDDI_DELIMITER            3    /* The field delimiter (as a string) */
#define RDDI_SEPARATOR            4    /* The record separator (as a string) */

#define RDDI_TABLEEXT             5    /* Default data file's file extension */
#define RDDI_MEMOEXT              6    /* Default memo file's file extension */
#define RDDI_ORDBAGEXT            7    /* Default multi tag index's file extension */
#define RDDI_ORDEREXT             8    /* default single tag index's file extension */
#define RDDI_ORDSTRUCTEXT         9    /* default single tag index's file extension */

#define RDDI_LOCAL                10   /* Local file access? */
#define RDDI_REMOTE               11   /* Remote table access? */
#define RDDI_CONNECTION           12   /* Get/Set default connection */
#define RDDI_TABLETYPE            13   /* Type of table file */
#define RDDI_MEMOTYPE             14   /* Type of MEMO file DB_MEMO_*: DBT, SMT, FPT(FP,SIX3,FLEXIII) */
#define RDDI_LARGEFILE            15   /* Is large file size (>=4GB) supported */
#define RDDI_LOCKSCHEME           16   /* Locking scheme used by RDD */
#define RDDI_RECORDMAP            17   /* Does RDD support record map functionality? */
#define RDDI_ENCRYPTION           18   /* Does RDD support encryption */
#define RDDI_TRIGGER              19   /* Get/Set default trigger function */
#define RDDI_AUTOLOCK             20   /* automatic locking on update */

/* index parameters */
#define RDDI_STRUCTORD            21   /* Are structural indexes supported */
#define RDDI_STRICTREAD           22   /* Flag for avoiding RDD hierarchy and using a bigger buffer when indexing */
#define RDDI_STRICTSTRUCT         23   /* Flag for strict structural order checking */
#define RDDI_OPTIMIZE             24   /* Flag for whether to use query optimization */
#define RDDI_FORCEOPT             25   /* Flag for forcing linear optimization */
#define RDDI_AUTOOPEN             26   /* Flag for automatically opening structural indexes */
#define RDDI_AUTOORDER            27   /* When a structural index is opened, the order to be set */
#define RDDI_AUTOSHARE            28   /* When a network is detected, open the index shared, otherwise open exclusively */
#define RDDI_MULTITAG             29   /* Does RDD support multi tag in index file */
#define RDDI_SORTRECNO            30   /* Is record number part of key in sorting */
#define RDDI_MULTIKEY             31   /* Does custom orders support repeated keys? */

/* memo parameters */
#define RDDI_MEMOBLOCKSIZE        32   /* Memo File's block size */
#define RDDI_MEMOVERSION          33   /* sub version of memo file */
#define RDDI_MEMOGCTYPE           34   /* type of garbage collector used by GC */
#define RDDI_MEMOREADLOCK         35   /* use read lock in memo file access */
#define RDDI_MEMOREUSE            36   /* reuse free space on write */
#define RDDI_BLOB_SUPPORT         37   /* can support BLOB files directly */

/* misc */
#define RDDI_PENDINGTRIGGER       40   /* set pending trigger for next open operation */
#define RDDI_PENDINGPASSWORD      41   /* set pending password for next open operation */
#define RDDI_PASSWORD             42   /* Get/Set default password */
#define RDDI_LOCKRETRY            43   /* Get/Set record and file lock timeout value */
#define RDDI_DIRTYREAD            44   /* Get/Set index dirty read flag */

/*
   Constants for SELF_ORDINFO ()
*/

#define DBOI_CONDITION            1    /* The order's conditional expression     */
#define DBOI_EXPRESSION           2    /* The order's key expression             */
#define DBOI_POSITION             3    /* The current key position in scope and filter  */
#define DBOI_RECNO                4    /* The current key position disregarding filters */
#define DBOI_NAME                 5    /* The name of the order                      */
#define DBOI_NUMBER               6    /* The numeric position in the list of orders */
#define DBOI_BAGNAME              7    /* The name of the file containing this order     */
#define DBOI_BAGEXT               8    /* The extension of the file containing this order */
#define DBOI_INDEXEXT             DBOI_BAGEXT
#define DBOI_INDEXNAME            DBOI_BAGNAME
#define DBOI_ORDERCOUNT           9    /* The count of ORDERS contained in an index file or in total */
#define DBOI_FILEHANDLE           10   /* The OS file handle of the index     */
#define DBOI_ISCOND               11   /* Does the order have a FOR condition? */
#define DBOI_ISDESC               12   /* Is the order DESCENDing? */
#define DBOI_UNIQUE               13   /* Does the order have the UNIQUE attribute? */

/* 53-level constants */
#define DBOI_FULLPATH             20  /* The full path to the index file (Bag) */
#define DBOI_KEYTYPE              24  /* The type of the order's key           */
#define DBOI_KEYSIZE              25  /* The length of the order's key         */
#define DBOI_KEYCOUNT             26  /* The count of keys in scope and filter */
#define DBOI_SETCODEBLOCK         27  /* The codeblock that produces the key   */
#define DBOI_KEYDEC               28  /* The # of decimals in a numeric key    */
#define DBOI_HPLOCKING            29  /* Using High Performance locking for this order?  */
#define DBOI_LOCKOFFSET           35  /* The offset used for logical locking             */

#define DBOI_KEYADD               36  /* Custom Index: Was Key added successfully?       */
#define DBOI_KEYDELETE            37  /* Custom Index: Was Key Deletion successful?      */
#define DBOI_KEYVAL               38  /* The value of the current key      */
#define DBOI_SCOPETOP             39  /* Get or Set the scope top          */
#define DBOI_SCOPEBOTTOM          40  /* Get or Set the scope botto        */
#define DBOI_SCOPETOPCLEAR        41  /* Clear the scope top               */
#define DBOI_SCOPEBOTTOMCLEAR     42  /* Clear the scope bottom            */
#define DBOI_CUSTOM               45  /* Is this a Custom Index?           */
#define DBOI_SKIPUNIQUE           46  /* Was a skip to adjacent unique Key successful?   */

#define DBOI_KEYSINCLUDED         50  /* Number of keys in the index order */
/* key numbers and counts */
#define DBOI_KEYGOTO              DBOI_POSITION
#define DBOI_KEYGOTORAW           DBOI_KEYNORAW
#define DBOI_KEYNO                DBOI_POSITION
#define DBOI_KEYNORAW             51  /* The key number disregarding filters  */
#define DBOI_KEYCOUNTRAW          52  /* The key count disregarding filter    */

/* Query Optimization */
#define DBOI_OPTLEVEL             53  /* Optimization level for current query */

/* These shouldn't need an open table */
#define DBOI_STRICTREAD           60  /* Flag for avoiding RDD hierarchy and using a bigger buffer when indexing  */
#define DBOI_OPTIMIZE             61  /* Flag for whether to use query optimization             */
#define DBOI_AUTOOPEN             62  /* Flag for automatically opening structural indexes      */
#define DBOI_AUTOORDER            63  /* When a structural index is opened, the order to be set */
#define DBOI_AUTOSHARE            64  /* When a network is detected, open the index shared, otherwise open exclusively   */

/* xHarbour extensions */
#define DBOI_SKIPEVAL            100  /* skip while code block doesn't return TRUE */
#define DBOI_SKIPEVALBACK        101  /* skip backward while code block doesn't return TRUE */
#define DBOI_SKIPREGEX           102  /* skip while regular expression on index key doesn't return TRUE */
#define DBOI_SKIPREGEXBACK       103  /* skip backward while regular expression on index key doesn't return TRUE */
#define DBOI_SKIPWILD            104  /* skip while while comparison with given pattern with wildcards doesn't return TRUE */
#define DBOI_SKIPWILDBACK        105  /* skip backward while comparison with given pattern with wildcards doesn't return TRUE */
#define DBOI_SCOPEEVAL           106  /* skip through index evaluating given C function */
#define DBOI_FINDREC             107  /* find given record in a Tag beginning from TOP */
#define DBOI_FINDRECCONT         108  /* find given record in a Tag beginning from current position */
#define DBOI_SCOPESET            109  /* set both scopes */
#define DBOI_SCOPECLEAR          110  /* clear both scopes */

#define DBOI_BAGCOUNT            111  /* number of open order bags */
#define DBOI_BAGNUMBER           112  /* bag position in bag list */
#define DBOI_BAGORDER            113  /* number of first order in a bag */

#define DBOI_ISMULTITAG          114  /* does RDD support multi tag in index file */
#define DBOI_ISSORTRECNO         115  /* is record number part of key in sorting */
#define DBOI_LARGEFILE           116  /* is large file size (>=4GB) supported */
#define DBOI_TEMPLATE            117  /* order with free user keys */
#define DBOI_MULTIKEY            118  /* custom order with multikeys */
#define DBOI_CHGONLY             119  /* update only existing keys */
#define DBOI_PARTIAL             120  /* is index partially updated */
#define DBOI_SHARED              121  /* is index open in shared mode */
#define DBOI_ISREADONLY          122  /* is index open in readonly mode */
#define DBOI_READLOCK            123  /* get/set index read lock */
#define DBOI_WRITELOCK           124  /* get/set index write lock */
#define DBOI_UPDATECOUNTER       125  /* get/set update index counter */

#define DBOI_EVALSTEP            126  /* eval step (EVERY) used in index command */
#define DBOI_ISREINDEX           127  /* Is reindex in process */
#define DBOI_I_BAGNAME           128  /* created index name */
#define DBOI_I_TAGNAME           129  /* created tag name */

#define DBOI_RELKEYPOS           130  /* get/set relative key position (in range 0 - 1) */
#define DBOI_USECURRENT          131  /* get/set "use current index" flag */
#define DBOI_INDEXTYPE           132  /* current index type */

/* return values for DBOI_OPTLEVEL */
#define DBOI_OPTIMIZED_NONE      0
#define DBOI_OPTIMIZED_PART      1
#define DBOI_OPTIMIZED_FULL      2

/* return values for DBOI_INDEXTYPE */
#define DBOI_TYPE_UNDEF         -1
#define DBOI_TYPE_NONE           0
#define DBOI_TYPE_NONCOMPACT     1
#define DBOI_TYPE_COMPACT        2
#define DBOI_TYPE_COMPOUND       3

/* constants for DBOI_SCOPEEVAL array parameter */
#define DBRMI_FUNCTION  1
#define DBRMI_PARAM     2
#define DBRMI_LOVAL     3
#define DBRMI_HIVAL     4
#define DBRMI_RESULT    5
#define DBRMI_SIZE      5

/* constants for SELF_RECINFO() */
#define DBRI_DELETED              1
#define DBRI_LOCKED               2
#define DBRI_RECSIZE              3
#define DBRI_RECNO                4
#define DBRI_UPDATED              5
#define DBRI_ENCRYPTED            6
#define DBRI_RAWRECORD            7
#define DBRI_RAWMEMOS             8
#define DBRI_RAWDATA              9

/* constants for dbInfo()  */
#define DBI_ISDBF                 1  /* Does this RDD support DBFs? */
#define DBI_CANPUTREC             2  /* Can this RDD Put Records?   */
#define DBI_GETHEADERSIZE         3  /* Data file's header size     */
#define DBI_LASTUPDATE            4  /* The last date this file was written to  */
#define DBI_GETDELIMITER          5  /* The delimiter (as a string)         */
#define DBI_SETDELIMITER          6  /* The delimiter (as a string)         */
#define DBI_GETRECSIZE            7  /* The size of 1 record in the file    */
#define DBI_GETLOCKARRAY          8  /* An array of locked records' numbers */
#define DBI_TABLEEXT              9  /* The data file's file extension      */
#define DBI_FULLPATH             10  /* The Full path to the data file      */

#define DBI_ISFLOCK              20  /* Is there a file lock active?        */
#define DBI_CHILDCOUNT           22  /* Number of child relations set       */
#define DBI_FILEHANDLE           23  /* The data file's OS file handle      */
#define DBI_BOF                  26  /* Same as bof()    */
#define DBI_EOF                  27  /* Same as eof()    */
#define DBI_DBFILTER             28  /* Current Filter setting              */
#define DBI_FOUND                29  /* Same as found()  */
#define DBI_FCOUNT               30  /* How many fields in a record?        */
#define DBI_LOCKCOUNT            31  /* Number of record locks              */
#define DBI_VALIDBUFFER          32  /* Is the record buffer valid?         */
#define DBI_ALIAS                33  /* Name (alias) for this workarea      */
#define DBI_GETSCOPE             34  /* The codeblock used in LOCATE        */
#define DBI_LOCKOFFSET           35  /* The offset used for logical locking */
#define DBI_SHARED               36  /* Was the file opened shared?         */
#define DBI_MEMOEXT              37  /* The memo file's file extension      */
#define DBI_MEMOHANDLE           38  /* File handle of the memo file        */
#define DBI_MEMOBLOCKSIZE        39  /* Memo File's block size              */

#define DBI_DB_VERSION          101  /* Version of the Host driver          */
#define DBI_RDD_VERSION         102  /* current RDD's version               */

/* HARBOUR extension */
#define DBI_LOCKSCHEME          128  /* Locking scheme used by RDD */
#define DBI_ISREADONLY          129  /* Was the file opened readonly? */
#define DBI_ROLLBACK            130  /* Rollback changes made to current record */
#define DBI_PASSWORD            131  /* Workarea password */
#define DBI_ISENCRYPTED         132  /* The database is encrypted */
#define DBI_MEMOTYPE            133  /* Type of MEMO file: DBT, SMT, FPT */
#define DBI_SEPARATOR           134  /* The record separator (as a string) */
#define DBI_MEMOVERSION         135  /* sub version of memo file */
#define DBI_TABLETYPE           136  /* Type of table file */
#define DBI_SCOPEDRELATION      137  /* Is given relation scoped */
#define DBI_TRIGGER             138  /* Get/Set trigger function */
#define DBI_OPENINFO            139  /* DBOPENINFO structure pointer */
#define DBI_ENCRYPT             140  /* Encrypt table */
#define DBI_DECRYPT             141  /* Decrypt table */
#define DBI_MEMOPACK            142  /* Pack memo file */
#define DBI_DIRTYREAD           143  /* Get/Set index dirty read flag */
#define DBI_POSITIONED          144  /* Is cursor positioned to valid record */

/* RECORD MAP (RM) support */
#define DBI_RM_SUPPORTED        150  /* has WA RDD record map support? */
#define DBI_RM_CREATE           151  /* create new empty work area record map */
#define DBI_RM_REMOVE           152  /* remove active work area record map */
#define DBI_RM_CLEAR            153  /* remove all records from WA record map */
#define DBI_RM_FILL             154  /* add all records to WA record map */
#define DBI_RM_ADD              155  /* add record to work area record map */
#define DBI_RM_DROP             156  /* remove record from work area record map */
#define DBI_RM_TEST             157  /* test if record is set in WA record map */
#define DBI_RM_COUNT            158  /* number of records set in record map */
#define DBI_RM_HANDLE           159  /* get/set record map filter handle */

/* BLOB support - definitions for internal use by blob.ch */
#define DBI_BLOB_DIRECT_EXPORT  201
#define DBI_BLOB_DIRECT_GET     202
#define DBI_BLOB_DIRECT_IMPORT  203
#define DBI_BLOB_DIRECT_PUT     204
#define DBI_BLOB_ROOT_GET       205
#define DBI_BLOB_ROOT_PUT       206
#define DBI_BLOB_ROOT_LOCK      207
#define DBI_BLOB_ROOT_UNLOCK    208

/* CA-Cl*pper documented for public use */
#define DBI_BLOB_DIRECT_LEN     209
#define DBI_BLOB_DIRECT_TYPE    210
#define DBI_BLOB_INTEGRITY      211
#define DBI_BLOB_OFFSET         212
#define DBI_BLOB_RECOVER        213

#define DBI_USER               1000  /* User-defined DBI_ constants */

/* extended dbFieldInfo() actions */
#define DBS_BLOB_GET            201  /* This is internal definition */
#define DBS_BLOB_LEN            202
#define DBS_BLOB_OFFSET         203
#define DBS_BLOB_POINTER        204
#define DBS_BLOB_TYPE           205

#define BLOB_EXPORT_APPEND      1
#define BLOB_EXPORT_OVERWRITE   0

#define BLOB_IMPORT_COMPRESS    1
#define BLOB_IMPORT_ENCRYPT     2

#define FILEGET_APPEND          BLOB_EXPORT_APPEND
#define FILEGET_OVERWRITE       BLOB_EXPORT_OVERWRITE

#define FILEPUT_COMPRESS        BLOB_IMPORT_COMPRESS
#define FILEPUT_ENCRYPT         BLOB_IMPORT_ENCRYPT

/* DBF TYPES */
#define DB_DBF_STD            1
#define DB_DBF_VFP            2

/* MEMO TYPES */
#define DB_MEMO_NONE          0
#define DB_MEMO_DBT           1
#define DB_MEMO_FPT           2
#define DB_MEMO_SMT           3

/* MEMO EXTENDED TYPES */
#define DB_MEMOVER_STD        1
#define DB_MEMOVER_SIX        2
#define DB_MEMOVER_FLEX       3
#define DB_MEMOVER_CLIP       4

/* ENCRYPTION TYPE */
#define DB_CRYPT_NONE         0
#define DB_CRYPT_SIX          1

/* LOCK SCHEMES */
#define DB_DBFLOCK_DEFAULT    0
#define DB_DBFLOCK_CLIP       1
#define DB_DBFLOCK_CL53       2
#define DB_DBFLOCK_VFP        3
#define DB_DBFLOCK_CL53EXT    4
#define DB_DBFLOCK_XHB64      5


#endif /* HB_DBINFO_CH_ */
c:\harbour\include\dbstruct.ch
/*
 * $Id: dbstruct.ch 9203 2008-08-21 09:12:17Z vszakats $
 */

/*
 * Harbour Project source code:
 * Header file for DBSTRUCT() function.
 *
 * Copyright 1999 {list of individual authors and e-mail addresses}
 * www - http://www.harbour-project.org
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this software; see the file COPYING.  If not, write to
 * the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
 * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
 *
 * As a special exception, the Harbour Project gives permission for
 * additional uses of the text contained in its release of Harbour.
 *
 * The exception is that, if you link the Harbour libraries with other
 * files to produce an executable, this does not by itself cause the
 * resulting executable to be covered by the GNU General Public License.
 * Your use of that executable is in no way restricted on account of
 * linking the Harbour library code into it.
 *
 * This exception does not however invalidate any other reasons why
 * the executable file might be covered by the GNU General Public License.
 *
 * This exception applies only to the code released by the Harbour
 * Project under the name Harbour.  If you copy code from other
 * Harbour Project or Free Software Foundation releases into a copy of
 * Harbour, as the General Public License permits, the exception does
 * not apply to the code that you add in this way.  To avoid misleading
 * anyone as to the status of such modified files, you must delete
 * this exception notice from them.
 *
 * If you write modifications of your own for Harbour, it is your choice
 * whether to permit this exception to apply to your modifications.
 * If you do not wish that, delete this exception notice.
 *
 */

/* NOTE: This file is also used by C code. */

#ifndef _DBSTRUCT_CH
#define _DBSTRUCT_CH

/* Positions for field structure array */
#define DBS_NAME        1
#define DBS_TYPE        2
#define DBS_LEN         3
#define DBS_DEC         4
/*
#define DBS_FLAG        5
*/

/* Length of the field structure array */
#define DBS_ALEN        4

#endif /* _DBSTRUCT_CH */
c:\harbour\include\directry.ch
/*
 * $Id: directry.ch 3961 2001-04-27 19:03:46Z dholm $
 */

/*
 * Harbour Project source code:
 * Header file for DIRECTORY() function
 *
 * Copyright 1999 {list of individual authors and e-mail addresses}
 * www - http://www.harbour-project.org
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this software; see the file COPYING.  If not, write to
 * the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
 * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
 *
 * As a special exception, the Harbour Project gives permission for
 * additional uses of the text contained in its release of Harbour.
 *
 * The exception is that, if you link the Harbour libraries with other
 * files to produce an executable, this does not by itself cause the
 * resulting executable to be covered by the GNU General Public License.
 * Your use of that executable is in no way restricted on account of
 * linking the Harbour library code into it.
 *
 * This exception does not however invalidate any other reasons why
 * the executable file might be covered by the GNU General Public License.
 *
 * This exception applies only to the code released by the Harbour
 * Project under the name Harbour.  If you copy code from other
 * Harbour Project or Free Software Foundation releases into a copy of
 * Harbour, as the General Public License permits, the exception does
 * not apply to the code that you add in this way.  To avoid misleading
 * anyone as to the status of such modified files, you must delete
 * this exception notice from them.
 *
 * If you write modifications of your own for Harbour, it is your choice
 * whether to permit this exception to apply to your modifications.
 * If you do not wish that, delete this exception notice.
 *
 */

/* NOTE: This file is also used by C code. */

#ifndef _DIRECTRY_CH
#define _DIRECTRY_CH

/* Positions for DIRECTORY() array */
#define F_NAME          1       /* File name */
#define F_SIZE          2       /* File size */
#define F_DATE          3       /* File date (write) */
#define F_TIME          4       /* File time (write) */
#define F_ATTR          5       /* File attribute */

/* Length of DIRECTORY() array */
#define F_LEN           5

#endif /* _DIRECTRY_CH */
c:\harbour\include\error.ch
/*
 * $Id: error.ch 7029 2007-03-09 03:44:42Z druzus $
 */

/*
 * Harbour Project source code:
 * Header file for error hanlding
 *
 * Copyright 1999 {list of individual authors and e-mail addresses}
 * www - http://www.harbour-project.org
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this software; see the file COPYING.  If not, write to
 * the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
 * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
 *
 * As a special exception, the Harbour Project gives permission for
 * additional uses of the text contained in its release of Harbour.
 *
 * The exception is that, if you link the Harbour libraries with other
 * files to produce an executable, this does not by itself cause the
 * resulting executable to be covered by the GNU General Public License.
 * Your use of that executable is in no way restricted on account of
 * linking the Harbour library code into it.
 *
 * This exception does not however invalidate any other reasons why
 * the executable file might be covered by the GNU General Public License.
 *
 * This exception applies only to the code released by the Harbour
 * Project under the name Harbour.  If you copy code from other
 * Harbour Project or Free Software Foundation releases into a copy of
 * Harbour, as the General Public License permits, the exception does
 * not apply to the code that you add in this way.  To avoid misleading
 * anyone as to the status of such modified files, you must delete
 * this exception notice from them.
 *
 * If you write modifications of your own for Harbour, it is your choice
 * whether to permit this exception to apply to your modifications.
 * If you do not wish that, delete this exception notice.
 *
 */

/* NOTE: This file is also used by C code. */

#ifndef _ERROR_CH
#define _ERROR_CH

/* Severity levels (oError:severity) */
#define ES_WHOCARES     0
#define ES_WARNING      1
#define ES_ERROR        2
#define ES_CATASTROPHIC 3

/* Generic error codes (oError:genCode) */
#define EG_ARG          1
#define EG_BOUND        2
#define EG_STROVERFLOW  3
#define EG_NUMOVERFLOW  4
#define EG_ZERODIV      5
#define EG_NUMERR       6
#define EG_SYNTAX       7
#define EG_COMPLEXITY   8

#define EG_MEM          11
#define EG_NOFUNC       12
#define EG_NOMETHOD     13
#define EG_NOVAR        14
#define EG_NOALIAS      15
#define EG_NOVARMETHOD  16
#define EG_BADALIAS     17
#define EG_DUPALIAS     18

#define EG_CREATE       20
#define EG_OPEN         21
#define EG_CLOSE        22
#define EG_READ         23
#define EG_WRITE        24
#define EG_PRINT        25

#define EG_UNSUPPORTED  30
#define EG_LIMIT        31
#define EG_CORRUPTION   32
#define EG_DATATYPE     33
#define EG_DATAWIDTH    34
#define EG_NOTABLE      35
#define EG_NOORDER      36
#define EG_SHARED       37
#define EG_UNLOCKED     38
#define EG_READONLY     39

#define EG_APPENDLOCK   40
#define EG_LOCK         41

#define EG_DESTRUCTOR   45      /* Harbour special */
#define EG_ARRACCESS    46      /* Harbour special */
#define EG_ARRASSIGN    47      /* Harbour special */
#define EG_ARRDIMENSION 48      /* Harbour special */
#define EG_NOTARRAY     49      /* Harbour special */
#define EG_CONDITION    50      /* Harbour special */

/* Internal errors */
#define HB_EI_ERRUNRECOV        9000 /* "Unrecoverable error %lu: " */
#define HB_EI_ERRRECFAILURE     9001 /* "Error recovery failure" */
#define HB_EI_ERRNOBLOCK        9002 /* "No ERRORBLOCK() for error" */
#define HB_EI_ERRTOOMANY        9003 /* "Too many recursive error handler calls" */
#define HB_EI_RDDINVALID        9004 /* "RDD invalid or failed to load" */
#define HB_EI_CLSINVMETHOD      9005 /* "Invalid method type from %s" */
#define HB_EI_XGRABALLOC        9006 /* "hb_xgrab can't allocate memory" */
#define HB_EI_XREALLOCNULL      9007 /* "hb_xrealloc called with a NULL pointer" */
#define HB_EI_XREALLOCINV       9008 /* "hb_xrealloc called with an invalid pointer" */
#define HB_EI_XREALLOC          9009 /* "hb_xrealloc can't reallocate memory" */
#define HB_EI_XFREEINV          9010 /* "hb_xfree called with an invalid pointer" */
#define HB_EI_XFREENULL         9011 /* "hb_xfree called with a NULL pointer" */
#define HB_EI_VMBADSTARTUP      9012 /* "Can\'t locate the starting procedure: \'%s\'" */
#define HB_EI_VMNOSTARTUP       9013 /* "No starting procedure" */
#define HB_EI_VMBADOPCODE       9014 /* "Unsupported VM opcode" */
#define HB_EI_VMNOTSYMBOL       9015 /* "Symbol item expected from %s" */
#define HB_EI_VMINVSYMBOL       9016 /* "Invalid symbol type for self from %s" */
#define HB_EI_VMNOTCBLOCK       9017 /* "Codeblock expected from %s" */
#define HB_EI_VMPOPINVITEM      9018 /* "Incorrect item type on the stack trying to pop from %s" */
#define HB_EI_STACKUFLOW        9019 /* "Stack underflow" */
#define HB_EI_ITEMBADCOPY       9020 /* "An item was going to be copied to itself from %s" */
#define HB_EI_MVBADSYMBOL       9021 /* "Invalid symbol item passed as memvar %s" */
#define HB_EI_XMEMOVERFLOW      9022 /* "Memory buffer overflow" */
#define HB_EI_XGRABNULLSIZE     9023 /* "hb_xgrab requested to allocate zero byte" */
#define HB_EI_XREALLOCNULLSIZE  9024 /* "hb_xrealloc requested to resize to zero byte" */
#define HB_EI_XALLOCNULLSIZE    9025 /* "hb_xalloc requested to allocate zero byte" */

#define HB_EI_COMPBADOPCODE     9100 /* "Unsupported VM opcode" */
#define HB_EI_COMPBADOPSIZE     9101 /* "Invalid opcode size" */

#endif /* _ERROR_CH */
c:\harbour\include\fileio.ch
/*
 * $Id: fileio.ch 5632 2002-08-27 20:13:38Z horacioroldan $
 */

/*
 * Harbour Project source code:
 * Header file for file management functions
 *
 * Copyright 1999 David G. Holm 
 * www - http://www.harbour-project.org
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this software; see the file COPYING.  If not, write to
 * the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
 * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
 *
 * As a special exception, the Harbour Project gives permission for
 * additional uses of the text contained in its release of Harbour.
 *
 * The exception is that, if you link the Harbour libraries with other
 * files to produce an executable, this does not by itself cause the
 * resulting executable to be covered by the GNU General Public License.
 * Your use of that executable is in no way restricted on account of
 * linking the Harbour library code into it.
 *
 * This exception does not however invalidate any other reasons why
 * the executable file might be covered by the GNU General Public License.
 *
 * This exception applies only to the code released by the Harbour
 * Project under the name Harbour.  If you copy code from other
 * Harbour Project or Free Software Foundation releases into a copy of
 * Harbour, as the General Public License permits, the exception does
 * not apply to the code that you add in this way.  To avoid misleading
 * anyone as to the status of such modified files, you must delete
 * this exception notice from them.
 *
 * If you write modifications of your own for Harbour, it is your choice
 * whether to permit this exception to apply to your modifications.
 * If you do not wish that, delete this exception notice.
 *
 */

/* NOTE: This file is also used by C code. */

#ifndef _FILEIO_CH
#define _FILEIO_CH

/* File create flags */
#define FC_NORMAL     0        /* No file attributes are set      */
#define FC_READONLY   1        /* Read-only file attribute is set */
#define FC_HIDDEN     2        /* Hidden file attribute is set    */
#define FC_SYSTEM     4        /* System file attribute is set    */

/* File access flags */
#define FO_READ       0        /* File is opened for reading             */
#define FO_WRITE      1        /* File is opened for writing             */
#define FO_READWRITE  2        /* File is opened for reading and writing */

/* File open flags */
#define FO_CREAT     0x0100  /* create and open file */
#define FO_TRUNC     0x0200  /* open with truncation */
#define FO_EXCL      0x0400  /* create and open only if file doesn't exist */

/* File sharing flags */
#define FO_COMPAT     0        /* No sharing specified                               */
#define FO_EXCLUSIVE  16       /* Deny further attempts to open the file             */
#define FO_DENYWRITE  32       /* Deny further attempts to open the file for writing */
#define FO_DENYREAD   48       /* Deny further attempts to open the file for reading */
#define FO_DENYNONE   64       /* Do not deny any further attempts to open the file  */
#define FO_SHARED     FO_DENYNONE

/* File seek mode flags */
#define FS_SET        0        /* Seek from beginning of file    */
#define FS_RELATIVE   1        /* Seek from current file poitner */
#define FS_END        2        /* Seek from end of file          */

/* File mode flags */
#define FD_BINARY     1        /* Binary mode (raw)  */
#define FD_RAW        FD_BINARY
#define FD_TEXT       2        /* Text mode (cooked) */
#define FD_COOKED     FD_TEXT
#define FD_ASCII      FD_TEXT

/* File system error codes */
#define F_ERROR       ( -1 )   /* Unspecified error */

/* HB_DISKSPACE() types */
#define HB_DISK_AVAIL 0
#define HB_DISK_FREE  1
#define HB_DISK_USED  2
#define HB_DISK_TOTAL 3

#endif /* _FILEIO_CH */

c:\harbour\include\getexit.ch
/*
 * $Id: getexit.ch 8037 2007-11-23 20:14:30Z druzus $
 */

/*
 * Harbour Project source code:
 * Header file for the Get system
 *
 * Copyright 1999 {list of individual authors and e-mail addresses}
 * www - http://www.harbour-project.org
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this software; see the file COPYING.  If not, write to
 * the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
 * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
 *
 * As a special exception, the Harbour Project gives permission for
 * additional uses of the text contained in its release of Harbour.
 *
 * The exception is that, if you link the Harbour libraries with other
 * files to produce an executable, this does not by itself cause the
 * resulting executable to be covered by the GNU General Public License.
 * Your use of that executable is in no way restricted on account of
 * linking the Harbour library code into it.
 *
 * This exception does not however invalidate any other reasons why
 * the executable file might be covered by the GNU General Public License.
 *
 * This exception applies only to the code released by the Harbour
 * Project under the name Harbour.  If you copy code from other
 * Harbour Project or Free Software Foundation releases into a copy of
 * Harbour, as the General Public License permits, the exception does
 * not apply to the code that you add in this way.  To avoid misleading
 * anyone as to the status of such modified files, you must delete
 * this exception notice from them.
 *
 * If you write modifications of your own for Harbour, it is your choice
 * whether to permit this exception to apply to your modifications.
 * If you do not wish that, delete this exception notice.
 *
 */

#ifndef _GETEXIT_CH
#define _GETEXIT_CH

/* get:exitState values */
#define GE_NOEXIT       0       /* no exit attempted (blank) */
#define GE_UP           1
#define GE_DOWN         2
#define GE_TOP          3
#define GE_BOTTOM       4
#define GE_ENTER        5
#define GE_WRITE        6
#define GE_ESCAPE       7
#define GE_WHEN         8       /* when clause unsatisfied */
#define GE_SHORTCUT     9       /* introduced in x5.3 */
#define GE_MOUSEHIT     10      /* introduced in x5.3 */

#endif /* _GETEXIT_CH */
c:\harbour\include\hbclass.ch
/*
 * $Id: hbclass.ch 9338 2008-09-08 18:29:12Z tfonrouge $
 */

/*
 * Harbour Project source code:
 * Header file for Class commands
 *
 * Copyright 1999 Antonio Linares 
 *
 * Copyright 2006 Przemyslaw Czerpak 
 *    most of rules rewritten
 *
 * www - http://www.harbour-project.org
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this software; see the file COPYING.  If not, write to
 * the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
 * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
 *
 * As a special exception, the Harbour Project gives permission for
 * additional uses of the text contained in its release of Harbour.
 *
 * The exception is that, if you link the Harbour libraries with other
 * files to produce an executable, this does not by itself cause the
 * resulting executable to be covered by the GNU General Public License.
 * Your use of that executable is in no way restricted on account of
 * linking the Harbour library code into it.
 *
 * This exception does not however invalidate any other reasons why
 * the executable file might be covered by the GNU General Public License.
 *
 * This exception applies only to the code released by the Harbour
 * Project under the name Harbour.  If you copy code from other
 * Harbour Project or Free Software Foundation releases into a copy of
 * Harbour, as the General Public License permits, the exception does
 * not apply to the code that you add in this way.  To avoid misleading
 * anyone as to the status of such modified files, you must delete
 * this exception notice from them.
 *
 * If you write modifications of your own for Harbour, it is your choice
 * whether to permit this exception to apply to your modifications.
 * If you do not wish that, delete this exception notice.
 *
 */

/*
 * The following parts are Copyright of the individual authors.
 * www - http://www.harbour-project.org
 *
 * Copyright 2000 ( ->07/2000 ) JF. Lefebvre  & RA. Cuylen 
 *    Support for Class(y), TopClass and Visual Object compatibility
 *    Support for MI (multiple inheritance),

 * Copyright 2000-2001 ( 08/2000-> ) JF. Lefebvre 
 *    Scoping (Protect, Hidden and Readonly),
 *    Delegating, DATA Shared
 *    Support of 10 Chars limits
 *
 * See doc/license.txt for licensing terms.
 *
 */

#ifndef HB_CLASS_CH_
#define HB_CLASS_CH_

#include "hboo.ch"

/* You can actually define one or all the syntax, they do not collide each other */
/* There is some difference with their original form and I hope I will have enough */
/* time to document it  */
/* This is work in progress ... */
/* FWOBJECT AND CLASSY compatibility are the base of this work */
/* VO is just here as I like it's way of */
/* instantiating object but there is only a very few VO keywords here :-( */
/* TOPCLASS is better implemented because I like the way some Classy command */
/* are simplified */
/* There is also a big common block extending in fact each of the four base syntax */
/* it seem actually impossible to completely separate it without creating */
/* four different include files (what I would not see in fact ) */

/* There is also two compatibility define you can use */
/* HB_CLS_NOTOBJECT which IF DEFINED, disable the auto inherit of HBObject */
/* (which in fact also disable the classy compatibility :new(...) => :Init(...)  */
/* HB_CLS_NOAUTOINIT which disable the (VO like) AutoInit for Logical and Numeric */
/* when not specifically initiated */
/* These two are disabled by default */
/* So Each class _inherit_ of HBObject by default and */
/*    Each type logical or numerical is initiated to .F. and 0 by default */

/* #define HB_CLS_NOTOBJECT     */ /* Should be included in some compatibility include files as needed */
/* #define HB_CLS_NOAUTOINIT    */ /* Idem */
/* #define HB_CLS_NO_DECORATION */ /* disable adding _ prefix to method function names */
/* #define HB_CLS_NO_PARAMS_ERR */ /* disable parameters validation in method declaration and implementation */
/* #define HB_CLS_NO_OO_ERR     */ /* disable all code validation */


#ifndef HB_CLS_FWO
#ifndef HB_CLS_CSY
#ifndef HB_CLS_VO
#ifndef HB_CLS_TOP

/* IF NOTHING DECIDED BY THE PROGRAMMER USE ALL */
#define HB_CLS_FWO
#define HB_CLS_CSY
#define HB_CLS_VO
#define HB_CLS_TOP

#endif
#endif
#endif
#endif


#ifndef __HARBOUR__
   #ifndef HB_CLS_NO_DECORATION
      #define HB_CLS_NO_DECORATION
   #endif
   #ifndef HB_CLS_NO_DECLARATIONS
      #define HB_CLS_NO_DECLARATIONS
   #endif
   #ifndef HB_CLS_PARAM_LIST
      #define HB_CLS_PARAM_LIST
   #endif
#endif

/* Disable method decoration when Harbour compiled strict compatibility mode.
   In strict mode, PP doesn't support identifier concatenation, which
   would be needed for method decoration. */
#ifdef HB_C52_STRICT
   #ifndef HB_CLS_NO_DECORATION
      #define HB_CLS_NO_DECORATION
   #endif
   #ifndef HB_CLS_PARAM_LIST
      #define HB_CLS_PARAM_LIST
   #endif
#endif

/*
 * I have to enable this definition by default until we will not fix
 * preprocessor. [druzus]
 */
#ifndef HB_CLS_PARAMS_ERR
   #ifndef HB_CLS_NO_PARAMS_ERR
      #define HB_CLS_NO_PARAMS_ERR
   #endif
#endif

/* should we use _ prefix for real method names? */
#ifdef HB_CLS_NO_DECORATION
   #xtranslate __HB_CLS_MTHNAME   => 
#else
   #xtranslate __HB_CLS_MTHNAME   => _
#endif

/* parameters list passed throw - it's Harbour extension */
#ifndef HB_CLS_PARAM_LIST
   #define HB_CLS_PARAM_LIST ...
#endif

/* should we use _HB_CLASS/_HB_MEMBER declarations? */
#ifdef HB_CLS_NO_DECLARATIONS
   #xcommand _HB_CLASS          =>
   #xcommand _HB_CLASS    =>
   #xcommand _HB_MEMBER         =>
   #xcommand DECLARE    <*decl*>      =>
   #xtranslate AS               =>
   #xtranslate AS CLASS         =>
#endif

/* should we inherit from HBObject class by default ? */
#ifdef HB_CLS_NOTOBJECT
   #xtranslate __HB_CLS_PAR([])  => {  }
#else
   #xtranslate __HB_CLS_PAR([])  => iif( <.cls.>, {  }, { @HBObject() } )
#endif

/* Should we initialize typed instance variables? */
#ifdef HB_CLS_NOAUTOINIT
   #define __HB_CLS_NOINI .T.
#else
   #define __HB_CLS_NOINI .F.
#endif

/* Should we generate compile error when method declaration has differ parameters? */
#ifdef HB_CLS_NO_PARAMS_ERR
   #xtranslate __HB_CLS_PARAMS()     => __HB_CLS_ASID()
#else
   #xtranslate __HB_CLS_PARAMS()     => 
#endif

/* Should we disable compile errors for undeclared methods? */
#ifdef HB_CLS_NO_OO_ERR
   #xtranslate __HB_CLS_ERR([]) =>
#else
   #xtranslate __HB_CLS_ERR([]) => ;#error [ ] ; #line
#endif

/* Please keep it synced with the similar #define in common.ch */
#define __HB_CLS_SYMBOL_UNUSED( symbol )  ( ( symbol ) )

#xtranslate __HB_CLS_VARERR() => __HB_CLS_ERR( Invalid instance variable name:  )

DECLARE HBClass ;
        New( cName AS String, OPTIONAL SuperParams ) AS CLASS HBClass ;
        Create() AS Object ;
        Instance() AS Object ;
        AddClsMethod( cName AS String, @MethodName(), nScope AS Numeric, n2 AS Numeric, n3 AS Numeric ) ;
        AddMultiClsData( cType AS String, uVal, nScope AS Numeric, aDatas AS Array OF String ) ;
        AddMultiData( cType AS String, uVal, nScope AS Numeric, aDatas AS Array OF String, x AS LOGICAL, lPer AS LOGICAL ) ;
        AddMethod( cName AS String, @MethodName(), nScope AS Numeric ) ;
        AddInLine( cName AS String, bBlock AS CodeBlock, nScope AS Numeric ) ;
        AddVirtual( cName AS String )

/*
 * Class(y) like non virtual send operator but instead of using early
 * bindings it casts object to class in which current method were defined.
 */
#translate @:([]) => ;
                                ::realclass:([ ])

/* Indirect super casting translation */
#xtranslate :Super(  ): => ::


#xtranslate __HB_CLS_OPT(,) =>  
#xtranslate __HB_CLS_OPT()     =>  

#xtranslate __HB_CLS_ASSTRING(  )                 => <(FuncName)>
#xtranslate __HB_CLS_ASSTRING( ([]) ) => <(FuncName)>
#xtranslate __HB_CLS_ASFUNC(  )                   => ()
#xtranslate __HB_CLS_ASFUNC( ([]) )   => ([ ])
#xtranslate __HB_CLS_ASID(  )                     => 
#xtranslate __HB_CLS_ASID( ([]) )     => 
#xtranslate __HB_CLS_ASARGS(  )                   =>
#xtranslate __HB_CLS_ASARGS( ([]) )     => [ ]
#xtranslate __HB_CLS_ASARGSOPT(  )                =>
#xtranslate __HB_CLS_ASARGSOPT( ([]) )  => [, ]
#xtranslate __HB_CLS_ISVAR(  )                         => __HB_CLS_VARERR()
#xtranslate __HB_CLS_ISVAR(  )                       =>
#xcommand __HB_CLS_CHECKVAR(  [,] )         => __HB_CLS_ISVAR(  ) [;__HB_CLS_ISVAR(  )]

/* #xtranslate __HB_CLS_SCOPE( , ,  ) => ;
      iif( , HB_OO_CLSTP_EXPORTED , ;
      iif( , HB_OO_CLSTP_PROTECTED, ;
      iif( , HB_OO_CLSTP_HIDDEN, nScope ) ) ) */
#xtranslate __HB_CLS_SCOPE(  )        => ) __HB_CLS_ERR( Can not use multiple scope qualifiers! )
#xtranslate __HB_CLS_SCOPE( .T., .F., .F. )  => HB_OO_CLSTP_EXPORTED
#xtranslate __HB_CLS_SCOPE( .F., .T., .F. )  => HB_OO_CLSTP_PROTECTED
#xtranslate __HB_CLS_SCOPE( .F., .F., .T. )  => HB_OO_CLSTP_HIDDEN
#xtranslate __HB_CLS_SCOPE( .F., .F., .F. )  => nScope /* Default */


#xcommand CLASS  [METACLASS ] ;
             [   [,] ] ;
             [  ] ;
             [  ] [ FUNCTION  ] => ;
   _HB_CLASS   ;;
    function __HB_CLS_OPT([,] ) ( HB_CLS_PARAM_LIST ) ;;
      static s_oClass ;;
      local nScope, oInstance ;;
      if s_oClass == NIL ;;
         nScope := HB_OO_CLSTP_EXPORTED ;;
         s_oClass  := IIF(<.metaClass.>, <(metaClass)>, HBClass():new( <(ClassName)> , __HB_CLS_PAR( [ @() ] [ , @() ] ), @__HB_CLS_OPT([__HB_CLS_ASID(),] )() [, <.modulfriend.> ] ) ) ;;
   #undef  _CLASS_NAME_ ; #define _CLASS_NAME_  ;;
   #undef  _CLASS_MODE_ ; #define _CLASS_MODE_ _CLASS_DECLARATION_ ;
   [ ; #translate Super(  ): => ::: ] ;
   [ ; #translate Super(  ): => ::: ] ;
   [ ; #translate Super(): => ::: ] ;
   [ ; #translate Super: => ::: ] ;
   [ ; #translate ::Super : => ::: ]

#xcommand ENDCLASS [] => ;
         s_oClass:Create() ; [<-lck-> __clsLock( s_oClass:hClass ) ] ;;
         oInstance := s_oClass:Instance() ;;
         if __ObjHasMsg( oInstance, "InitClass" ) ;;
            oInstance:InitClass( HB_CLS_PARAM_LIST ) ;;
         end ;;
         return oInstance ;;
      end ;;
      return s_oClass:Instance() AS CLASS _CLASS_NAME_ ;;
   #undef  _CLASS_MODE_ ; #define _CLASS_MODE_ _CLASS_IMPLEMENTATION_


#xcommand DECLARED METHOD   CLASS  => ;
      static  __HB_CLS_MTHNAME   ;;
      local Self AS CLASS  := QSelf() AS CLASS 

#xcommand __HB_CLS_DECLARE_METHOD   => ;
   #xcommand METHOD \ \[(\[\])] CLASS  _CLASS_IMPLEMENTATION_ => ;
         DECLARED METHOD \ \[(\)] CLASS 

#xcommand METHOD   CLASS  _CLASS_IMPLEMENTATION_ => ;
   __HB_CLS_ERR( Method  not declared or declaration mismatch in class:  ) ;;
   DECLARED METHOD   CLASS 

#xcommand METHOD  [  ] [ AS  ] [ ] [] [
c:\harbour\include\hbdebug.ch
/*
 * $Id: hbdebug.ch 7139 2007-04-13 01:06:01Z druzus $
 */

/*
 * Harbour Project source code:
 * Header file for debugger 
 *
 * Copyright 1999 Ryszard Glab 
 * www - http://www.harbour-project.org
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this software; see the file COPYING.  If not, write to
 * the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
 * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
 *
 * As a special exception, the Harbour Project gives permission for
 * additional uses of the text contained in its release of Harbour.
 *
 * The exception is that, if you link the Harbour libraries with other
 * files to produce an executable, this does not by itself cause the
 * resulting executable to be covered by the GNU General Public License.
 * Your use of that executable is in no way restricted on account of
 * linking the Harbour library code into it.
 *
 * This exception does not however invalidate any other reasons why
 * the executable file might be covered by the GNU General Public License.
 *
 * This exception applies only to the code released by the Harbour
 * Project under the name Harbour.  If you copy code from other
 * Harbour Project or Free Software Foundation releases into a copy of
 * Harbour, as the General Public License permits, the exception does
 * not apply to the code that you add in this way.  To avoid misleading
 * anyone as to the status of such modified files, you must delete
 * this exception notice from them.
 *
 * If you write modifications of your own for Harbour, it is your choice
 * whether to permit this exception to apply to your modifications.
 * If you do not wish that, delete this exception notice.
 *
 */

/* NOTE: This file is also used by C code. */

#ifndef HB_DEBUGGER_CH_
#define HB_DEBUGGER_CH_

/* Mode of __dbgEntry calls (the first parameter) */
#define HB_DBG_MODULENAME     1  /* 2nd argumment is a module name */
#define HB_DBG_LOCALNAME      2  /* 2nd argument is a local var name */
#define HB_DBG_STATICNAME     3  /* 2nd arg is a static var name */
#define HB_DBG_ENDPROC        4  /* exit from a procedure */
#define HB_DBG_SHOWLINE       5  /* show current line */
#define HB_DBG_GETENTRY       6  /* initialize C __dbgEntry function pointer */
#define HB_DBG_ACTIVATE       7  /* activate debugger interface */
#define HB_DBG_VMQUIT         8  /* call internal debugger destructors */

#endif /* HB_DEBUGGER_CH_ */
c:\harbour\include\hbextern.ch
/*
 * $Id: hbextern.ch 9397 2008-09-14 20:16:03Z druzus $
 */

/*
 * Harbour Project source code:
 * The declarations for all harbour defined functions/procedures.
 *
 * Copyright 1999 Ryszard Glab 
 * www - http://www.harbour-project.org
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this software; see the file COPYING.  If not, write to
 * the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
 * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
 *
 * As a special exception, the Harbour Project gives permission for
 * additional uses of the text contained in its release of Harbour.
 *
 * The exception is that, if you link the Harbour libraries with other
 * files to produce an executable, this does not by itself cause the
 * resulting executable to be covered by the GNU General Public License.
 * Your use of that executable is in no way restricted on account of
 * linking the Harbour library code into it.
 *
 * This exception does not however invalidate any other reasons why
 * the executable file might be covered by the GNU General Public License.
 *
 * This exception applies only to the code released by the Harbour
 * Project under the name Harbour.  If you copy code from other
 * Harbour Project or Free Software Foundation releases into a copy of
 * Harbour, as the General Public License permits, the exception does
 * not apply to the code that you add in this way.  To avoid misleading
 * anyone as to the status of such modified files, you must delete
 * this exception notice from them.
 *
 * If you write modifications of your own for Harbour, it is your choice
 * whether to permit this exception to apply to your modifications.
 * If you do not wish that, delete this exception notice.
 *
 */

#ifndef HB_EXTERN_CH_
#define HB_EXTERN_CH_

/* CA-Cl*pper compatible standard functions */

EXTERNAL AADD
EXTERNAL ABS
EXTERNAL ACHOICE
EXTERNAL ACLONE
EXTERNAL ACOPY
EXTERNAL ADEL
EXTERNAL ADIR
EXTERNAL AEVAL
EXTERNAL AFIELDS
EXTERNAL AFILL
EXTERNAL AINS
EXTERNAL ALERT
EXTERNAL ALIAS
EXTERNAL ALLTRIM
EXTERNAL ALTD
EXTERNAL AMPM
EXTERNAL ARRAY
EXTERNAL ASC
EXTERNAL ASCAN
EXTERNAL ASIZE
EXTERNAL ASORT
EXTERNAL AT
EXTERNAL ATAIL
EXTERNAL BIN2I
EXTERNAL BIN2L
EXTERNAL BIN2W
EXTERNAL BOF
EXTERNAL BREAK
EXTERNAL BROWSE
EXTERNAL CDOW
EXTERNAL CHR
EXTERNAL CMONTH
EXTERNAL COL
EXTERNAL COLORSELECT
EXTERNAL CTOD
EXTERNAL CURDIR
EXTERNAL DATE
EXTERNAL DAY
EXTERNAL DAYS
EXTERNAL DBAPPEND
EXTERNAL DBCLEARFILTER
EXTERNAL DBCLEARINDEX
EXTERNAL DBCLEARRELATION
EXTERNAL DBCLOSEALL
EXTERNAL DBCLOSEAREA
EXTERNAL DBCOMMIT
EXTERNAL DBCOMMITALL
EXTERNAL DBCREATE
EXTERNAL DBCREATEINDEX
EXTERNAL DBDELETE
EXTERNAL DBEDIT
EXTERNAL DBEVAL
EXTERNAL DBF
EXTERNAL DBFILTER
EXTERNAL DBGOBOTTOM
EXTERNAL DBGOTO
EXTERNAL DBGOTOP
EXTERNAL DBRECALL
EXTERNAL DBREINDEX
EXTERNAL DBRELATION
EXTERNAL DBRLOCK
EXTERNAL DBRLOCKLIST
EXTERNAL DBRSELECT
EXTERNAL DBRUNLOCK
EXTERNAL DBSEEK
EXTERNAL DBSELECTAREA
EXTERNAL DBSETDRIVER
EXTERNAL DBSETFILTER
EXTERNAL DBSETINDEX
EXTERNAL DBSETORDER
EXTERNAL DBSETRELATION
EXTERNAL DBSKIP
EXTERNAL DBSTRUCT
EXTERNAL DBUNLOCK
EXTERNAL DBUNLOCKALL
EXTERNAL DBUSEAREA
EXTERNAL DELETED
EXTERNAL DESCEND
EXTERNAL DEVOUT
EXTERNAL DEVOUTPICT
EXTERNAL DEVPOS
EXTERNAL DIRECTORY
EXTERNAL DISKSPACE
EXTERNAL DISPBEGIN
EXTERNAL DISPBOX
EXTERNAL DISPCOUNT
EXTERNAL DISPEND
EXTERNAL DISPOUT
EXTERNAL DISPOUTAT /* Undocumented but always required */
EXTERNAL DO
EXTERNAL DOSERROR
EXTERNAL DOW
EXTERNAL DTOC
EXTERNAL DTOS
EXTERNAL ELAPTIME
EXTERNAL EMPTY
EXTERNAL EOF
EXTERNAL ERRORBLOCK
EXTERNAL ERRORLEVEL
EXTERNAL ERRORNEW
EXTERNAL EVAL
EXTERNAL EXP
EXTERNAL FCLOSE
EXTERNAL FCOUNT
EXTERNAL FCREATE
EXTERNAL FERASE
EXTERNAL FERROR
EXTERNAL FIELDBLOCK
EXTERNAL FIELDGET
EXTERNAL FIELDNAME
EXTERNAL FIELDPOS
EXTERNAL FIELDPUT
EXTERNAL FIELDWBLOCK
EXTERNAL FILE
EXTERNAL FKLABEL
EXTERNAL FKMAX
EXTERNAL FLOCK
EXTERNAL FOPEN
EXTERNAL FOUND
EXTERNAL FREAD
EXTERNAL FREADSTR
EXTERNAL FRENAME
EXTERNAL FSEEK
EXTERNAL FWRITE
EXTERNAL GETACTIVE
EXTERNAL GETAPPLYKEY
EXTERNAL GETDOSETKEY
EXTERNAL GETE
EXTERNAL GETENV
EXTERNAL GETNEW
EXTERNAL GETPOSTVALIDATE
EXTERNAL GETPREVALIDATE
EXTERNAL GETREADER
EXTERNAL HARDCR
EXTERNAL HEADER
EXTERNAL I2BIN
EXTERNAL INDEXEXT
EXTERNAL INDEXKEY
EXTERNAL INDEXORD
EXTERNAL INKEY
EXTERNAL INT
EXTERNAL ISALPHA
EXTERNAL ISCOLOR
EXTERNAL ISDIGIT
EXTERNAL ISLOWER
EXTERNAL ISPRINTER
EXTERNAL ISUPPER
EXTERNAL L2BIN
EXTERNAL LASTKEY
EXTERNAL LASTREC
EXTERNAL LEFT
EXTERNAL LEN
EXTERNAL LENNUM
EXTERNAL LOCK
EXTERNAL LOG
EXTERNAL LOWER
EXTERNAL LTRIM
EXTERNAL LUPDATE
EXTERNAL MAX
EXTERNAL MAXCOL
EXTERNAL MAXROW
EXTERNAL MEMOEDIT
EXTERNAL MEMOLINE
EXTERNAL MEMOREAD
EXTERNAL MEMORY
EXTERNAL MEMOTRAN
EXTERNAL MEMOWRIT
EXTERNAL MEMVARBLOCK
EXTERNAL MIN
EXTERNAL MLCOUNT
EXTERNAL MLCTOPOS
EXTERNAL MLPOS
EXTERNAL MOD
EXTERNAL MONTH
EXTERNAL MPOSTOLC
EXTERNAL NETERR
EXTERNAL NETNAME
EXTERNAL NEXTKEY
EXTERNAL NOSNOW
EXTERNAL ORDBAGCLEAR
EXTERNAL ORDBAGEXT
EXTERNAL ORDBAGNAME
EXTERNAL ORDCONDSET
EXTERNAL ORDCREATE
EXTERNAL ORDDESTROY
EXTERNAL ORDFOR
EXTERNAL ORDKEY
EXTERNAL ORDLISTADD
EXTERNAL ORDLISTCLEAR
EXTERNAL ORDLISTREBUILD
EXTERNAL ORDNAME
EXTERNAL ORDNUMBER
EXTERNAL ORDSCOPE
EXTERNAL ORDSETFOCUS
EXTERNAL OS
EXTERNAL OUTERR
EXTERNAL OUTSTD
EXTERNAL PAD
EXTERNAL PADC
EXTERNAL PADL
EXTERNAL PADR
EXTERNAL PCOL
EXTERNAL PCOUNT
EXTERNAL PROCLINE
EXTERNAL PROCNAME
EXTERNAL PROW
EXTERNAL QOUT
EXTERNAL QQOUT
EXTERNAL RANGECHECK /* Undocumented but always required */
EXTERNAL RAT
EXTERNAL RDDLIST
EXTERNAL RDDNAME
EXTERNAL RDDREGISTER
EXTERNAL RDDSETDEFAULT
EXTERNAL READEXIT
EXTERNAL READFORMAT
EXTERNAL READINSERT
EXTERNAL READKEY
EXTERNAL READKILL
EXTERNAL READMODAL
EXTERNAL READUPDATED
EXTERNAL READVAR
EXTERNAL RECCOUNT
EXTERNAL RECNO
EXTERNAL RECSIZE
EXTERNAL REPLICATE
EXTERNAL RESTSCREEN
EXTERNAL RIGHT
EXTERNAL RLOCK
EXTERNAL ROUND
EXTERNAL ROW
EXTERNAL RTRIM
EXTERNAL SAVESCREEN
EXTERNAL SCROLL
EXTERNAL SECONDS
EXTERNAL SECS
EXTERNAL SELECT
EXTERNAL SET
EXTERNAL SETBLINK
EXTERNAL SETCANCEL
EXTERNAL SETCOLOR
EXTERNAL SETCURSOR
EXTERNAL SETKEY
EXTERNAL SETMODE
EXTERNAL SETPOS
EXTERNAL SETPOSBS /* Undocumented but always required */
EXTERNAL SETPRC
EXTERNAL SOUNDEX
EXTERNAL SPACE
EXTERNAL SQRT
EXTERNAL STR
EXTERNAL STRTRAN
EXTERNAL STRZERO
EXTERNAL STUFF
EXTERNAL SUBSTR
EXTERNAL TBCOLUMNNEW
EXTERNAL TBROWSEDB
EXTERNAL TBROWSENEW
EXTERNAL TIME
EXTERNAL TONE
EXTERNAL TRANSFORM
EXTERNAL TRIM
EXTERNAL TSTRING
EXTERNAL TYPE
EXTERNAL UPDATED
EXTERNAL UPPER
EXTERNAL USED
EXTERNAL VAL
EXTERNAL VALTYPE
EXTERNAL VERSION
EXTERNAL WORD
EXTERNAL YEAR

/* Harbour extensions violating extension namespace rules 
   (but not marked as HB_EXTENSION). */

EXTERNAL RDDINFO
EXTERNAL DBDROP
EXTERNAL DBEXISTS
EXTERNAL FIELDLEN
EXTERNAL FIELDDEC
EXTERNAL FIELDTYPE

/* HiPer-SEEK / CFTS compatible functions */

EXTERNAL HS_ADD
EXTERNAL HS_CLOSE
EXTERNAL HS_CREATE
EXTERNAL HS_DELETE
EXTERNAL HS_FILTER
EXTERNAL HS_IFDEL
EXTERNAL HS_INDEX
EXTERNAL HS_KEYCOUNT
EXTERNAL HS_NEXT
EXTERNAL HS_OPEN
EXTERNAL HS_REPLACE
EXTERNAL HS_SET
EXTERNAL HS_UNDELETE
EXTERNAL HS_VERIFY
EXTERNAL HS_VERSION

EXTERNAL CFTSADD
EXTERNAL CFTSCLOSE
EXTERNAL CFTSCREA
EXTERNAL CFTSDELETE
EXTERNAL CFTSIFDEL
EXTERNAL CFTSNEXT
EXTERNAL CFTSOPEN
EXTERNAL CFTSRECN
EXTERNAL CFTSREPLAC
EXTERNAL CFTSSET
EXTERNAL CFTSUNDEL
EXTERNAL CFTSVERI
EXTERNAL CFTSVERS

/* SIX3 compatible functions */

EXTERNAL _SX_STRCOMPRESS
EXTERNAL _SX_STRDECOMPRESS
EXTERNAL SX_FCOMPRESS
EXTERNAL SX_FDECOMPRESS
EXTERNAL SX_ENCRYPT
EXTERNAL SX_DECRYPT
EXTERNAL SX_DTOP
EXTERNAL SX_PTOD

/* CA-Cl*pper compatible internal functions */

EXTERNAL CLIPPER520
EXTERNAL __ACCEPT
EXTERNAL __ATPROMPT
EXTERNAL __COPYFILE
EXTERNAL __DBAPP
EXTERNAL __DBARRANGE
EXTERNAL __DBCONTINUE
EXTERNAL __DBCOPY
EXTERNAL __DBCOPYSTRUCT
EXTERNAL __DBCOPYXSTRUCT
EXTERNAL __DBCREATE
EXTERNAL __DBDELIM
EXTERNAL __DBJOIN
EXTERNAL __DBLIST
EXTERNAL __DBLOCATE
EXTERNAL __DBOPENSDF
EXTERNAL __DBPACK
EXTERNAL __DBSDF
EXTERNAL __DBSETFOUND
EXTERNAL __DBSETLOCATE
EXTERNAL __DBSORT
EXTERNAL __DBSTRUCTFILTER
EXTERNAL __DBTOTAL
EXTERNAL __DBTRANS
EXTERNAL __DBTRANSREC
EXTERNAL __DBUPDATE
EXTERNAL __DBZAP
EXTERNAL __DIR
EXTERNAL __DEFPATH
EXTERNAL __EJECT
EXTERNAL __GET
EXTERNAL __GETA
EXTERNAL __GETMESSAGE
EXTERNAL __KEYBOARD
EXTERNAL __KILLREAD
EXTERNAL __LABELFORM
EXTERNAL __MCLEAR
EXTERNAL __MENUTO
EXTERNAL __MRELEASE
EXTERNAL __MRESTORE
EXTERNAL __MSAVE
EXTERNAL __MXRELEASE
EXTERNAL __QUIT
EXTERNAL __REPORTFORM
EXTERNAL __RUN
EXTERNAL __SETCENTURY
EXTERNAL __SETFORMAT
EXTERNAL __SETFUNCTION
EXTERNAL __SETHELPK
EXTERNAL __TEXTRESTORE
EXTERNAL __TEXTSAVE
EXTERNAL __TYPEFILE
EXTERNAL __WAIT
EXTERNAL __XHELP
EXTERNAL __XRESTSCREEN
EXTERNAL __XSAVESCREEN

/* Harbour internal functions */

EXTERNAL __NATISAFFIRM
EXTERNAL __NATISNEGATIVE
EXTERNAL __NATMSG
EXTERNAL __NATSORTVER
EXTERNAL __NATMSGVER

EXTERNAL __DBSQL
EXTERNAL __RDDGETTEMPALIAS
EXTERNAL __GETMSGPRF
EXTERNAL __OPGETPRF
EXTERNAL __OPCOUNT
EXTERNAL __SETPROFILER
EXTERNAL __TRACEPRGCALLS

EXTERNAL __DYNSN2PTR
EXTERNAL __DYNSP2NAME
EXTERNAL __DYNSCOUNT
EXTERNAL __DYNSGETINDEX
EXTERNAL __DYNSGETNAME
EXTERNAL __DYNSISFUN
EXTERNAL __DYNSN2SYM
EXTERNAL __DYNSGETPRF

EXTERNAL __CLASSADD
EXTERNAL __CLASSH
EXTERNAL __CLASSINSTANCE
EXTERNAL __CLASSNAME
EXTERNAL __CLASSNEW
EXTERNAL __CLASSSEL
EXTERNAL __CLS_CNTCLSDATA
EXTERNAL __CLS_CNTDATA
EXTERNAL __CLS_CNTSHRDATA
EXTERNAL __CLS_DECDATA
EXTERNAL __CLS_INCDATA
EXTERNAL __CLSADDFRIEND
EXTERNAL __CLSADDMSG
EXTERNAL __CLSCNTCLASSES
EXTERNAL __CLSDELMSG
EXTERNAL __CLSGETPROPERTIES
EXTERNAL __CLSINST
EXTERNAL __CLSINSTSUPER
EXTERNAL __CLSLOCK
EXTERNAL __CLSMODMSG
EXTERNAL __CLSNEW
EXTERNAL __CLSPARENT

EXTERNAL __OBJADDDATA
EXTERNAL __OBJADDINLINE
EXTERNAL __OBJADDMETHOD
EXTERNAL __OBJCLONE
EXTERNAL __OBJDELDATA
EXTERNAL __OBJDELINLINE
EXTERNAL __OBJDELMETHOD
EXTERNAL __OBJDERIVEDFROM
EXTERNAL __OBJGETCLSNAME
EXTERNAL __OBJGETMETHODLIST
EXTERNAL __OBJGETMSGLIST
EXTERNAL __OBJGETVALUELIST
EXTERNAL __OBJGETPROPERTIES
EXTERNAL __OBJHASDATA
EXTERNAL __OBJHASMETHOD
EXTERNAL __OBJHASMSG
EXTERNAL __OBJMODINLINE
EXTERNAL __OBJMODMETHOD
EXTERNAL __OBJSENDMSG
EXTERNAL __OBJSETVALUELIST
EXTERNAL __SENDER

EXTERNAL __PP_INIT
EXTERNAL __PP_PATH
EXTERNAL __PP_RESET
EXTERNAL __PP_ADDRULE
EXTERNAL __PP_PROCESS
EXTERNAL __PP_STDRULES

EXTERNAL __HRBRUN
EXTERNAL __HRBLOAD
EXTERNAL __HRBDO
EXTERNAL __HRBUNLOAD
EXTERNAL __HRBGETFU

EXTERNAL __ERRINHANDLER
EXTERNAL __ERRRT_BASE
EXTERNAL __ERRRT_SBASE

EXTERNAL __MVCLEAR
EXTERNAL __MVDBGINFO
EXTERNAL __MVEXIST
EXTERNAL __MVGET
EXTERNAL __MVPRIVATE
EXTERNAL __MVPUBLIC
EXTERNAL __MVPUT
EXTERNAL __MVRELEASE
EXTERNAL __MVRESTORE
EXTERNAL __MVSAVE
EXTERNAL __MVSCOPE
EXTERNAL __MVXRELEASE

EXTERNAL __EINSTVAR52
EXTERNAL __EINSTVAR53

/* The debugger interface */

EXTERNAL __DBGINVOKEDEBUG
EXTERNAL __DBGVMPARLLIST
EXTERNAL __DBGVMSTKGCOUNT
EXTERNAL __DBGVMSTKGLIST
EXTERNAL __DBGVMSTKLCOUNT
EXTERNAL __DBGVMSTKLLIST
EXTERNAL __DBGVMVARGGET
EXTERNAL __DBGVMVARGLIST
EXTERNAL __DBGVMVARGSET
EXTERNAL __DBGVMVARLGET
EXTERNAL __DBGVMVARLSET
EXTERNAL __DBGVMVARSGET
EXTERNAL __DBGVMVARSSET
EXTERNAL __DBGVMVARSLEN
EXTERNAL __DBGVMVARSLIST
EXTERNAL __DBGPROCLEVEL

/* RDD related symbols */

EXTERNAL _DBF, DBF_GETFUNCTABLE
EXTERNAL DBFFPT, DBFFPT_GETFUNCTABLE
EXTERNAL DBFNTX, DBFNTX_GETFUNCTABLE
EXTERNAL DBFCDX, DBFCDX_GETFUNCTABLE
EXTERNAL DELIM, DELIM_GETFUNCTABLE
EXTERNAL SDF, SDF_GETFUNCTABLE
EXTERNAL DBFBLOB, DBFBLOB_GETFUNCTABLE
EXTERNAL DBFSMT

EXTERNAL RDDSYS

/* CA-Cl*pper 5.2 compatible undocumented functions */

#ifdef HB_C52_UNDOC

EXTERNAL __ACCEPTSTR
EXTERNAL __ATCLEAR
EXTERNAL __BOX
EXTERNAL __BOXD
EXTERNAL __BOXS
EXTERNAL __CLEAR
EXTERNAL __DBAPPEND
EXTERNAL __DBCLEARINDEX
EXTERNAL __DBCLEARRELATION
EXTERNAL __DBCLOSE
EXTERNAL __DBCLOSEAREA
EXTERNAL __DBCOMMIT
EXTERNAL __DBCOMMITALL
EXTERNAL __DBCREATINDEX
EXTERNAL __DBDELETE
EXTERNAL __DBGOBOTTOM
EXTERNAL __DBGOTO
EXTERNAL __DBGOTOP
EXTERNAL __DBRECALL
EXTERNAL __DBREINDEX
EXTERNAL __DBSEEK
EXTERNAL __DBSELECT
EXTERNAL __DBSETFILTER
EXTERNAL __DBSETINDEX
EXTERNAL __DBSETORDER
EXTERNAL __DBSETRELATION
EXTERNAL __DBSKIP
EXTERNAL __DBUNLALL
EXTERNAL __DBUNLOCK
EXTERNAL __DBUSE
EXTERNAL __FLEDIT
EXTERNAL __INPUT
EXTERNAL __NONOALERT
EXTERNAL __QQPUB
EXTERNAL _EINSTVAR
EXTERNAL _NATMSGVER
EXTERNAL _NATSORTVER
EXTERNAL _DTXCONDSET
EXTERNAL DBGSHADOW
EXTERNAL DEFPATH
EXTERNAL ISAFFIRM
EXTERNAL ISNEGATIVE
EXTERNAL NATIONMSG
EXTERNAL PROCFILE
EXTERNAL SETTYPEAHEAD
EXTERNAL ERRORINHAN
EXTERNAL ERRORINHANDLER

#endif /* HB_C52_UNDOC */

/* CA-Cl*pper 5.3 compatible functions */

#ifdef HB_COMPAT_C53

EXTERNAL __CAPTION
EXTERNAL __GUICOLOR
EXTERNAL __CAPLENGTH
EXTERNAL __CAPMETRICS
#ifdef HB_C52_UNDOC
EXTERNAL __MICOLUMN
EXTERNAL __MIROW
#endif
EXTERNAL _ISGRAPHIC
EXTERNAL _SETVIDEOMODE
EXTERNAL _CHECKBOX_
EXTERNAL _LISTBOX_
EXTERNAL _PUSHBUTT_
EXTERNAL _RADIOGRP_
EXTERNAL CHECKBOX
EXTERNAL CLIPPER530
EXTERNAL DBFIELDINFO
EXTERNAL DBFILEGET
EXTERNAL DBFILEPUT
EXTERNAL DBINFO
EXTERNAL DBORDERINFO
EXTERNAL DBRECORDINFO
EXTERNAL DBTABLEEXT
EXTERNAL DIRCHANGE
EXTERNAL DIRREMOVE
EXTERNAL DISKCHANGE
EXTERNAL DISKNAME
EXTERNAL FSETDEVMOD
EXTERNAL GUIAPPLYKEY
EXTERNAL GUIPOSTVALIDATE
EXTERNAL GUIPREVALIDATE
EXTERNAL GUIREADER
EXTERNAL ISDEFCOLOR
EXTERNAL ISDISK
EXTERNAL LISTBOX
EXTERNAL MAKEDIR
EXTERNAL MCOL
EXTERNAL MDBLCLK
EXTERNAL MENUITEM
EXTERNAL MENUMODAL
EXTERNAL MHIDE
EXTERNAL MLEFTDOWN
EXTERNAL MPRESENT
EXTERNAL MRESTSTATE
EXTERNAL MRIGHTDOWN
EXTERNAL MROW
EXTERNAL MSAVESTATE
EXTERNAL MSETBOUNDS
EXTERNAL MSETCURSOR
EXTERNAL MSETPOS
EXTERNAL MSHOW
EXTERNAL ORDDESCEND
EXTERNAL ORDISUNIQUE
EXTERNAL ORDKEYADD
EXTERNAL ORDKEYCOUNT
EXTERNAL ORDKEYDEL
EXTERNAL ORDKEYGOTO
EXTERNAL ORDKEYNO
EXTERNAL ORDKEYVAL
EXTERNAL ORDSETRELATION
EXTERNAL ORDSKIPUNIQUE
EXTERNAL ORDCOUNT
EXTERNAL ORDCUSTOM
EXTERNAL ORDFINDREC
EXTERNAL ORDKEYRELPOS
EXTERNAL POPUP
EXTERNAL PUSHBUTTON
EXTERNAL RADIOBUTTO
#ifdef HB_EXTENSION
EXTERNAL RADIOBUTTON
#endif
EXTERNAL RADIOGROUP
EXTERNAL TOPBAR

EXTERNAL TBMOUSE
EXTERNAL TAPPLYKEY
EXTERNAL TBADDCOL
EXTERNAL TBAPPLYKEY
EXTERNAL TBBBLOCK
EXTERNAL TBCLOSE
EXTERNAL TBCREATE
EXTERNAL TBDELCOL
EXTERNAL TBDISPLAY
EXTERNAL TBEDITCELL
EXTERNAL TBFBLOCK
EXTERNAL TBGOBOT
EXTERNAL TBGOTOP
EXTERNAL TBINSCOL
EXTERNAL TBMODAL
EXTERNAL TBSBLOCK
EXTERNAL TBSKIP

EXTERNAL GETCLRPAIR
EXTERNAL SETCLRPAIR
EXTERNAL GETPAIRPOS
EXTERNAL GETPAIRLEN
EXTERNAL GETCLRBACK
EXTERNAL GETCLRFORE
EXTERNAL RADGRDEFCO
EXTERNAL RADITDEFCO
EXTERNAL LISTBDEFCO
EXTERNAL COMBODEFCO
EXTERNAL CHECKDEFCO
EXTERNAL BUTTNDEFCO
EXTERNAL MENUDEFCOL
EXTERNAL APPLYDEFAU

EXTERNAL ISQUICK
EXTERNAL ISSHORTCUT
EXTERNAL ACCELERATOR
EXTERNAL HITTEST
EXTERNAL READSTATS
EXTERNAL SHOWGETMSG
EXTERNAL ERASEGETMSG
EXTERNAL _GETNUMCOL
EXTERNAL SHOWMSG

#endif /* HB_COMPAT_C53 */

/* Xbase++ compatible functions */

#ifdef HB_COMPAT_XPP

EXTERNAL BIN2U
EXTERNAL DBPACK
EXTERNAL DBZAP
EXTERNAL DBCOPYEXTSTRUCT
EXTERNAL DBCOPYSTRUCT
EXTERNAL DBJOIN
EXTERNAL DBLIST
EXTERNAL DBSORT
EXTERNAL DBTOTAL
EXTERNAL DBUPDATE
EXTERNAL CONVTOANSICP
EXTERNAL CONVTOOEMCP
EXTERNAL CURDRIVE
EXTERNAL DBSKIPPER
EXTERNAL NUMBUTTONS
EXTERNAL SETMOUSE
EXTERNAL STOD
EXTERNAL U2BIN
EXTERNAL W2BIN
EXTERNAL ORDWILDSEEK
EXTERNAL _DBEXPORT
EXTERNAL _TYPEFILE

#endif /* HB_COMPAT_XPP */

/* Harbour extensions */

EXTERNAL HB_ARGC
EXTERNAL HB_ARGCHECK
EXTERNAL HB_ARGSTRING
EXTERNAL HB_ARGV
EXTERNAL HB_COLORINDEX
EXTERNAL HB_COMPILER
EXTERNAL HB_PCODEVER
EXTERNAL HB_BUILDDATE
EXTERNAL HB_FILEEXISTS
EXTERNAL HB_DIREXISTS
EXTERNAL HB_FNAMEMERGE
EXTERNAL HB_FNAMESPLIT
EXTERNAL HB_DIRSCAN
EXTERNAL HB_LANGNAME
EXTERNAL HB_LANGSELECT
EXTERNAL HB_LANGERRMSG
EXTERNAL HB_LANGMESSAGE
#ifndef HB_CDP_SUPPORT_OFF
EXTERNAL HB_SETCODEPAGE
EXTERNAL HB_TRANSLATE
EXTERNAL HB_CDPLIST
EXTERNAL HB_STRTOUTF8
EXTERNAL HB_UTF8TOSTR
EXTERNAL HB_UTF8LEN
EXTERNAL HB_UTF8LEFT
EXTERNAL HB_UTF8RIGHT
EXTERNAL HB_UTF8PEEK
EXTERNAL HB_UTF8POKE
EXTERNAL HB_UTF8STUFF
EXTERNAL HB_UTF8SUBSTR
EXTERNAL HB_UTF8STRTRAN
#endif
EXTERNAL HB_ISARRAY
EXTERNAL HB_ISBLOCK
EXTERNAL HB_ISCHAR
EXTERNAL HB_ISDATE
EXTERNAL HB_ISHASH
EXTERNAL HB_ISLOGICAL
EXTERNAL HB_ISMEMO
EXTERNAL HB_ISNIL
EXTERNAL HB_ISNULL
EXTERNAL HB_ISNUMERIC
EXTERNAL HB_ISOBJECT
EXTERNAL HB_ISPOINTER
EXTERNAL HB_ISSTRING
EXTERNAL HB_ISSYMBOL

EXTERNAL HB_IDLEADD
EXTERNAL HB_IDLEDEL
EXTERNAL HB_IDLERESET
EXTERNAL HB_IDLESLEEP
EXTERNAL HB_IDLESTATE
EXTERNAL HB_RELEASECPU

EXTERNAL HB_OSNEWLINE
EXTERNAL HB_APARAMS
EXTERNAL HB_PVALUE
EXTERNAL HB_FORNEXT
EXTERNAL HB_EXECFROMARRAY
EXTERNAL HB_METHODNAME
EXTERNAL HB_SETMACRO
EXTERNAL HB_STOD
EXTERNAL HB_WILDMATCH
EXTERNAL HB_FILEMATCH
EXTERNAL HB_CLOCKS2SECS
EXTERNAL HB_MATHERMODE
EXTERNAL HB_MATHERBLOCK
EXTERNAL HB_SERIALIZE
EXTERNAL HB_DESERIALIZE
EXTERNAL HB_HEXTONUM
EXTERNAL HB_NUMTOHEX
EXTERNAL HB_HEXTOSTR
EXTERNAL HB_STRTOHEX
EXTERNAL HB_ISPRINTER
EXTERNAL HB_GETENV
EXTERNAL HB_USERNAME
EXTERNAL HB_RUN
EXTERNAL HB_GETREADVAR

EXTERNAL HB_INISETCOMMENT
EXTERNAL HB_INIREAD
EXTERNAL HB_INIWRITE

EXTERNAL HB_HRBRUN
EXTERNAL HB_HRBDO
EXTERNAL HB_HRBLOAD
EXTERNAL HB_HRBUNLOAD
EXTERNAL HB_HRBGETFUNSYM

EXTERNAL HB_LIBLOAD
EXTERNAL HB_LIBFREE
EXTERNAL HB_LIBDO
EXTERNAL HB_LIBERROR

EXTERNAL HB_RANDOM
EXTERNAL HB_RANDOMINT
EXTERNAL HB_RANDOMSEED

EXTERNAL HB_BITAND
EXTERNAL HB_BITOR
EXTERNAL HB_BITXOR
EXTERNAL HB_BITNOT
EXTERNAL HB_BITSET
EXTERNAL HB_BITRESET
EXTERNAL HB_BITTEST
EXTERNAL HB_BITSHIFT

EXTERNAL HB_ADLER32
EXTERNAL HB_CRC
EXTERNAL HB_CRC16
EXTERNAL HB_CRC32
EXTERNAL HB_CRCCT
EXTERNAL HB_MD5
EXTERNAL HB_MD5FILE

EXTERNAL HB_GTALERT
EXTERNAL HB_GTVERSION
EXTERNAL HB_GTSYS
EXTERNAL HB_GTINFO
EXTERNAL HB_SETDISPCP
EXTERNAL HB_SETKEYCP
EXTERNAL HB_SETTERMCP
EXTERNAL HB_GFXPRIMITIVE
EXTERNAL HB_GFXTEXT

EXTERNAL HB_GETSTDERR
EXTERNAL HB_GETSTDIN
EXTERNAL HB_GETSTDOUT

EXTERNAL HB_RDDGETTEMPALIAS
EXTERNAL HB_RDDINFO
EXTERNAL HB_DBPACK
EXTERNAL HB_DBZAP
EXTERNAL HB_DBDROP
EXTERNAL HB_DBEXISTS
EXTERNAL HB_FIELDLEN
EXTERNAL HB_FIELDDEC
EXTERNAL HB_FIELDTYPE

EXTERNAL HB_SCRMAXROW
EXTERNAL HB_SCRMAXCOL

EXTERNAL HB_MTVM

EXTERNAL HB_THREADSTART
EXTERNAL HB_THREADJOIN
EXTERNAL HB_THREADDETACH
EXTERNAL HB_THREADQUITREQUEST
EXTERNAL HB_THREADWAITFORALL
EXTERNAL HB_THREADTERMINATEALL

EXTERNAL HB_MUTEXCREATE
EXTERNAL HB_MUTEXLOCK
EXTERNAL HB_MUTEXUNLOCK
EXTERNAL HB_MUTEXNOTIFY
EXTERNAL HB_MUTEXNOTIFYALL
EXTERNAL HB_MUTEXSUBSCRIBE
EXTERNAL HB_MUTEXSUBSCRIBENOW

/* Codepage support */
EXTERNAL HB_CODEPAGE_BG866
EXTERNAL HB_CODEPAGE_BGISO
EXTERNAL HB_CODEPAGE_BGMIK
EXTERNAL HB_CODEPAGE_BGWIN
EXTERNAL HB_CODEPAGE_CS852
EXTERNAL HB_CODEPAGE_CSISO
EXTERNAL HB_CODEPAGE_CSKAM
EXTERNAL HB_CODEPAGE_CSWIN
EXTERNAL HB_CODEPAGE_DE850
EXTERNAL HB_CODEPAGE_DEISO
EXTERNAL HB_CODEPAGE_EL737
EXTERNAL HB_CODEPAGE_ELWIN
EXTERNAL HB_CODEPAGE_ES850
EXTERNAL HB_CODEPAGE_ESMWIN
EXTERNAL HB_CODEPAGE_ESWIN
EXTERNAL HB_CODEPAGE_FR850
EXTERNAL HB_CODEPAGE_HR1250
EXTERNAL HB_CODEPAGE_HR437
EXTERNAL HB_CODEPAGE_HR852
EXTERNAL HB_CODEPAGE_HU852
EXTERNAL HB_CODEPAGE_HU852S
EXTERNAL HB_CODEPAGE_HUISO
EXTERNAL HB_CODEPAGE_HUISOS
EXTERNAL HB_CODEPAGE_HUWIN
EXTERNAL HB_CODEPAGE_HUWINS
EXTERNAL HB_CODEPAGE_IT437
EXTERNAL HB_CODEPAGE_IT850
EXTERNAL HB_CODEPAGE_ITISB
EXTERNAL HB_CODEPAGE_ITISO
EXTERNAL HB_CODEPAGE_LTWIN
EXTERNAL HB_CODEPAGE_PL852
EXTERNAL HB_CODEPAGE_PLISO
EXTERNAL HB_CODEPAGE_PLMAZ
EXTERNAL HB_CODEPAGE_PLWIN
EXTERNAL HB_CODEPAGE_PT850
EXTERNAL HB_CODEPAGE_PTISO
EXTERNAL HB_CODEPAGE_RU1251
EXTERNAL HB_CODEPAGE_RU866
EXTERNAL HB_CODEPAGE_RUKOI8
EXTERNAL HB_CODEPAGE_SK852
EXTERNAL HB_CODEPAGE_SKISO
EXTERNAL HB_CODEPAGE_SKKAM
EXTERNAL HB_CODEPAGE_SKWIN
EXTERNAL HB_CODEPAGE_SL437
EXTERNAL HB_CODEPAGE_SL852
EXTERNAL HB_CODEPAGE_SLISO
EXTERNAL HB_CODEPAGE_SLWIN
EXTERNAL HB_CODEPAGE_SRWIN
EXTERNAL HB_CODEPAGE_SV850
EXTERNAL HB_CODEPAGE_SVCLIP
EXTERNAL HB_CODEPAGE_SVWIN
EXTERNAL HB_CODEPAGE_TR857
EXTERNAL HB_CODEPAGE_TRWIN
EXTERNAL HB_CODEPAGE_UA1251
EXTERNAL HB_CODEPAGE_UA866
EXTERNAL HB_CODEPAGE_UAKOI8

/* lang support */
EXTERNAL HB_LANG_BG866
EXTERNAL HB_LANG_BGISO
EXTERNAL HB_LANG_BGWIN
EXTERNAL HB_LANG_CA
EXTERNAL HB_LANG_CS852
EXTERNAL HB_LANG_CSISO
EXTERNAL HB_LANG_CSKAM
EXTERNAL HB_LANG_CSWIN
EXTERNAL HB_LANG_DE
EXTERNAL HB_LANG_DEWIN
EXTERNAL HB_LANG_EL
EXTERNAL HB_LANG_ELWIN
EXTERNAL HB_LANG_EN
EXTERNAL HB_LANG_EO
EXTERNAL HB_LANG_ES
EXTERNAL HB_LANG_ESWIN
EXTERNAL HB_LANG_EU
EXTERNAL HB_LANG_FR
EXTERNAL HB_LANG_GL
EXTERNAL HB_LANG_HE862
EXTERNAL HB_LANG_HEWIN
EXTERNAL HB_LANG_HR852
EXTERNAL HB_LANG_HRISO
EXTERNAL HB_LANG_HU852
EXTERNAL HB_LANG_HUCWI
EXTERNAL HB_LANG_HUISO
EXTERNAL HB_LANG_HUWIN
EXTERNAL HB_LANG_ID
EXTERNAL HB_LANG_IS850
EXTERNAL HB_LANG_IT
EXTERNAL HB_LANG_KO
EXTERNAL HB_LANG_NL
EXTERNAL HB_LANG_PL852
EXTERNAL HB_LANG_PLISO
EXTERNAL HB_LANG_PLMAZ
EXTERNAL HB_LANG_PLWIN
EXTERNAL HB_LANG_PT
EXTERNAL HB_LANG_RO
EXTERNAL HB_LANG_RU866
EXTERNAL HB_LANG_RUKOI8
EXTERNAL HB_LANG_RUWIN
EXTERNAL HB_LANG_SL437
EXTERNAL HB_LANG_SL852
EXTERNAL HB_LANG_SLISO
EXTERNAL HB_LANG_SLWIN
EXTERNAL HB_LANG_SR852
EXTERNAL HB_LANG_SRISO
EXTERNAL HB_LANG_SRWIN
EXTERNAL HB_LANG_TR857
EXTERNAL HB_LANG_TRWIN
EXTERNAL HB_LANG_ZHB5
EXTERNAL HB_LANG_ZHGB

EXTERNAL HB_AT
EXTERNAL HB_AINS
EXTERNAL HB_ADEL
EXTERNAL HB_ASCAN
EXTERNAL HB_RASCAN
EXTERNAL HB_ANSITOOEM
EXTERNAL HB_CLRAREA
EXTERNAL HB_COLORTON
EXTERNAL HB_NTOCOLOR
EXTERNAL HB_DISKSPACE
EXTERNAL HB_FCREATE
EXTERNAL HB_FSIZE
EXTERNAL HB_FEOF
EXTERNAL HB_FCOMMIT
EXTERNAL HB_FTEMPCREATE
EXTERNAL HB_GCALL
EXTERNAL HB_KEYPUT
EXTERNAL HB_KEYINS
EXTERNAL HB_OEMTOANSI
EXTERNAL HB_OSERROR
EXTERNAL HB_OSDRIVESEPARATOR
EXTERNAL HB_OSPATHDELIMITERS
EXTERNAL HB_OSPATHLISTSEPARATOR
EXTERNAL HB_OSPATHSEPARATOR
EXTERNAL HB_OSFILEMASK
EXTERNAL HB_SETKEYARRAY
EXTERNAL HB_SETKEYCHECK
EXTERNAL HB_SETKEYGET
EXTERNAL HB_SETKEYSAVE
EXTERNAL HB_SETLASTKEY
EXTERNAL HB_SHADOW
EXTERNAL HB_TRACELEVEL
EXTERNAL HB_TRACESTATE
EXTERNAL HB_TRACESTRING
EXTERNAL HB_CSTR
EXTERNAL HB_VALTOEXP
EXTERNAL HB_VALTOSTR
EXTERNAL HB_STRTOEXP
EXTERNAL HB_TOKENCOUNT
EXTERNAL HB_TOKENGET
EXTERNAL HB_TOKENPTR
EXTERNAL HB_ATOKENS
EXTERNAL HB_STRSHRINK
EXTERNAL HB_MEMOWRIT

EXTERNAL HB_HASH
EXTERNAL HB_HHASKEY
EXTERNAL HB_HPOS
EXTERNAL HB_HGET
EXTERNAL HB_HSET
EXTERNAL HB_HDEL
EXTERNAL HB_HKEYAT
EXTERNAL HB_HVALUEAT
EXTERNAL HB_HPAIRAT
EXTERNAL HB_HDELAT
EXTERNAL HB_HKEYS
EXTERNAL HB_HVALUES
EXTERNAL HB_HFILL
EXTERNAL HB_HCLONE
EXTERNAL HB_HCOPY
EXTERNAL HB_HMERGE
EXTERNAL HB_HEVAL
EXTERNAL HB_HSCAN
EXTERNAL HB_HCASEMATCH
EXTERNAL HB_HAUTOADD
EXTERNAL HB_HALLOCATE
EXTERNAL HB_HDEFAULT
EXTERNAL HB_HSETAUTOADD
EXTERNAL HB_HSETCASEMATCH

EXTERNAL HB_REGEXCOMP
EXTERNAL HB_ISREGEX
EXTERNAL HB_ATX
EXTERNAL HB_REGEX
EXTERNAL HB_REGEXHAS
EXTERNAL HB_REGEXLIKE
EXTERNAL HB_REGEXMATCH
EXTERNAL HB_REGEXSPLIT
EXTERNAL HB_REGEXATX
EXTERNAL HB_REGEXALL

#ifndef __PLATFORM__DOS
EXTERNAL HB_INETINIT
EXTERNAL HB_INETCLEANUP
EXTERNAL HB_INETCREATE
EXTERNAL HB_INETCLOSE
EXTERNAL HB_INETFD
EXTERNAL HB_INETSTATUS
EXTERNAL HB_INETERRORCODE
EXTERNAL HB_INETERRORDESC
EXTERNAL HB_INETCLEARERROR
EXTERNAL HB_INETCOUNT
EXTERNAL HB_INETADDRESS
EXTERNAL HB_INETPORT
EXTERNAL HB_INETTIMEOUT
EXTERNAL HB_INETCLEARTIMEOUT
EXTERNAL HB_INETTIMELIMIT
EXTERNAL HB_INETCLEARTIMELIMIT
EXTERNAL HB_INETPERIODCALLBACK
EXTERNAL HB_INETCLEARPERIODCALLBACK
EXTERNAL HB_INETRECV
EXTERNAL HB_INETRECVALL
EXTERNAL HB_INETRECVLINE
EXTERNAL HB_INETRECVENDBLOCK
EXTERNAL HB_INETDATAREADY
EXTERNAL HB_INETSEND
EXTERNAL HB_INETSENDALL
EXTERNAL HB_INETGETHOSTS
EXTERNAL HB_INETGETALIAS
EXTERNAL HB_INETSERVER
EXTERNAL HB_INETACCEPT
EXTERNAL HB_INETCONNECT
EXTERNAL HB_INETCONNECTIP
EXTERNAL HB_INETDGRAMBIND
EXTERNAL HB_INETDGRAM
EXTERNAL HB_INETDGRAMSEND
EXTERNAL HB_INETDGRAMRECV
EXTERNAL HB_INETCRLF
EXTERNAL HB_INETISSOCKET
EXTERNAL HB_INETGETSNDBUFSIZE
EXTERNAL HB_INETGETRCVBUFSIZE
EXTERNAL HB_INETSETSNDBUFSIZE
EXTERNAL HB_INETSETRCVBUFSIZE

#endif /* __PLATFORM__DOS */

EXTERNAL HB_ZLIBVERSION
EXTERNAL HB_ZCOMPRESS
EXTERNAL HB_ZCOMPRESSBOUND
EXTERNAL HB_ZUNCOMPRESS
EXTERNAL HB_ZUNCOMPRESSLEN
EXTERNAL HB_GZOPEN
EXTERNAL HB_GZDOPEN
EXTERNAL HB_GZCLOSE
EXTERNAL HB_GZSETPARAMS
EXTERNAL HB_GZREAD
EXTERNAL HB_GZWRITE
EXTERNAL HB_GZGETS
EXTERNAL HB_GZPUTS
EXTERNAL HB_GZGETC
EXTERNAL HB_GZUNGETC
EXTERNAL HB_GZFLUSH
EXTERNAL HB_GZSEEK
EXTERNAL HB_GZREWIND
EXTERNAL HB_GZTELL
EXTERNAL HB_GZEOF
EXTERNAL HB_GZDIRECT
EXTERNAL HB_GZERROR
EXTERNAL HB_GZCLEARERR

EXTERNAL HBCLASS
EXTERNAL HBOBJECT
EXTERNAL HBSCALAR
#ifdef HB_REQUEST_SCALAR
EXTERNAL HBARRAY
EXTERNAL HBBLOCK
EXTERNAL HBCHARACTER
EXTERNAL HBDATE
EXTERNAL HBLOGICAL
EXTERNAL HBNIL
EXTERNAL HBNUMERIC
#endif /* HB_REQUEST_SCALAR */

/* FlagShip extension */

#ifdef HB_COMPAT_FLAGSHIP

EXTERNAL STRPEEK
EXTERNAL STRPOKE
EXTERNAL SECONDSCPU

#endif /* HB_COMPAT_FLAGSHIP */

#endif /* HB_EXTERN_CH_ */
c:\harbour\include\hbgetcmt.ch
/*
 * $Id: hbgetcmt.ch 7155 2007-04-14 10:41:54Z vszakats $
 */

/*
 * Harbour Project source code:
 * Header file for Clipper 5.3 Compatible Get Commands
 *
 * Copyright 2001 Luiz Rafael Culik 
 * www - http://www.harbour-project.org
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this software; see the file COPYING.  If not, write to
 * the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
 * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
 *
 * As a special exception, the Harbour Project gives permission for
 * additional uses of the text contained in its release of Harbour.
 *
 * The exception is that, if you link the Harbour libraries with other
 * files to produce an executable, this does not by itself cause the
 * resulting executable to be covered by the GNU General Public License.
 * Your use of that executable is in no way restricted on account of
 * linking the Harbour library code into it.
 *
 * This exception does not however invalidate any other reasons why
 * the executable file might be covered by the GNU General Public License.
 *
 * This exception applies only to the code released by the Harbour
 * Project under the name Harbour.  If you copy code from other
 * Harbour Project or Free Software Foundation releases into a copy of
 * Harbour, as the General Public License permits, the exception does
 * not apply to the code that you add in this way.  To avoid misleading
 * anyone as to the status of such modified files, you must delete
 * this exception notice from them.
 *
 * If you write modifications of your own for Harbour, it is your choice
 * whether to permit this exception to apply to your modifications.
 * If you do not wish that, delete this exception notice.
 *
 */

#ifndef HB_GETCMT_CH_
#define HB_GETCMT_CH_

#ifdef HB_COMPAT_C53

#command @ , 
] ; [MESSAGE ] ; [COLOR ] ; [FOCUS ] ; [STATE ] ; [STYLE