'Open
Declare Function AryOpen Lib "AA-Array.dll" (ByVal aryName_s As String, ByVal userTypeDefinition_s As String, ByVal mode As Integer, ByVal password_s As String) As Integer
Declare Function AryOpenInteger Lib "AA-Array.dll" (ByVal aryName_s As String, ByVal mode As Integer, ByVal password_s As String) As Integer
Declare Function AryOpenLong Lib "AA-Array.dll" (ByVal aryName_s As String, ByVal mode As Integer, ByVal password_s As String) As Integer
Declare Function AryOpenSingle Lib "AA-Array.dll" (ByVal aryName_s As String, ByVal mode As Integer, ByVal password_s As String) As Integer
Declare Function AryOpenDouble Lib "AA-Array.dll" (ByVal aryName_s As String, ByVal mode As Integer, ByVal password_s As String) As Integer
Declare Function AryOpenCurrency Lib "AA-Array.dll" (ByVal aryName_s As String, ByVal mode As Integer, ByVal password_s As String) As Integer
Declare Function AryOpenString Lib "AA-Array.dll" (ByVal aryName_s As String, ByVal mode As Integer, ByVal password_s As String) As Integer

'Close
Declare Function AryClose Lib "AA-Array.dll" (ByVal ary_h As Integer) As Integer
Declare Sub AryAbort Lib "AA-Array.dll" (ByVal ary_h As Integer)

'Bounds
Declare Sub ArySetBounds Lib "AA-Array.dll" (ByVal ary_h As Integer, ByVal minElement As Long, ByVal maxElement As Long)
Declare Sub AryGetBounds Lib "AA-Array.dll" (ByVal ary_h As Integer, minElement As Long, maxElement As Long)
Declare Function AryCheckIndex Lib "AA-Array.dll" (ByVal ary_h As Integer, ByVal row_l As Long) As Integer

'Set Elements
Declare Sub ArySetElement Lib "AA-Array.dll" (ByVal ary_h As Integer, ByVal row_l As Long, value As Any)
Declare Sub ArySetInteger Lib "AA-Array.dll" Alias "ArySetElement" (ByVal ary_h As Integer, ByVal row_l As Long, value As Integer)
Declare Sub ArySetLong Lib "AA-Array.dll" Alias "ArySetElement" (ByVal ary_h As Integer, ByVal row_l As Long, value As Long)
Declare Sub ArySetSingle Lib "AA-Array.dll" Alias "ArySetElement" (ByVal ary_h As Integer, ByVal row_l As Long, value As Single)
Declare Sub ArySetDouble Lib "AA-Array.dll" Alias "ArySetElement" (ByVal ary_h As Integer, ByVal row_l As Long, value As Double)
Declare Sub ArySetCurrency Lib "AA-Array.dll" Alias "ArySetElement" (ByVal ary_h As Integer, ByVal row_l As Long, value As Currency)
Declare Sub ArySetString Lib "AA-Array.dll" (ByVal ary_h As Integer, ByVal row_l As Long, value As String)

'Get Elements
Declare Sub AryGetElement Lib "AA-Array.dll" (ByVal ary_h As Integer, ByVal row_l As Long, value As Any)
Declare Sub AryGetInteger Lib "AA-Array.dll" Alias "AryGetElement" (ByVal ary_h As Integer, ByVal row_l As Long, value As Integer)
Declare Sub AryGetLong Lib "AA-Array.dll" Alias "AryGetElement" (ByVal ary_h As Integer, ByVal row_l As Long, value As Long)
Declare Sub AryGetSingle Lib "AA-Array.dll" Alias "AryGetElement" (ByVal ary_h As Integer, ByVal row_l As Long, value As Single)
Declare Sub AryGetDouble Lib "AA-Array.dll" Alias "AryGetElement" (ByVal ary_h As Integer, ByVal row_l As Long, value As Double)
Declare Sub AryGetCurrency Lib "AA-Array.dll" Alias "AryGetElement" (ByVal ary_h As Integer, ByVal row_l As Long, value As Currency)
Declare Sub AryGetString Lib "AA-Array.dll" (ByVal ary_h As Integer, ByVal row_l As Long, value As String)

'Deletes
Declare Sub AryDeleteElement Lib "AA-Array.dll" (ByVal ary_h As Integer, ByVal row_l As Long)
Declare Sub AryDeleteAll Lib "AA-Array.dll" (ByVal ary_h As Integer)

'Information
Declare Function AryIsEmptyElement Lib "AA-Array.dll" (ByVal ary_h As Integer, ByVal row_l As Long) As Integer
Declare Function AryGetStatus Lib "AA-Array.dll" (ByVal ary_h As Integer) As Integer
Declare Function AryVersion Lib "AA-Array.dll" (ByVal info_i As Integer) As String

'AryOpen Modes
Const AryUseExisting = 0
Const AryCreateNew = 1
Const AryReadOnly = 2
Const AryReadWrite = 0
Const AryNonPersistent = 4
Const AryPersistent = 0

'Error Codes
const AryErrNoFreeSlots = -1
const AryErrPersistentFileNotFound =  -2
const AryErrInvalidHandle = -3
const AryErrFileHeaderSize = -4
const AryErrMemAllowExtendedArray = -5
const ArrErrCreatePersistentFile = -6
const ArrErrBoundsError = -7
const ArrErrInvalidUserType = -8
const ArrErrElementNotAllowcated = -9
const ArrErrUserTypesMisMatch = -10

