Attribute VB_Name = "ICubeApi"


    Public Const IC_SUCCESS = 0
    Public Const IC_ERROR = 1

    Public Const IC_IF_NOT_OPEN = -1
    Public Const IC_WRONG_PARAM = -2
    Public Const IC_OUT_OF_MEMORY = -3
    Public Const IC_ALREADY_DONE = -4
    Public Const IC_WRONG_CLOCK_VAL = -5
    Public Const IC_COM_LIB_INIT = -6
    Public Const IC_NOT_IF_STARTED = -7
    Public Const IC_WRONG_ROI_ID = -8
    Public Const IC_IF_NOT_ENABLED = -9
    Public Const IC_COLOR_CAM_ONLY = -10
    Public Const IC_DRIVER_VERSION = -11
    Public Const IC_D3D_INIT = -12
    Public Const IC_BAD_POINTER = -13
    Public Const IC_ERROR_FILE_SIZE = -14
    Public Const IC_RECONNECTION_ACTIVE = -15
    Public Const IC_USB_REQUEST_FAIL = -16		
    Public Const IC_RESOURCE_IN_USE = -17     
    Public Const IC_DEVICE_GONE	= -18		
    Public Const IC_DLL_MISMATCH = -19    
    Public Const IC_WRONG_FW_VERSION = -20		
    Public Const IC_NO_RGB_CALLBACK = -21		
    Public Const IC_NO_USB30_CAMERA = -22
    Public Const IC_ERR_FIX_RELATION = -23 		
    Public Const IC_CRC_CONFIG_DATA  = -24
    Public Const IC_CONFIG_DATA  = -25
    Public Const IC_ERR_START_PNP = -26
    Public Const IC_INVALID_CAM_TYPE = -27
    Public Const IC_NOT_IF_STREAMING = -28
    Public Const IC_USB_STARTUP = -29

    ' Video Mode definitions
    ' (used with: ICubeSDK_SetMode,ICubeSDK_GetMode)

    Public Const MODE_320x240 = 0
    Public Const MODE_640x480 = 1
    Public Const MODE_752x480 = 2
    Public Const MODE_800x600 = 3
    Public Const MODE_1024x768 = 4
    Public Const MODE_1280x1024 = 5
    Public Const MODE_1600x1200 = 6
    Public Const MODE_2048x1536 = 7
    Public Const MODE_2592x1944 = 8
    Public Const MODE_3840x2748 = 9

    ' BinSkip definitions
    ' (used with: ICubeSDK_SetBinSkip,ICubeSDK_GetBinSkip,ICubeSDK_GetBinSkipList)

    Public Const MODE_SKIP = 0
    Public Const MODE_BIN = 1
    Public Const BIN_SKIP_OFF = 0
    Public Const BIN_SKIP_2ND_PIXEL = 1
    Public Const BIN_SKIP_4TH_PIXEL = 2

    ' Parameter definitions
    ' (used with: ICubeSDK_SetCamParameter,ICubeSDK_GetCamParameter,
    ' ICubeSDK_GetCamParameterRange,ICubeSDK_GetParamAuto,ICubeSDK_SetParamAuto,
    ' ICubeSDK_SetParamAutoDef,ICubeSDK_SetParamOnePush)

    ' Measure field definitions
    ' (used with REG_MEASURE_FIELD_AE)

    Public Const MEASUREFIELD_100 = 2       ' 100% (full frame)
    Public Const MEASUREFIELD_60 = 1        ' 60%
    Public Const MEASUREFIELD_30 = 0        ' 30%

    ' Shutter definitions
    ' (used with REG_SHUTTER)
    
    Public Const SHUTTER_ROLLING = 0
    Public Const SHUTTER_GLOBAL_RESET = 1
    Public Const SHUTTER_GLOBAL = 2

    ' Parameter ON||OFF definitions

    Public Const OFF = 0
    Public Const ON_ = 1


    ' Trigger invert definitions
    ' (used with REG_TRIGGER_INVERT)
    
    Public Const FALLING_EDGE = 0
    Public Const RISING_EDGE = 1

    ' Software trigger mode definitions
    ' (used with REG_SW_TRIG_MODE)
    
    Public Const DELAYED_TRIGGER_RETURN = 0   ' camera checks for frame arrival (default),
                                        ' ICubeSDK_SetTrigger(..,TRIG_SW_DO) returns this status
    Public Const IMMEDIATE_TRIGGER_RETURN = 1 ' no camera check
    
    ' Data transmission definitions
    ' (used with REG_DATA_TRANSMISSION)

    Public Const IS_8BIT = 0         ' (default)
    Public Const IS_16BIT = 1
    
    ' Bayer Conversion definitions
    ' (used with REG_BAYER_CONVERSION)
    
    Public Const DE_BAYER_3x3 = 0
    Public Const DE_BAYER_5x5 = 1            ' (default)
    
    ' Gamma definitions
    ' (used with REG_GAMMA_MODE)
    
    Public Const GAMMA_MODE_DEFAULT = 2          ' (default)
    Public Const GAMMA_MODE_sRGB = 1
    Public Const GAMMA_MODE_ITU709 = 0            ' (HDTV)



    ' Graphic definitions 
    ' (used with REG_GRAPHIC_MODE)
	
    Public Const DISPLAY_GDI = 0
    Public Const DISPLAY_D3D = 1

    ' Camera parameters definitions

    Public Const REG_BRIGHTNESS = 1
    Public Const REG_CONTRAST = 2
    Public Const REG_GAMMA = 3
    Public Const REG_FLIPPED_V = 4              ' (ON||OFF)
    Public Const REG_FLIPPED_H = 5              ' (ON||OFF)
    Public Const REG_WHITE_BALANCE = 6          ' (one push)
    Public Const REG_EXPOSURE_TIME = 7
    Public Const REG_EXPOSURE_TARGET = 8        ' sets the target-value for the auto exposure algorithm
    Public Const REG_RED = 9
    Public Const REG_GREEN = 10
    Public Const REG_BLUE = 11
    Public Const REG_BLACKLEVEL = 12
    Public Const REG_GAIN = 13
    Public Const REG_COLOR = 14                 ' (ON||OFF) read: color || bw model
    Public Const REG_PLL = 15
    Public Const REG_STROBE_LENGHT = 16
    Public Const REG_STROBE_DELAY = 17
    Public Const REG_TRIGGER_DELAY = 18
    Public Const REG_SATURATION = 19            ' only for color models (if REG_COLOR_ENHANCE is ON)
    Public Const REG_COLOR_ENHANCE = 20         ' obsolet
    Public Const REG_TRIGGER_INVERT = 21        ' (FALLING_EDGE (default) || RISING_EDGE)
    Public Const REG_RECONNECTIONS = 22         ' get the value of usb reconnections
    Public Const REG_MEASURE_FIELD_AE = 23      ' measure field for auto exposure
    Public Const REG_AVI_STATE = 24             ' get the avi stream save status (ON||OFF)
    Public Const REG_FOCUS = 25
    Public Const REG_SHUTTER = 26
    Public Const REG_ROI_ID = 27                ' (4133CU/BU,4203CU/BU)
    Public Const REG_ROI_CYCLE = 28             ' (4133CU/BU,4203CU/BU) number of repetitions of the particular roi

    Public Const REG_DEFECT_COR = 43            ' (4133CU/BU,4203CU/BU) DefectPixelCorrection (ON||OFF); OFF(default)
    Public Const REG_SW_TRIG_MODE = 94
    Public Const REG_ROI_FPGA_ONE_FRAME = 96  ' (fpga board only) pseudo frame format (ON||OFF)
    Public Const REG_CALLBACK_BR_FRAMES = 97    ' Broken frames also triggering the callback function (ON||OFF); OFF(default)
    Public Const REG_FGPA_VBLANKING = 98      ' (fpga board only) output Frame blanking
    Public Const REG_FGPA_HBLANKING = 99      ' (fpga board only) output Frame blanking
    Public Const REG_FGPA_CLK_DIVIDER = 100   ' (fpga board only) output clock divider (ON||OFF)
    Public Const REG_FGPA_ON_BOARD = 101      ' check if camera has fpga board (ON||OFF)
    
    Public Const REG_SET_GPIO = 102           ' bit masked: XXXX X J3-7 J3-6 J3-5
    Public Const REG_GET_GPIO = 103           ' bit masked: XXXX X J3-7 J3-6 J3-5
    Public Const REG_SET_GPIO_MODE = 104      ' (0==Input || 1==Output),bit masked: XXXX X J3-7 J3-6 J3-5
    
    Public Const REG_MASK_ROI_ID = 105        ' roi_id masked in buffersize of callback
    
    Public Const REG_RED_OFFSET = 106         ' only for color models; RGB offset value
    Public Const REG_GREEN_OFFSET = 107       ' only for color models
    Public Const REG_BLUE_OFFSET = 108        ' only for color models
    
    Public Const REG_HUE = 109                ' only for color models; write: only when REG_COLOR_PROCCESSING enabled, read: always
    Public Const REG_COLOR_CORRECTION = 110   ' (ON||OFF) ColorCorrection matrix; OFF (default)
    Public Const REG_GAMMA_ENABLE = 111       ' (ON||OFF) en/disable gamma module to save CPU load; ON (default)
    Public Const REG_GAMMA_MODE = 112         ' only for color models ; write: only when REG_GAMMA_ENABLE enabled, read: always
    Public Const REG_INVERT_PIXEL = 113       ' (ON||OFF)  bw cams only
    Public Const REG_TNR = 115                ' (ON||OFF)  only for color models, temporal noise reduction
    Public Const REG_BAYER_CONVERSION = 116   ' only for color models; choose different debayering
    Public Const REG_COLOR_PROCESSING = 117   ' (ON||OFF) en/disable color proc module module to save CPU load;  ON (default)
    Public Const REG_USB_SPEED = 118          ' 0: usb port is high speed, 1: usb port is super speed capable (useful for super speed camera)
    Public Const REG_DEVICE_SPEED = 119       ' 0: camera is high speed, 1: camera is super speed capable
    Public Const REG_DATA_TRANSMISSION = 120  ' 0: 8 bit per pixel, 1: 16 bit per pixel in raw mode
    Public Const REG_SIGNIFICANT_BITS = 125   ' number of significant bits in pixel 
    Public Const REG_GRAPHIC_MODE = 126       ' GDI (default)|| D3D 
    Public Const REG_EDGE_ENHANCEMENT = 128 	' (ON||OFF) edge enhancement; OFF (default)
    Public Const REG_EDGE_ENHANCEMENT_GAIN = 129 ' 0-128 (default 64)
    Public Const REG_SENSOR_STROBE = 132      ' (4133CU/BU,4203CU/BU) sensor strobe (ON||OFF); OFF(default)

    Public Const REG_TRIG_TIMEOUT = 138	
    Public Const REG_PIPE_TIMEOUT_MODE = 139	
    Public Const REG_RESET_CAMERA = 140	      ' reset the camera
    Public Const REG_DISCONNECTIONS = 141     ' get the value of camera disconnections
    Public Const REG_XACT_RECOVER_MODE = 142  ' (superspeed camera only) recover transaction errors
    Public Const REG_RESET_TO_DEFAULT  = 143  ' reset all camera parameters to default values

    Public Const REG_SW_TRIG_WD_MODE = 146
    Public Const REG_AQU_FRAMERATE = 147      ' (2234CU/BU) get/set the framerate
    Public Const REG_SENSOR_STROBE_DELAY  = 148 ' (4133CU/BU,4203CU/BU) only	
    Public Const REG_SENSOR_OVERLAPPED  = 149   ' (4133CU/BU,4203CU/BU) only 
    Public Const REG_TRIG_DELAY_DIVIDER  = 150  ' (4133CU/BU,4203CU/BU) 


    ' Parameter definitions
    '(used with: ICubeSDK_GetCamParameterRange)

    Type PARAM_PROPERTY
         bEnabled As Long
         bAuto As Long
         bOnePush As Long
         nDef As Long
         nMin As Long
         nMax As Long
    End Type
    
    Public Const DEFAULT_GAMMA = 64
    

    ' Parameter definitions (float value)
    ' (used with: ICubeSDK_GetExposureRange)
    ' values in [msec]

    Type PARAM_PROPERTY_f
         bEnabled As Long
         bAuto As Long
         bOnePush As Long
         nDef As Single
         nMin As Single
         nMax As Single
    End Type

    ' Roi definitions
    ' (used with: REG_ROI_ID)
    
    ' ROI ID: (4133CU/BU)
    ' SIMR: Single Integration Multiple Roi  (4133CU/BU only)
    ' 1, 2 or 4 areas of interest to be acquired within the same integrated image
    ' MIMR: Multible Integration Multiple Roi (4133CU/BU only)
    '
    Public Const ROI_ID_1_2 = 0           ' SIMR (4133CU/BU only)
    Public Const ROI_ID_1_1 = 1           ' default mode for all models (1st roi)
    Public Const ROI_ID_2 = 2             ' MIMR additonal (4133CU/BU only)
    Public Const ROI_ID_3 = 3
    Public Const ROI_ID_4 = 4
    
    ' ROI ID: (all cameras with fpga board)
    
    Public Const ROI_ID_0 = 0             ' fpga input size
    Public Const ROI_ID_1 = 1             'fpga output size roi 1
    Public Const ROI_ID_2_ = 2
    Public Const ROI_ID_3_ = 3
    Public Const ROI_ID_4_ = 4
    Public Const ROI_ID_5 = 5
    
    ' ROI ID: (all cameras without fpga board,except 4133CU/BU)
    ' only one roi available (roi1)

    ' (used with: ICubeSDK_SetResolution, ICubeSDK_GetResolution)

    Type ROI_PROPERTY
         bEnabled As Long
         nXRes As Long
         nYRes As Long
         nXPos As Long
         nYPos As Long
    End Type

    ' Due to usb packet size, the Region of interest size has limitations.
    ' The horizontal and vertical Roi-size must be dividable by 4. 

    Public Const ROI_STEP_SIZE = 4

    ' (11000CU/BU only)
    ' Due to sensor limitations, 
    ' the horizontal and vertical Roi-size must be dividable by 8. 

    Public Const  ROI_STEP_SIZE_11000 = 8
    
    ' (used with: ICubeSDK_GetCamParameterRange)

    Type ROI_RANGE_PROPERTY
         nXMin As Long
         nXMax As Long
         nYMin As Long
         nYMax As Long
    End Type


    ' Trigger definitions
    ' (used with: ICubeSDK_SetTrigger, ICubeSDK_GetTrigger)

    Public Const TRIG_SW_START = 0      ' start software trigger
    Public Const TRIG_SW_DO = 1         ' do a software trigger pulse
    Public Const TRIG_HW_START = 2      ' start hardware trigger
    Public Const TRIG_STOP = 3          ' stop software || hardware trigger
    Public Const TRIG_SW_START_2 = 4    ' GRR mode (1500CU/BU,1300CU,NET3_11000BU/CU)
    Public Const TRIG_HW_START_2 = 5    ' GRR mode (1500CU/BU,1300CU,NET3_11000BU/CU)

    ' Versions definitions
    ' (used with: ICubeSDK_GetVersion)

    Public Const DLL_VERSION = 0        ' (NET_USB_CMO.dll)
    Public Const API_VERSION = 1        ' (ICubeSDK.dll.dll)

    ' Callback definitions
    ' (used with: ICubeSDK_SetCallback)

    Public Const CALLBACK_RAW = 0           ' 8bit/pixel data is received
                                            ' (if the camera is a color model data == raw bayer)
    Public Const CALLBACK_RGB = 1           ' 24bit/pixel data is received

    ' DisplayMode definitions
    ' (used with: ICubeSDK_SetDisplayMode)

    Public Const DISPLAY_NORMAL = 0         ' frame is previewed in original size (default)
    Public Const DISPLAY_FIT_TO_WINDOW = 1  ' frame is previewed in resized mode (window size)
    Public Const DISPLAY_RECT = 2           ' frame is previewed in resized mode (rect size)

    Type DISP_PROPERTY
         left As Long
         top As Long
         right As Long
         bottom As Long
    End Type


    ' AVI stream definitions
    ' (used with: ICubeSDK_SaveAvi)

    Public Const AVI_DIB = 0    'currently, only this avi mode is supported

    ' Name length definitions
    ' (used with: ICubeSDK_GetName,ICubeSDK_GetSerialNum,ICubeSDK_GetVersion,ICubeSDK_GetFWVersion)
    
    Public Const NETCAM_NAME_LENGTH = 14      ' length of the name string
    Public Const NETCAM_SERIAL_LENGTH = 10    ' length of the serial number string
    Public Const NETCAM_VERSION_LENGTH = 9    ' length of the version string
    
    
    ' IsOpen definitions
    ' (used with: ICubeSDK_IsOpen)
    
    Public Const IS_CLOSED = 0
    Public Const IS_OPEN = 1
    
    ' IsStarted definitions
    ' (used with: ICubeSDK_IsStarted)
    
    Public Const IS_STOPPED = 0
    Public Const IS_STARTED = 1

    ' event definitions
    ' (used with: ICubeSDK_SetCallbackEx)

    Public Const EVENT_NEW_FRAME = 0		
    Public Const EVENT_DEV_DISCONNECTED	= 1	' a camera is disconnected	
    Public Const EVENT_DEV_RECONNECTED = 2	' a camera is reconnected		
    Public Const EVENT_USB_TRANSFER_FAILED = 3	' a usb transaction error occured during streaming

    ' pipe timeout mode definitions
    ' (used with: REG_PIPE_TIMEOUT_MODE)

    Public Const MODE_TIMEOUT_NONE = 0	
    Public Const MODE_TIMEOUT_ALL = 1
    Public Const MODE_TIMEOUT_PART = 2
    
    ' parameter set definitions
    '(used with: ICubeSDK_CamParameterSet())

    Public Const PARAMETER_LOAD_TO_FILE = 0      ' load from camera to .ini-file
    Public Const PARAMETER_LOAD_FROM_FILE = 1    ' load from .ini-file to camera 

    '//////////////////////////////////////////////////////////////////////////////'
    '//
    '//          Camera control functions
    '//
    '//////////////////////////////////////////////////////////////////////////////

    Public Declare Function ICubeSDK_Init Lib "ICubeSDK" () As Long

    Public Declare Function ICubeSDK_Open Lib "ICubeSDK" (ByVal nCamIndex As Long) As Long

    Public Declare Function ICubeSDK_Close Lib "ICubeSDK" (ByVal nCamIndex As Long) As Long

    Public Declare Function ICubeSDK_IsOpen Lib "ICubeSDK" (ByVal nCamIndex As Long) As Long
    
    Public Declare Function ICubeSDK_IsOpenEx Lib "ICubeSDK" (ByVal nCamIndex As Long) As Long

    Public Declare Function ICubeSDK_SetCallback Lib "ICubeSDK" (ByVal nCamIndex As Long, ByVal nMode As Long, _
                         ByVal pCallbackFunc As Long, ByRef pCBContext As Long) As Long
                         
    Public Declare Function ICubeSDK_SetCallbackEx Lib "ICubeSDK" (ByVal nCamIndex As Long, ByVal nMode As Long, _
                         ByVal pCallbackFuncEx As Long, ByRef pCBContext As Long) As Long
                     

    Public Declare Function ICubeSDK_Start Lib "ICubeSDK" (ByVal nCamIndex As Long, ByVal ImgHandle As Long, ByVal Preview As Long, ByVal Callback As Long) As Long

    Public Declare Function ICubeSDK_IsStarted Lib "ICubeSDK" (ByVal nCamIndex As Long) As Long

    Public Declare Function ICubeSDK_Stop Lib "ICubeSDK" (ByVal nCamIndex As Long) As Long

    Public Declare Function ICubeSDK_GetName Lib "ICubeSDK" (ByVal nCamIndex As Long, ByVal Name As String) As Long

    Public Declare Function ICubeSDK_GetBrokenFrames Lib "ICubeSDK" (ByVal nCamIndex As Long, ByRef pnFrames As Long) As Long

    Public Declare Function ICubeSDK_GetGoodFrames Lib "ICubeSDK" (ByVal nCamIndex As Long, ByRef pnFrames As Long) As Long

    Public Declare Function ICubeSDK_GetSize Lib "ICubeSDK" (ByVal nCamIndex As Long, ByRef pnXRes As Long, ByRef pnYRes As Long) As Long

    Public Declare Function ICubeSDK_SetDisplayMode Lib "ICubeSDK" (ByVal nCamIndex As Long, ByVal nMode As Long, ByVal roiprop As DISP_PROPERTY) As Long

    '//////////////////////////////////////////////////////////////////////////////'
    '//
    '//          Version functions
    '//
    '//////////////////////////////////////////////////////////////////////////////

    Public Declare Function ICubeSDK_GetVersion Lib "ICubeSDK" (ByVal nType As Long, ByVal pVersion As String) As Long

    Public Declare Function ICubeSDK_GetFWVersion Lib "ICubeSDK" (ByVal nCamIndex As Long, ByVal pVersion As String) As Long

    Public Declare Function ICubeSDK_GetSerialNum Lib "ICubeSDK" (ByVal nCamIndex As Long, ByVal pVersion As String) As Long

    '//////////////////////////////////////////////////////////////////////////////'
    '//
    '//          ROI functions
    '//
    '//////////////////////////////////////////////////////////////////////////////


    Public Declare Function ICubeSDK_SetResolution Lib "ICubeSDK" (ByVal nCamIndex As Long, ByRef roiprop As ROI_PROPERTY) As Long

    Public Declare Function ICubeSDK_GetResolution Lib "ICubeSDK" (ByVal nCamIndex As Long, ByRef roiprop As ROI_PROPERTY) As Long

    Public Declare Function ICubeSDK_GetResolutionRange Lib "ICubeSDK" (ByVal nCamIndex As Long, ByRef roiprop As ROI_RANGE_PROPERTY) As Long

    Public Declare Function ICubeSDK_SetResolutionParam Lib "ICubeSDK" (ByVal nCamIndex As Long, ByVal ImgHandle As Long, ByVal Preview As Long, ByVal Callback As Long) As Long

    '//////////////////////////////////////////////////////////////////////////////'
    '//
    '//          Mode functions
    '//
    '//////////////////////////////////////////////////////////////////////////////


    Public Declare Function ICubeSDK_SetMode Lib "ICubeSDK" (ByVal nCamIndex As Long, ByVal nMode As Long) As Long

    Public Declare Function ICubeSDK_GetMode Lib "ICubeSDK" (ByVal nCamIndex As Long, ByRef nMode As Long) As Long

    Public Declare Function ICubeSDK_GetModeList Lib "ICubeSDK" (ByVal nCamIndex As Long, ByRef pLength As Long, _
                             pList As Any) As Long

    '//////////////////////////////////////////////////////////////////////////////'
    '//
    '//          Bin Skip functions
    '//
    '//////////////////////////////////////////////////////////////////////////////

    Public Declare Function ICubeSDK_SetBinSkip Lib "ICubeSDK" (ByVal nCamIndex As Long, ByVal nParameter As Long, ByVal nMode As Long) As Long

    Public Declare Function ICubeSDK_GetBinSkip Lib "ICubeSDK" (ByVal nCamIndex As Long, ByRef nParameter As Long, ByVal nMode As Long) As Long

    Public Declare Function ICubeSDK_GetBinSkipList Lib "ICubeSDK" (ByVal nCamIndex As Long, ByVal nMode As Long, ByRef pLength As Long, _
                            ByVal pList As Any) As Long

    '//////////////////////////////////////////////////////////////////////////////'
    '//
    '//          Save functions
    '//
    '//////////////////////////////////////////////////////////////////////////////

    Public Declare Function ICubeSDK_SaveToFile Lib "ICubeSDK" (ByVal nCamIndex As Long, ByVal Name As String) As Long
    Public Declare Function ICubeSDK_SaveAvi Lib "ICubeSDK" (ByVal nCamIndex As Long, ByVal Name As String, ByVal nMode As Long, ByVal nTimeInSecs As Long) As Long

    '//////////////////////////////////////////////////////////////////////////////'
    '//
    '//          Trigger functions
    '//
    '//////////////////////////////////////////////////////////////////////////////

    Public Declare Function ICubeSDK_SetTrigger Lib "ICubeSDK" (ByVal nCamIndex As Long, ByVal nMode As Long) As Long

    Public Declare Function ICubeSDK_GetTrigger Lib "ICubeSDK" (ByVal nCamIndex As Long, ByRef nMode As Long) As Long

    '//////////////////////////////////////////////////////////////////////////////'
    '//
    '//          Parameter functions
    '//
    '//////////////////////////////////////////////////////////////////////////////

    Public Declare Function ICubeSDK_SetCamParameter Lib "ICubeSDK" (ByVal nCamIndex As Long, ByVal nType As Long, ByVal Value As Long) As Long

    Public Declare Function ICubeSDK_GetCamParameter Lib "ICubeSDK" (ByVal nCamIndex As Long, ByVal nType As Long, ByRef Value As Long) As Long

    Public Declare Function ICubeSDK_GetCamParameterRange Lib "ICubeSDK" (ByVal nCamIndex As Long, ByVal nType As Long, ByRef paramprop As PARAM_PROPERTY) As Long

    Public Declare Function ICubeSDK_CamParameterSet Lib "ICubeSDK" (ByVal nCamIndex As Long, ByVal nCmd As Long, ByVal Name As String) As Integer

    '//////////////////////////////////////////////////////////////////////////////'
    '//
    '//          Exposure functions
    '//          This functions can be used alternativly to parameter functions
    '//          for manipulating exposure only. Parameter Value is in milli-seconds.
    '//          Be aware that every change of clock
    '//          and width will lead to different exposure values
    '//
    '//////////////////////////////////////////////////////////////////////////////

    Public Declare Function ICubeSDK_SetExposure Lib "ICubeSDK" (ByVal nCamIndex As Long, ByVal Value As Single) As Long

    Public Declare Function ICubeSDK_GetExposure Lib "ICubeSDK" (ByVal nCamIndex As Long, ByRef Value As Single) As Long

    Public Declare Function ICubeSDK_GetExposureRange Lib "ICubeSDK" (ByVal nCamIndex As Long, ByRef paramprop As PARAM_PROPERTY_f) As Long

    '//////////////////////////////////////////////////////////////////////////////'
    '//
    '//       for Parameter functions and Exposure functions
    '//
    '//////////////////////////////////////////////////////////////////////////////

    Public Declare Function ICubeSDK_GetParamAuto Lib "ICubeSDK" (ByVal nCamIndex As Long, ByVal nType As Long, ByRef bAuto As Long) As Long

    Public Declare Function ICubeSDK_SetParamAuto Lib "ICubeSDK" (ByVal nCamIndex As Long, ByVal nType As Long, ByVal bAuto As Long) As Long

    Public Declare Function ICubeSDK_SetParamOnePush Lib "ICubeSDK" (ByVal nCamIndex As Long, ByVal nType As Long) As Long

    Public Declare Function ICubeSDK_SetParamAutoDef Lib "ICubeSDK" (ByVal nCamIndex As Long, ByVal nType As Long) As Long





