' vxBase Global Constants
' -----------------------
Global Const BROWSE_CLOSED = -1
Global Const BROWSE_EDIT = -2
Global Const BROWSE_ADD = -3
Global Const BROWSE_DELETE = -4
Global Const BROWSE_ERROR = -5
Global Const BROWSE_USER = -6

' vxBase Color References for user tables
' ---------------------------------------
Global Const VX_RED = &HFF
Global Const VX_BLUE = &HFF0000
Global Const VX_GRAY = &HC0C0C0
Global Const VX_WHITE = &HFFFFFF

' vxBase Control style modes
' --------------------------
Global Const VX_RAISE = 0
Global Const VX_RECESS = 1
Global Const VX_CREASE = 2
Global Const VX_FLAT = 3

' vxBase Table Field Types
' ------------------------
Global Const VX_FIELD = 0
Global Const VX_EXPR = 1

' browse case types
' -----------------
Global Const VX_UPPER = 0
Global Const VX_LOWER = 1

' vxCtlFormat Types
' (includes VX_UPPER AS DEFINED ABOVE)
' ------------------------------------
Global Const VX_CHAR = 1
Global Const VX_ALPHA = 2
Global Const VX_NUM = 3
Global Const VX_DATE = 4
Global Const VX_PASSWORD = 5

' vxBase String Return Types
' --------------------------
Global Const VX_VBSTRING = 0
Global Const VX_ASCIIZ = 1

' vxBase Menu item identifiers
' ----------------------------
Global Const VX_SEPBAR = 2
Global Const VX_MENUHEAD = 1
Global Const VX_RETURN = 0

' Country (for vxSetDate) and language identifiers
' ------------------------------------------------
Global Const VX_ENGLISH = 0
Global Const VX_AMERICAN = 0
Global Const VX_ANSI = 1
Global Const VX_BRITISH = 2
Global Const VX_FRENCH = 3
Global Const VX_GERMAN = 4
Global Const VX_ITALIAN = 5
Global Const VX_DUTCH = 6
Global Const VX_SPANISH = 7

' directions for locate
' ---------------------
Global Const VX_FORWARD = 0
Global Const VX_BACKWARD = 1

' font weights for vxBrowseSetup
' ------------------------------
Global Const VX_DONTCARE = 0
Global Const VX_THIN = 100
Global Const VX_EXTRALIGHT = 200
Global Const VX_LIGHT = 300
Global Const VX_NORMAL = 400
Global Const VX_MEDIUM = 500
Global Const VX_SEMIBOLD = 600
Global Const VX_BOLD = 700
Global Const VX_EXTRABOLD = 800
Global Const VX_HEAVY = 900

' vxCtlBrowseMsg Message values
' -----------------------------
Global Const VXB_REFRESH = 0
Global Const VXB_FILTERDLG = 1
Global Const VXB_FILTERPRG = 2
Global Const VXB_GETCURRENTREC = 3
Global Const VXB_GETTOPREC = 4
Global Const VXB_STATS = 5
Global Const VXB_CASE = 6
Global Const VXB_SEARCHDLG = 7
Global Const VXB_SEARCHPRG = 8
Global Const VXB_SEARCHAGAIN = 9
Global Const VXB_SEEK = 10
Global Const VXB_CLOSE = 11


