
Imports System
Imports System.Text
Imports System.Runtime.InteropServices


Public Class Lingo

    '*****************************************************************************/
    '*
    '*    LINGO Version 18.0/x64
    '*
    '*    LINGO DLL definitions header for VB.NET
    '*
    '*    Copyright (c) 2011-2018
    '*
    '*    LINDO Systems, Inc.            312.988.7422
    '*    1415 North Dayton St.          info@lindo.com
    '*    Chicago, IL 60642              http://www.lindo.com
    '*
    '*    Last Updated: 22 May 2018
    '*
    '*****************************************************************************/

    Public Enum LSerrorCodeLng
      LSERR_NO_ERROR_LNG = 0
      LSERR_OUT_OF_MEMORY_LNG = 1
      LSERR_UNABLE_TO_OPEN_LOG_FILE_LNG = 2
      LSERR_INVALID_NULL_POINTER_LNG = 3
      LSERR_INVALID_INPUT_LNG = 4
      LSERR_INFO_NOT_AVAILABLE_LNG = 5
      LSERR_UNABLE_TO_COMPLETE_TASK_LNG = 6
      LSERR_INVALID_LICENSE_KEY_LNG = 7
      LSERR_INVALID_VARIABLE_NAME_LNG = 8
      LSERR_JNI_CALLBACK_NOT_FOUND = 1000
    End Enum

    Public Enum LScallbackInfoCodeLng
        LS_IINFO_VARIABLES_LNG = 0
        LS_IINFO_VARIABLES_INTEGER_LNG = 1
        LS_IINFO_VARIABLES_NONLINEAR_LNG = 2
        LS_IINFO_CONSTRAINTS_LNG = 3
        LS_IINFO_CONSTRAINTS_NONLINEAR_LNG = 4
        LS_IINFO_NONZEROS_LNG = 5
        LS_IINFO_NONZEROS_NONLINEAR_LNG = 6
        LS_IINFO_ITERATIONS_LNG = 7
        LS_IINFO_BRANCHES_LNG = 8
        LS_DINFO_SUMINF_LNG = 9
        LS_DINFO_OBJECTIVE_LNG = 10
        LS_DINFO_MIP_BOUND_LNG = 11
        LS_DINFO_MIP_BEST_OBJECTIVE_LNG = 12
    End Enum

    Public Enum LSstatusCodeLng
        LS_STATUS_GLOBAL_LNG = 0
        LS_STATUS_INFEASIBLE_LNG = 1
        LS_STATUS_UNBOUNDED_LNG = 2
        LS_STATUS_UNDETERMINED_LNG = 3
        LS_STATUS_FEASIBLE_LNG = 4
        LS_STATUS_INFORUNB_LNG = 5
        LS_STATUS_LOCAL_LNG = 6
        LS_STATUS_LOCAL_INFEASIBLE_LNG = 7
        LS_STATUS_CUTOFF_LNG = 8
        LS_STATUS_NUMERIC_ERROR_LNG = 9
    End Enum

    Public Declare Function LSclearPointersLng _
    Lib "LINGD64_18.DLL" (ByVal pModel As IntPtr) As Integer

    Public Declare Function LScloseLogFileLng _
    Lib "LINGD64_18.DLL" (ByVal pModel As IntPtr) As Integer

    Public Declare Function LScreateEnvLng _
    Lib "LINGD64_18.DLL" () As IntPtr

    Public Declare Function LScreateEnvLicenseLng _
    Lib "LINGD64_18.DLL" (ByVal cLicenseString As String, _
    ByRef pnError As Integer) As IntPtr

    Public Declare Function LSdeleteEnvLng _
    Lib "LINGD64_18.DLL" (ByVal pModel As IntPtr) As Integer

    Public Declare Function LSexecuteScriptLng _
    Lib "LINGD64_18.DLL" (ByVal pModel As IntPtr, ByVal cScript As String) As Integer

    Public Declare Function LSgetCallbackInfoLng _
    Lib "LINGD64_18.DLL" Alias "LSgetCallbackInfoLng" (ByVal pModel As IntPtr, _
    ByVal nObject As Integer, ByRef nResult As Integer) As Integer

    Public Declare Function LSgetCallbackInfoLng _
    Lib "LINGD64_18.DLL" Alias "LSgetCallbackInfoLng" (ByVal pModel As IntPtr, _
    ByVal nObject As Integer, ByRef dResult As Double) As Integer

    Public Declare Function LSgetCallbackVarPrimalLng _
    Lib "LINGD64_18.DLL" (ByVal pModel As IntPtr, _
    ByVal cVarName As String, ByRef dResult As Double) As Integer

    Public Declare Function LSopenLogFileLng _
    Lib "LINGD64_18.DLL" (ByVal pModel As IntPtr, ByVal cFname As String) As Integer

    Public Declare Function LSsetCallbackErrorLng _
    Lib "LINGD64_18.DLL" (ByVal pModel As IntPtr, ByVal pcbf As typCallbackError, _
    ByVal pUserData As IntPtr) As Integer

    Public Declare Function LSsetCallbackErrorLng _
    Lib "LINGD64_18.DLL" (ByVal pModel As IntPtr, ByVal pcbf As typCallbackError, _
    ByVal pUserData As Object) As Integer

    Public Declare Function LSsetCallbackSolverLng _
    Lib "LINGD64_18.DLL" (ByVal pModel As IntPtr, ByVal pcbf As typCallbackSolver, _
    ByVal pUserData As IntPtr) As Integer

    Public Declare Function LSsetCallbackSolverLng _
    Lib "LINGD64_18.DLL" (ByVal pModel As IntPtr, ByVal pcbf As typCallbackSolver, _
    ByVal pUserData As Object) As Integer

    Public Declare Function LSsetPointerLng _
    Lib "LINGD64_18.DLL" Alias "LSsetPointerLng" (ByVal pModel As IntPtr, _
    ByVal pdObject As IntPtr, _
    ByRef nPointersNow As Integer) As Integer

    Public Delegate Function typCallbackSolver(ByVal pModel As IntPtr, _
    ByVal pReserved As IntPtr, ByVal pMyData As IntPtr) As Integer

    Public Delegate Function typCallbackError(ByVal pModel As IntPtr, _
    ByVal pMyData As IntPtr, ByVal nErrorCode As Integer, _
    ByVal cErrorMessage As String) As Integer

End Class