' vxBase CALLed Sub Procedures
' ----------------------------
Declare Sub vxBrowse Lib "vxbase.dll" (ByVal Hwnd%, ByVal DbfArea%, ByVal NtxArea%, ByVal EditMode%, ByVal AllowFilter%, ByVal EditMenu%, ByVal StartRec&, ByVal Caption$, RetVal&)
Declare Sub vxBrowseCase Lib "vxbase.dll" (ByVal DefCase As Integer)
Declare Sub vxBrowsePos Lib "vxbase.dll" (ByVal StartX As Integer, ByVal StartY As Integer, ByVal xWidth As Integer, ByVal yHeight As Integer)
Declare Sub vxBrowseSetup Lib "vxbase.dll" (ByVal Menus%, ByVal PrintMenu%, ByVal QCol%, ByVal V3D%, ByVal FontName$, ByVal FontSize%, ByVal Weight%, ByVal Italic%, ByVal Hdr%, ByVal MinMax%, ByVal Thresh%)
Declare Sub vxCollate Lib "vxbase.dll" (NewSequence As Integer)
Declare Sub vxCtlGrayReset Lib "vxbase.dll" ()
Declare Sub vxCtlGraySet Lib "vxbase.dll" ()
Declare Sub vxCtlLength Lib "vxbase.dll" (ByVal FieldName As String)
Declare Sub vxCtlPenWidth Lib "vxbase.dll" (ByVal PenWidth As Integer)
Declare Sub vxCtlStyle Lib "vxbase.dll" (CtlName As Any, ByVal Mode As Integer)
Declare Sub vxDouble Lib "vxbase.dll" (ByVal FieldName As String, DblAmount As Double)
Declare Sub vxExactOff Lib "vxbase.dll" ()
Declare Sub vxExactOn Lib "vxbase.dll" ()
Declare Sub vxFilter Lib "vxbase.dll" (ByVal FilterString As String)
Declare Sub vxFilterReset Lib "vxbase.dll" ()
Declare Sub vxFormFrame Lib "vxbase.dll" (ByVal Hwnd As Integer)
Declare Sub vxInit Lib "vxbase.dll" ()
Declare Sub vxJoin Lib "vxbase.dll" (ByVal DbfArea As Integer, ByVal NtxArea As Integer, ByVal JoinExpr As String, ByVal KeyType As Integer, ByVal JoinTitle As String)
Declare Sub vxJoinNoAuto Lib "vxbase.dll" ()
Declare Sub vxJoinReset Lib "vxbase.dll" ()
Declare Sub vxMemoEdit Lib "vxbase.dll" (ByVal Hwnd As Integer, ByVal FieldName As String)
Declare Sub vxMenuDeclare Lib "vxbase.dll" (ByVal NumItems As Integer)
Declare Sub vxMenuItem Lib "vxbase.dll" (ByVal MenuIndex As Integer, ByVal MenuLev As Integer, ByVal MenuString As String, ByVal MenuType As Integer)
Declare Sub vxReplDate Lib "vxbase.dll" (ByVal FieldName As String, ByVal DateString As String)
Declare Sub vxReplDateString Lib "vxbase.dll" (ByVal FieldName As String, ByVal DateString As String)
Declare Sub vxReplDouble Lib "vxbase.dll" (ByVal FieldName As String, DblAmount As Double)
Declare Sub vxReplInteger Lib "vxbase.dll" (ByVal FieldName As String, IntAmount As Integer)
Declare Sub vxReplLogical Lib "vxbase.dll" (ByVal FieldName As String, ByVal BoolVal As Integer)
Declare Sub vxReplLong Lib "vxbase.dll" (ByVal FieldName As String, LongInt As Long)
Declare Sub vxReplRecord Lib "vxbase.dll" (RecStruct As Any)
Declare Sub vxReplString Lib "vxbase.dll" (ByVal FieldName As String, ByVal FieldString As String)
Declare Sub vxSetAnsi Lib "vxbase.dll" (ByVal OnOrOff As Integer)
Declare Sub vxSetCollate Lib "vxbase.dll" (ByVal OnOrOff As Integer)
Declare Sub vxSetDate Lib "vxbase.dll" (ByVal DateType As Integer)
Declare Sub vxSetErrorCaption Lib "vxbase.dll" (ByVal CaptionString As String)
Declare Sub vxSetErrorMethod Lib "vxbase.dll" (ByVal VbOrVx As Integer)
Declare Sub vxSetLanguage Lib "vxbase.dll" (ByVal LangType As Integer)
Declare Sub vxSetLocks Lib "vxbase.dll" (ByVal OnOrOff As Integer)
Declare Sub vxSetMeters Lib "vxbase.dll" (ByVal OnOrOff As Integer)
Declare Sub vxSetString Lib "vxbase.dll" (ByVal StringType As Integer)
Declare Sub vxSetupPrinter Lib "vxbase.dll" (ByVal Hwnd As Integer)
Declare Sub vxSum Lib "vxbase.dll" (ByVal FieldName As String, DblAmount As Double)
Declare Sub vxTableDeclare Lib "vxbase.dll" (ByVal ColorRef&, BofExpr As Any, EofExpr As Any, ByVal Scope%, ByVal Quick%, ByVal Columns%) 
Declare Sub vxTableField Lib "vxbase.dll" (ByVal ColIndex As Integer, ByVal ColHead As String,  ByVal ColExpr As String, ByVal ColType As Integer)
Declare Sub vxTableFieldExt Lib "vxbase.dll" (ByVal ColIndex As Integer, ByVal ColHead As String,  ByVal ColExpr As String, ByVal ColType As Integer, ByVal ColWidth As Integer, ByVal DbfArea As Integer)
Declare Sub vxTableReset Lib "vxbase.dll" ()
Declare Sub vxWindowDereg Lib "vxbase.dll" (ByVal Hwnd As Integer)


' vxBase Functions
' ----------------
Declare Function vxAppendBlank Lib "vxbase.dll" () As Integer 
Declare Function vxAppendFrom Lib "vxbase.dll" (ByVal FromFile As String) As Integer
Declare Function vxAreaDbf Lib "vxbase.dll" (ByVal DbfName As String) As Integer
Declare Function vxAreaNtx Lib "vxbase.dll" (ByVal NtxName As String) As Integer
Declare Function vxBof Lib "vxbase.dll" () As Integer 
Declare Function vxBottom Lib "vxbase.dll" () As Integer 
Declare Function vxChar Lib "vxbase.dll" (ByVal FieldName As String) As String
Declare Function vxClose Lib "vxbase.dll" () As Integer 
Declare Function vxCloseAll Lib "vxbase.dll" () As Integer
Declare Function vxCloseNtx Lib "vxbase.dll" (ByVal NtxArea As Integer) As Integer
Declare Function vxCopy Lib "vxbase.dll" (ByVal NewDbfName As String) As Integer
Declare Function vxCopyStruc Lib "vxbase.dll" (ByVal NewDbfName As String) As Integer
Declare Function vxCreateNtx Lib "vxbase.dll" (ByVal NewNtxName As String, ByVal NtxExpr As String) As Integer
Declare Function vxCtlBrowse Lib "vxbase.dll" (ByVal ControlHwnd%, ByVal DbfArea%, ByVal NtxArea%, ByVal EditMode%, ByVal StartRec&, ByVal MemoHwnd%, ByVal MemoField$) As Integer 
Declare Function vxCtlBrowseMsg Lib "vxbase.dll" (ByVal Hwnd As Integer, ByVal Msg As Integer, Param As Any) As Long
Declare Function vxCtlFormat Lib "vxbase.dll" (ByVal TextLen As Integer, ByVal Picture As Integer, ByVal Decimals As Integer) As Integer
Declare Function vxCtlHwnd Lib "vxbase.dll" (ControlName As Any) As Integer
Declare Function vxDateFormat Lib "vxbase.dll" (ByVal DateField As String) As String
Declare Function vxDateString Lib "vxbase.dll" (ByVal DateField As String, ByVal DateType As Integer) As String
Declare Function vxDbfCurrent Lib "vxbase.dll" () As Integer
Declare Function vxDbfDate Lib "vxbase.dll" () As String
Declare Function vxDbfName Lib "vxbase.dll" () As String
Declare Function vxDeallocate Lib "vxbase.dll" () As Integer
Declare Function vxDecimals Lib "vxbase.dll" (ByVal FieldName As String) As Integer
Declare Function vxDeleted Lib "vxbase.dll" () As Integer
Declare Function vxDeleteRange Lib "vxbase.dll" (ByVal StartRec As Long, ByVal EndRec As Long) As Integer
Declare Function vxDeleteRec Lib "vxbase.dll" () As Integer
Declare Function vxDescend Lib "vxbase.dll" (ByVal KeyString As String) As String
Declare Function vxEmpty Lib "vxbase.dll" (ByVal FieldName As String) As Integer
Declare Function vxEof Lib "vxbase.dll" () As Integer
Declare Function vxEval Lib "vxbase.dll" (ByVal XBaseExpr As String) As Integer
Declare Function vxEvalDouble Lib "vxbase.dll" (ByVal XBaseExpr As String, DblAmount As Double) As Integer
Declare Function vxEvalLogical Lib "vxbase.dll" (ByVal XBaseExpr As String, ByVal TrueFalse As String) As Integer
Declare Function vxEvalString Lib "vxbase.dll" (ByVal XBaseExpr As String, ByVal StringVal As String) As Integer
Declare Function vxField Lib "vxbase.dll" (ByVal FieldName As String) As String
Declare Function vxFieldCount Lib "vxbase.dll" () As Integer
Declare Function vxFieldName Lib "vxbase.dll" (ByVal FieldNumber As Integer) As String
Declare Function vxFieldSize Lib "vxbase.dll" (ByVal FieldName As String) As Integer
Declare Function vxFieldTrim Lib "vxbase.dll" (ByVal FieldName As String) As String
Declare Function vxFieldType Lib "vxbase.dll" (ByVal FieldName As String) As String
Declare Function vxFile Lib "vxbase.dll" (ByVal FileName As String) As Integer
Declare Function vxFound Lib "vxbase.dll" () As Integer
Declare Function vxGetVersion Lib "vxbase.dll" () As String
Declare Function vxGo Lib "vxbase.dll" (ByVal RecNum As Long) As Integer
Declare Function vxInteger Lib "vxbase.dll" (ByVal FieldName As String) As Integer
Declare Function vxIsMemo Lib "vxbase.dll" (ByVal MemoFieldName As String) As Integer
Declare Function vxIsRecLocked Lib "vxbase.dll" () As Integer
Declare Function vxLocate Lib "vxbase.dll" (ByVal XBaseExpr As String, ByVal Direction As Integer) As Long
Declare Function vxLocateAgain Lib "vxbase.dll" (ByVal Direction As Integer) As Long
Declare Function vxLockDbf Lib "vxbase.dll" () As Integer
Declare Function vxLocked Lib "vxbase.dll" () As Integer
Declare Function vxLockRecord Lib "vxbase.dll" () As Integer
Declare Function vxLong Lib "vxbase.dll" (ByVal FieldName As String) As Long
Declare Function vxMemoRead Lib "vxbase.dll" (Byval FieldName As String, ByVal LineWidth As Integer) As String
Declare Function vxNumRecs Lib "vxbase.dll" () As Long
Declare Function vxNtxCurrent Lib "vxbase.dll" () As Integer
Declare Function vxNtxDeselect Lib "vxbase.dll" () As Integer
Declare Function vxNtxExpr Lib "vxbase.dll" (ByVal NtxArea As Integer) As String
Declare Function vxNtxName Lib "vxbase.dll" (ByVal NtxArea As Integer) As String
Declare Function vxNtxRecNo Lib "vxbase.dll" () As Long
Declare Function vxNumRecs Lib "vxbase.dll" () As Long
Declare Function vxPack Lib "vxbase.dll" (ByVal Hwnd As Integer) As Integer
Declare Function vxPrinterDefault Lib "vxbase.dll" () As String
Declare Function vxPrinterEnum Lib "vxbase.dll" (ByVal PIndex As Integer) As String
Declare Function vxPrinterSelect Lib "vxbase.dll" (ByVal PrinterName As String) As Integer
Declare Function vxRecall Lib "vxbase.dll" () As Integer
Declare Function vxRecNo Lib "vxbase.dll" () As Long
Declare Function vxRecord Lib "vxbase.dll" (RecStruct As Any) As Integer
Declare Function vxRecSize Lib "vxbase.dll" () As Integer
Declare Function vxReindex Lib "vxbase.dll" () As Integer
Declare Function vxReplMemo Lib "vxbase.dll" (ByVal Fieldname As String, ByVal MemoString As String) As Integer
Declare Function vxSeek Lib "vxbase.dll" (ByVal SearchKey As String) As Integer
Declare Function vxSeekFast Lib "vxbase.dll" (ByVal SearchKey As String) As Integer
Declare Function vxSeekSoft Lib "vxbase.dll" (ByVal SearchKey As String) As Integer
Declare Function vxSelectDbf Lib "vxbase.dll" (ByVal DbfArea As Integer) As Integer
Declare Function vxSelectNtx Lib "vxbase.dll" (ByVal NtxArea As Integer) As Integer
Declare Function vxSetAlias Lib "vxbase.dll" (ByVal AliasName As String, ByVal DbfArea As Integer) As Integer
Declare Function vxSetHandles Lib "vxbase.dll" (ByVal NumHandles As Integer) As Integer
Declare Function vxSetRelation Lib "vxbase.dll" (ByVal ToDbfArea As Integer, ByVal KeyConstruct As String) As Integer
Declare Function vxSkip Lib "vxbase.dll" (ByVal NumRecords As Long) As Integer
Declare Function vxTestNtx Lib "vxbase.dll" (ByVal NtxArea As Integer) As Integer
Declare Function vxTop Lib "vxbase.dll" () As Integer 
Declare Function vxTrue Lib "vxbase.dll" (ByVal FieldName As String) As Integer
Declare Function vxUnlock Lib "vxbase.dll" () As Integer 
Declare Function vxUseDbf Lib "vxbase.dll" (ByVal DbfName As String) As Integer
Declare Function vxUseDbfRO Lib "vxbase.dll" (ByVal DbfName As String) As Integer
Declare Function vxUseNtx Lib "vxbase.dll" (ByVal NtxName As String) As Integer
Declare Function vxWrite Lib "vxbase.dll" () As Integer 
Declare Function vxWriteHdr Lib "vxbase.dll" () As Integer 
Declare Function vxZap Lib "vxbase.dll" () As Integer 


' ---------------------------------------
' File structure data type. Add more
' elements or delete unnecessary elements
' as required by the largest dbf creation
' in your application
' ---------------------------------------

Type FileStruc
   Fld01 As String * 16
   Fld02 As String * 16
   Fld03 As String * 16
   Fld04 As String * 16
   Fld05 As String * 16
   Fld06 As String * 16
   Fld07 As String * 16
   Fld08 As String * 16
   Fld09 As String * 16
   Fld10 As String * 16
   Fld11 As String * 16
   Fld12 As String * 16
   Fld13 As String * 16
   Fld14 As String * 16
   Fld15 As String * 16
   Fld16 As String * 16
   Fld17 As String * 16
   Fld18 As String * 16
   Fld19 As String * 16
   Fld20 As String * 16
   Fld21 As String * 16
   Fld22 As String * 16
   Fld23 As String * 16
   Fld24 As String * 16
   Fld25 As String * 16
   Fld26 As String * 16
   Fld27 As String * 16
   Fld28 As String * 16
   Fld29 As String * 16
   Fld30 As String * 16
   Fld31 As String * 16
   Fld32 As String * 16
End Type

' declare function that uses FileStruc type
' -----------------------------------------
Declare Function vxCreateDbf Lib "vxbase.dll" (ByVal NewDbfName As String, ByVal NumFields As Integer, FStructure as FileStruc) As Integer

' declarations for alternate error method
' ---------------------------------------
Type vxErrorStruc
   ErrorNum As Integer
   ErrorMsg As String * 80
   DbfArea As Integer
   NtxArea As Integer
   DbfName As String * 80
   NtxName As String * 80
   BadParm As String * 80
End Type

Declare Function vxErrorTest Lib "vxbase.dll" (ErrorStructure As vxErrorStruc) As Integer

Global vxError As vxErrorStruc