From d0ded5cd9bf5070a120bad58b5be21fe2ac6a4ff Mon Sep 17 00:00:00 2001
From: C3032 <C3032@BC3032>
Date: 星期六, 20 十二月 2025 16:41:09 +0800
Subject: [PATCH] test

---
 IDViewer_2D/IDViewerSDK.cs | 1030 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 1,030 insertions(+), 0 deletions(-)

diff --git a/IDViewer_2D/IDViewerSDK.cs b/IDViewer_2D/IDViewerSDK.cs
new file mode 100644
index 0000000..3ae38de
--- /dev/null
+++ b/IDViewer_2D/IDViewerSDK.cs
@@ -0,0 +1,1030 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Runtime.InteropServices;
+using static SmartScanner.IDViewerDefines;
+using System.Reflection;
+
+
+namespace SmartScanner
+{
+    class IDViewerSDK
+    {
+        public class Node
+        {
+            public IDViewerDefines.IDDeviceInfo data;
+            public Node next;
+        }
+
+        public struct LinkedList
+        {
+            public Node head;
+            [MarshalAs(UnmanagedType.SysInt)]
+            public int size;
+        }
+
+        /****************************************
+         IDImage
+        *****************************************/
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDImage_Init", CharSet = CharSet.Ansi)]
+        public static extern long IDImage_Init(ref IntPtr imagePtr);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDImage_Destroy", CharSet = CharSet.Ansi)]
+        public static extern void IDImage_Destroy(ref IntPtr imagePtr);             //
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDImage_Width", CharSet = CharSet.Ansi)]
+        public static extern long IDImage_Width(IntPtr imageHandle);                //鍥剧墖瀹藉害
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDImage_Height", CharSet = CharSet.Ansi)]
+        public static extern long IDImage_Height(IntPtr imageHandle);               //鍥剧墖楂樺害
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDImage_Step", CharSet = CharSet.Ansi)]
+        public static extern long IDImage_Step(IntPtr imageHandle);                 //姝ラ暱
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDImage_BitDepth", CharSet = CharSet.Auto)]
+        public static extern long IDImage_BitDepth(IntPtr imageHandle, ref IntPtr imageType);       //浣嶆繁
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDImage_Channels", CharSet = CharSet.Ansi)]
+        public static extern long IDImage_Channels(IntPtr imageHandle);             //閫氶亾鏁�
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDImage_ImageData", CharSet = CharSet.Ansi)]
+        public static extern IntPtr IDImage_ImageData(IntPtr imageHandle);          //娴呮嫹璐�
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDImage_SaveImage", CharSet = CharSet.Ansi)]
+        public static extern long IDImage_SaveImage(IntPtr imageHandle, string filePath, int compression);      //淇濆瓨
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDImage_SaveImageW", CharSet = CharSet.Unicode)]
+        public static extern long IDImage_SaveImageW(IntPtr imageHandle, string filePath, int compression);      //瀹藉瓧鑺備繚瀛�
+
+        /*
+        * VarPoint
+        */
+
+        // 鏋勯�犲嚱鏁板0鏄�
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "VarPoint_Create", CharSet = CharSet.Ansi)]
+        public static extern long VarPoint_Create(ref IntPtr handle);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "VarPoint_CreateWithValues", CharSet = CharSet.Ansi)]
+        public static extern long VarPoint_CreateWithValues(ref IntPtr handle, double xPoint, double yPoint);
+
+        // 鏋愭瀯鍑芥暟澹版槑
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "VarPoint_Destroy", CharSet = CharSet.Ansi)]
+        public static extern void VarPoint_Destroy(ref IntPtr handle);
+
+        /*
+        * VarFlags
+        */
+
+
+        // 鏋勯�犲嚱鏁�
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "VarFlags_Create", CharSet = CharSet.Ansi)]
+        public static extern long VarFlags_Create(ref IntPtr handle);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "VarFlags_CreateWithFlags", CharSet = CharSet.Ansi)]
+        public static extern long VarFlags_CreateWithFlags(ref IntPtr handle, uint flags);
+
+        // 鎴愬憳鍑芥暟
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "VarFlags_Set", CharSet = CharSet.Ansi)]
+        public static extern void VarFlags_Set(ref IntPtr handle, uint flag);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "VarFlags_Unset", CharSet = CharSet.Ansi)]
+        public static extern void VarFlags_Unset(ref IntPtr handle, uint flag);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "VarFlags_Reset", CharSet = CharSet.Ansi)]
+        public static extern void VarFlags_Reset(ref IntPtr handle);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "VarFlags_Check", CharSet = CharSet.Ansi)]
+        public static extern bool VarFlags_Check(ref IntPtr handle, uint flag);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "VarFlags_Get", CharSet = CharSet.Ansi)]
+        public static extern uint VarFlags_Get(ref IntPtr handle);
+
+        // 鏋愭瀯鍑芥暟
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "VarFlags_Destroy", CharSet = CharSet.Ansi)]
+        public static extern void VarFlags_Destroy(ref IntPtr handle);
+
+        /*
+        * IDVariable
+        */
+        // 鍒涘缓 IDVariable 瀹炰緥
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDVariab_CreateIDVariable", CharSet = CharSet.Ansi)]
+
+        public static extern IntPtr IDVariab_CreateIDVariable();
+
+        // 閲婃斁 IDVariable 瀹炰緥
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDVariab_DestroyIDVariable", CharSet = CharSet.Ansi)]
+        public static extern void IDVariab_DestroyIDVariable(IntPtr IDVariableHandle);
+        // 璁剧疆 double 鏁版嵁
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDVariab_SetDataDouble", CharSet = CharSet.Ansi)]
+        public static extern void IDVariab_SetDataDouble(IntPtr IDVariableHandle, double data, bool setInit);
+
+        // 璁剧疆 string 鏁版嵁
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDVariab_SetDataChar", CharSet = CharSet.Ansi)]
+        public static extern void IDVariab_SetDataChar(IntPtr IDVariableHandle, string data, bool setInit);
+        // 璁剧疆 string 鏁版嵁
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDVariab_SetDataString", CharSet = CharSet.Ansi)]
+        public static extern void IDVariab_SetDataString(IntPtr IDVariableHandle, string data, bool setInit);
+
+        // 璁剧疆 bool 鏁版嵁
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDVariab_SetDataBool", CharSet = CharSet.Ansi)]
+        public static extern void IDVariab_SetDataBool(IntPtr IDVariableHandle, bool data, bool setInit);
+        // 璁剧疆 uint 鏁版嵁
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDVariab_SetDataUnsignedInt", CharSet = CharSet.Ansi)]
+        public static extern void IDVariab_SetDataUnsignedInt(IntPtr IDVariableHandle, uint data, bool setInit = false);
+        // 璁剧疆 VarPoint 鏁版嵁
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDVariab_SetDataVarPoint", CharSet = CharSet.Ansi)]
+        public static extern void IDVariab_SetDataVarPoint(IntPtr IDVariableHandle, ref double data, bool setInit = false);
+        // 璁剧疆vector<double> data鏁版嵁
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDVariab_SetDataVectorDouble", CharSet = CharSet.Ansi)]
+        public static extern void IDVariab_SetDataVectorDouble(IntPtr IDVariableHandle, IntPtr data, int size, bool setInit = false);
+        // 璁剧疆vector<string> data 鏁版嵁
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDVariab_SetDataStringArray", CharSet = CharSet.Ansi)]
+
+        public static extern void IDVariab_SetDataStringArray(IntPtr IDVariableHandle, string[] data, int size, bool setInit = false);
+
+        // 灏唙ector<bool>杞崲
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDVariab_SetDataBoolVector", CharSet = CharSet.Ansi)]
+        public static extern void IDVariab_SetDataBoolVector(IntPtr IDVariableHandle, ref bool data, int size, bool setInit = false);
+
+        // 灏唙ector<bool>杞崲涓篊椋庢牸鐨勬帴鍙�
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDVariab_SetDataVarFlags", CharSet = CharSet.Ansi)]
+        public static extern void IDVariab_SetDataVarFlags(IntPtr IDVariableHandle, ref IntPtr handle, bool setInit = false);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDVariable_ToNumber", CharSet = CharSet.Ansi)]
+        public static extern double IDVariable_ToNumber(IntPtr IDVariableHandle);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDVariable_ToBool", CharSet = CharSet.Ansi)]
+        public static extern bool IDVariable_ToBool(IntPtr IDVariableHandle);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDVariable_ToFlags", CharSet = CharSet.Ansi)]
+        public static extern IntPtr IDVariable_ToFlags(IntPtr IDVariableHandle);
+
+        /*
+        * class  IDCodeParam
+        */
+        // 鏋勯�犲嚱鏁扮殑灏佽
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_Create", CharSet = CharSet.Ansi)]
+        public static extern IntPtr IDCodeParam_Create();
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_CreateCopy", CharSet = CharSet.Ansi)]
+        public static extern IntPtr IDCodeParam_CreateCopy(IntPtr IDCodeParamHandle);
+
+        // 浣跨敤涓嶅悓鍙傛暟鏋勯�犲嚱鏁扮殑灏佽
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_CreateFromQRCodeParam", CharSet = CharSet.Ansi)]
+        public static extern IntPtr IDCodeParam_CreateFromQRCodeParam(ref IDQRCodeParam qrCodeParam);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_CreateFromDMCodeParam", CharSet = CharSet.Ansi)]
+        public static extern IntPtr IDCodeParam_CreateFromDMCodeParam(ref IDDMCodeParam dmCodeParam);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_CreateFromPDF417CodeParam", CharSet = CharSet.Ansi)]
+        public static extern IntPtr IDCodeParam_CreateFromPDF417CodeParam(ref IDPDF417CodeParam pdf417CodeParam);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_CreateFromBarCodeParam", CharSet = CharSet.Ansi)]
+        public static extern IntPtr IDCodeParam_CreateFromBarCodeParam(ref IDBarCodeParam barCodeParam);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_CreateFromMicroQRParam", CharSet = CharSet.Ansi)]
+        public static extern IntPtr IDCodeParam_CreateFromMicroQRParam(ref IDMicroQRParam microQRParam);
+
+        // 璧嬪�兼搷浣滅鐨勫皝瑁�
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_Assign", CharSet = CharSet.Ansi)]
+        public static extern void IDCodeParam_Assign(IntPtr self, IntPtr IDCodeParamHandle);
+
+        // 璁剧疆鍜岃幏鍙栧弬鏁扮殑鍑芥暟灏佽
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_SetQRCodeParam", CharSet = CharSet.Ansi)]
+        public static extern void IDCodeParam_SetQRCodeParam(IntPtr self, ref IDQRCodeParam param);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_GetQRCodeParam", CharSet = CharSet.Ansi)]
+        public static extern ref IDQRCodeParam IDCodeParam_GetQRCodeParam(IntPtr self);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_SetDMCodeParam", CharSet = CharSet.Ansi)]
+        public static extern void IDCodeParam_SetDMCodeParam(IntPtr self, ref IDDMCodeParam param);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_GetDMCodeParam", CharSet = CharSet.Ansi)]
+        public static extern ref IDDMCodeParam IDCodeParam_GetDMCodeParam(IntPtr self);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_SetStackedCodeParam", CharSet = CharSet.Ansi)]
+        public static extern void IDCodeParam_SetStackedCodeParam(IntPtr self, ref IDQRCodeParam param);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_GetStackedCodeParam", CharSet = CharSet.Ansi)]
+        public static extern ref IDPDF417CodeParam IDCodeParam_GetStackedCodeParam(IntPtr self);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_SetBarCodeParam", CharSet = CharSet.Ansi)]
+
+        public static extern void IDCodeParam_SetBarCodeParam(IntPtr self, ref IDBarCodeParam param);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_GetBarCodeParam", CharSet = CharSet.Ansi)]
+        public static extern ref IDBarCodeParam IDCodeParam_GetBarCodeParam(IntPtr self);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_SetMicroQRParam", CharSet = CharSet.Ansi)]
+
+        public static extern void IDCodeParam_SetMicroQRParam(IntPtr self, ref IDMicroQRParam param);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_GetMicroQRParam", CharSet = CharSet.Ansi)]
+        public static extern ref IDMicroQRParam IDCodeParam_GetMicroQRParam(IntPtr self);
+
+        // 鑾峰彇绫诲瀷鐨勫皝瑁�
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCodeParam_GetType", CharSet = CharSet.Ansi)]
+        public static extern IDCodeCategory IDCodeParam_GetType(IntPtr self);
+
+
+        /**
+        * @brief setFilterRules					璁剧疆杩囨护瑙勫垯
+        * @param filterRules					杩囨护瑙勫垯
+        * @return         
+        */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_SetFilterRules", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_SetFilterRules(IntPtr deviceHandle, IDFilterRules filterRules);
+
+        /**
+        * @brief setFilterRules					鍒犻櫎杩囨护瑙勫垯
+        * @return
+        */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_RemoveFilterRules", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_RemoveFilterRules(IntPtr deviceHandle);
+
+        /**
+        * @brief addEnvironmentVariable			娣诲姞涓�涓幆澧冨彉閲�
+        * @param varName						鐜鍙橀噺鍚嶇О
+        * @param varValue						鐜鍙橀噺瀵瑰簲鐨勫��
+        */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_AddEnvironmentVariable", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_AddEnvironmentVariable(IntPtr deviceHandle, string varName, IntPtr varValue);
+
+        /**
+        * @brief deleteEnvironmentVariable		鍒犻櫎鎸囧畾鐜鍙橀噺
+        * @param varName					    瑕佸垹闄ょ殑鐜鍙橀噺鍚嶇О
+        */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_DeleteEnvironmentVariable", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_DeleteEnvironmentVariable(IntPtr deviceHandle, string varName);
+
+
+        /**
+        * @brief getEnvironmentVariableNames	鑾峰彇鎵�鏈夌幆澧冨彉閲忓悕
+        * @param varNames						鐜鍙橀噺鍚嶅垪琛�
+        * @return
+        */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetEnvironmentVariableNamesEX", CharSet = CharSet.Ansi)]   //浣跨敤鍚庨渶瑕佽皟鐢↖DDevice_FreeSolutionList 閲婃斁StringList
+        public static extern ref StringList IDDevice_GetEnvironmentVariableNamesEX(IntPtr deviceHandle);
+
+        /**
+        * @brief getEnvironmentVariable			鏍规嵁鍙橀噺鍚嶈幏鍙栫幆澧冨彉閲忕殑鍊�
+        * @param varName						鐜鍙橀噺鍚嶇О
+        * @param varValue						鐜鍙橀噺瀵瑰簲鐨勫��
+        * @return
+*/
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetEnvironmentVariable", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_GetEnvironmentVariable(IntPtr deviceHandle, ref string varName, IntPtr varValue);
+
+        /**
+		* @brief getParamValue					鑾峰彇鏂规鍙傛暟
+		* @param paramName						鍙傛暟鍚嶆灇涓惧��
+		* @param generalParam					鍙傛暟鍙栧��
+		* @return
+		*/
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetParamValue", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_GetParamValue(IntPtr deviceHandle, IDGeneralParamsName paramName, IntPtr generalParam);
+
+
+        /**
+		* @brief getParamValue					璁剧疆鏂规鍙傛暟
+		* @param paramName						鍙傛暟鍚嶆灇涓惧��
+		* @param generalParam					鍙傛暟鍙栧��
+		* @return
+		*/
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_SetParamValue", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_SetParamValue(IntPtr deviceHandle, IDGeneralParamsName paramName, IntPtr generalParam);
+        //class IDGeneralParam
+        // 鍒涘缓绌哄璞� 
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create", CharSet = CharSet.Ansi)]
+        public static extern IntPtr IDGeneralParam_Create();
+
+        // 鍩虹绫诲瀷 
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_Bool", CharSet = CharSet.Ansi)]
+        public static extern IntPtr IDGeneralParam_Create_Bool(bool data);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_Char", CharSet = CharSet.Ansi)]
+        public static extern IntPtr IDGeneralParam_Create_Char(string data);
+
+
+        // 鏁板�肩被鍨� 
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_UnsignedChar", CharSet = CharSet.Ansi)]
+        public static extern IntPtr IDGeneralParam_Create_UnsignedChar(char data);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_Float", CharSet = CharSet.Ansi)]
+        public static extern IntPtr IDGeneralParam_Create_Float(float data);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_UnsignedShort", CharSet = CharSet.Ansi)]
+        public static extern IntPtr IDGeneralParam_Create_UnsignedShort(ushort data);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_UnsignedInt", CharSet = CharSet.Ansi)]
+        public static extern IntPtr IDGeneralParam_Create_UnsignedInt(uint data);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_UnsignedLong", CharSet = CharSet.Ansi)]
+        public static extern IntPtr IDGeneralParam_Create_UnsignedLong(ulong data);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_Long", CharSet = CharSet.Ansi)]
+        public static extern IntPtr IDGeneralParam_Create_Long(long data);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_Int", CharSet = CharSet.Ansi)]
+        public static extern IntPtr IDGeneralParam_Create_Int(int data);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_Short", CharSet = CharSet.Ansi)]
+        public static extern IntPtr IDGeneralParam_Create_Short(short data);
+
+        // 鐗规畩绫诲瀷 
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_VarPoint", CharSet = CharSet.Ansi)]
+        public static extern IntPtr IDGeneralParam_Create_VarPoint(IntPtr data);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_VarFlags", CharSet = CharSet.Ansi)]
+        public static extern IntPtr IDGeneralParam_Create_VarFlags(IntPtr data);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_VectorDouble", CharSet = CharSet.Ansi)]
+        public static extern IntPtr IDGeneralParam_Create_VectorDouble(ref double data, int size);
+
+        /*
+         string[] data = new string[] { "data1", "data2", "data3" };
+         */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_VectorString", CharSet = CharSet.Ansi)]
+        public static extern IntPtr IDGeneralParam_Create_VectorString(string[] data, int size);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_VectorBool", CharSet = CharSet.Ansi)]
+        public static extern IntPtr IDGeneralParam_Create_VectorBool(ref bool data, int size);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_UChar", CharSet = CharSet.Ansi)]
+        public static extern IntPtr IDGeneralParam_Create_UChar(char data);
+
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_UShort", CharSet = CharSet.Ansi)]
+        public static extern IntPtr IDGeneralParam_Create_UShort(ushort data);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_UInt", CharSet = CharSet.Ansi)]
+        public static extern IntPtr IDGeneralParam_Create_UInt(uint data);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_Create_ULong", CharSet = CharSet.Ansi)]
+        public static extern IntPtr IDGeneralParam_Create_ULong(ulong data);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_SetName", CharSet = CharSet.Ansi)]
+
+        public static extern void IDGeneralParam_SetName(IntPtr generalParamHandle, string name);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_GetName", CharSet = CharSet.Ansi)]
+        public static extern void IDGeneralParam_GetName(IntPtr generalParamHandle, string name);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_GetType", CharSet = CharSet.Ansi)]
+
+        public static extern IDGeneralParamsType IDGeneralParam_GetType(IntPtr generalParamHandle);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_SetComment", CharSet = CharSet.Ansi)]
+        public static extern void IDGeneralParam_SetComment(IntPtr generalParamHandle, string comment);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_GetComment", CharSet = CharSet.Ansi)]
+
+        public static extern void IDGeneralParam_GetComment(IntPtr generalParamHandle, string comment);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_GetID", CharSet = CharSet.Ansi)]
+
+        public static extern int IDGeneralParam_GetID(IntPtr generalParamHandle);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_SetID", CharSet = CharSet.Ansi)]
+
+        public static extern void IDGeneralParam_SetID(IntPtr generalParamHandle, int id);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_ToInt", CharSet = CharSet.Ansi)]
+
+        public static extern int IDGeneralParam_ToInt(IntPtr generalParamHandle);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_ToNumber", CharSet = CharSet.Ansi)]   //PLC鍙橀噺绫诲瀷鏄疦um
+
+        public static extern double IDGeneralParam_ToNumber(IntPtr generalParamHandle);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_ToBool", CharSet = CharSet.Ansi)]
+
+        public static extern bool IDGeneralParam_ToBool(IntPtr generalParamHandle);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_ToChar", CharSet = CharSet.Ansi)]
+
+        public static extern char IDGeneralParam_ToChar(IntPtr generalParamHandle);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_ToFloat", CharSet = CharSet.Ansi)]
+
+        public static extern float IDGeneralParam_ToFloat(IntPtr generalParamHandle);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_ToCharItr", CharSet = CharSet.Ansi)]
+
+        public static extern IntPtr IDGeneralParam_ToCharItr(IntPtr generalParamHandle);  //瀛楃涓茬被鍨嬭幏鍙栧悗蹇呴』浣跨敤IDGeneralParam_FreeCharItr 瀵规寚閽堣繘琛岄噴鏀撅紱
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_FreeCharItr", CharSet = CharSet.Ansi)]
+
+        public static extern void IDGeneralParam_FreeCharItr(IntPtr ptr);   //鍜屼笂闈DGeneralParam_ToCharItr閰嶅浣跨敤瀹屽悗杩涜閲婃斁锛�
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_ToUShort", CharSet = CharSet.Ansi)]
+        public static extern ushort IDGeneralParam_ToUShort(IntPtr generalParamHandle);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_ToUInt", CharSet = CharSet.Ansi)]
+        public static extern uint IDGeneralParam_ToUInt(IntPtr generalParamHandle);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_ToULong", CharSet = CharSet.Ansi)]
+        public static extern ulong IDGeneralParam_ToULong(IntPtr generalParamHandle);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDGeneralParam_ToShort", CharSet = CharSet.Ansi)]
+        public static extern short IDGeneralParam_ToShort(IntPtr generalParamHandle);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDVariable_ToFlags", CharSet = CharSet.Ansi)]
+        public static extern long IDGeneralParam_ToLong(IntPtr generalParamHandle);
+
+        /****************************************
+        IDDevice
+        *****************************************/
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_Open", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_Open(IntPtr deviceHandle);                               //鎵撳紑璁惧
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_IsOpen", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_IsOpen(IntPtr deviceHandle);                             //鎵撳紑鐘舵��
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_StartRunning", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_StartRunning(IntPtr deviceHandle);                       //榛樿 娉ㄥ唽鍥炶皟   杩愯璁惧
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_StartDebugging", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_StartDebugging(IntPtr deviceHandle);                     //鍚姩璋冭瘯
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_IsDebugging", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_IsDebugging(IntPtr deviceHandle);                        //璋冭瘯鐘舵��
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_IsRunning", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_IsRunning(IntPtr deviceHandle);                          //杩愯鐘舵��
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_IsConnected", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_IsConnected(IntPtr deviceHandle);                        //杩炴帴鐘舵��  
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_Stop", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_Stop(IntPtr deviceHandle);                               //鍋滄
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_Close", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_Close(IntPtr deviceHandle);                             //鍏抽棴
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_CaptureImage", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_CaptureImage(IntPtr deviceHandle, IntPtr imageHandle);   //閲囬泦涓�娆�
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_SetLasersightEnable", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_SetLasersightEnable(IntPtr deviceHandle, bool enable);    //璁剧疆浣胯兘鐬勫噯鍣�
+
+
+        /****************************************
+        DeviceInfo 
+        *****************************************/
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetDeviceInfo", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_GetDeviceInfo(IntPtr deviceHandle, ref IDDeviceInfo DeviceInfoHandel); //鑾峰彇璁惧淇℃伅(SN/MAC/IP/MODEL)
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetHardWareParams", CharSet = CharSet.Ansi)]
+        public static extern IDViewerDefines.IDDeviceHarewareParams IDDevice_GetHardWareParams(IntPtr deviceHandle);
+
+        //姝ゆ帴鍙i渶瑕乂S2019浠ヤ笂鐨勭増鏈紝C#7.0鏂板寮曞叆浜嗘柊鐨勮娉時ef return鍜宺ef locals锛屽厑璁稿嚱鏁扮殑杩斿洖鍊间篃鍙互琚0鏄庝负寮曠敤
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetSolutionList", CharSet = CharSet.Ansi)]
+        public static extern ref StringList IDDevice_GetSolutionList(IntPtr deviceHandle, int timeout = 2000);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_SetRunningSolution", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_SetRunningSolution(IntPtr deviceHandle, string solutionName, int timeout = 2000);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetRunningSolution", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_GetRunningSolution(IntPtr deviceHandle, byte[] solutionName, int timeout = 2000);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_DeleteSolution", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_DeleteSolution(IntPtr deviceHandle, string solutionName, int timeout = 2000);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_Release", CharSet = CharSet.Ansi)]
+        public static extern void IDDevice_Release(IntPtr deviceHandle);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_FreeSolutionList", CharSet = CharSet.Ansi)]
+        public static extern void IDDevice_FreeSolutionList(StringList solutionList);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_getROIInfoLength", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_getROIInfoLength(IntPtr deviceHandle);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_getROIInfo", CharSet = CharSet.Ansi)]                 //鑾峰彇ROI
+        public static extern IDViewerDefines.IDROIInfo IDDevice_getROIInfo(IntPtr deviceHandle, int roiIndex);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_DeleteROI", CharSet = CharSet.Ansi)]                  //鍒犻櫎ROI
+        public static extern long IDDevice_DeleteROI(IntPtr deviceHandle, int roiIndex);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_AddROI", CharSet = CharSet.Ansi)]                     //娣诲姞ROI
+        public static extern long IDDevice_AddROI(IntPtr deviceHandle, IDViewerDefines.IDROIInfo roiInfo);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_ModifyROI", CharSet = CharSet.Ansi)]                  //淇敼ROI
+        public static extern long IDDevice_ModifyROI(IntPtr deviceHandle, int roiIndex, IDViewerDefines.IDPoint topLeftPoint, IDViewerDefines.IDPoint bottomRightPoint);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetFocusLocation", CharSet = CharSet.Ansi)]
+        public static unsafe extern long IDDevice_GetFocusLocation(IntPtr deviceHandle, int* focusLocation);        //鑾峰彇鐒﹁窛浣嶇疆
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_AutoFocus", CharSet = CharSet.Ansi)]     //鑷姩瀵圭劍
+        public static unsafe extern long IDDevice_AutoFocus(IntPtr deviceHandle, int paramIndex, ref int focusLocation);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_SetFocusLocation", CharSet = CharSet.Ansi)]     //璁剧疆鐒﹁窛浣嶇疆
+        public static extern long IDDevice_SetFocusLocation(IntPtr deviceHandle, int paramIndex, int focusLocation);
+
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_SetExposure", CharSet = CharSet.Ansi)]     //璁剧疆鏇濆厜
+        public static extern long IDDevice_SetExposure(IntPtr deviceHandle, int paramIndex, double exposure);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_SetGain", CharSet = CharSet.Ansi)]     //璁剧疆澧炵泭
+        public static extern long IDDevice_SetGain(IntPtr deviceHandle, int paramIndex, int gain);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_SetGamma", CharSet = CharSet.Ansi)]     //璁剧疆浼介┈
+        public static extern long IDDevice_SetGamma(IntPtr deviceHandle, int paramIndex, double gamma);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_SetIlluminate", CharSet = CharSet.Ansi)]     //璁剧疆閫氶亾浜害锛氶�氶亾鏁帮紝璁剧疆-1鎴栧皬浜�0锛岃〃绀哄悓鏃惰缃墍鏈夐�氶亾
+        public static extern long IDDevice_SetIlluminate(IntPtr deviceHandle, int paramIndex, int channel, int value);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_SetIlluminateEnable", CharSet = CharSet.Ansi)]     //璁剧疆閫氶亾浣胯兘锛氶�氶亾鏁帮紝璁剧疆-1鎴栧皬浜�0锛岃〃绀哄悓鏃惰缃墍鏈夐�氶亾
+        public static extern long IDDevice_SetIlluminateEnable(IntPtr deviceHandle, int paramIndex, int channel, bool enable);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetIlluminanatbrightnessLength", CharSet = CharSet.Ansi)]//鑾峰彇illuminanatbrightness 鏁伴噺
+        public static extern long IDDevice_GetIlluminanatbrightnessLength(IntPtr deviceHandle);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetIlluminanatbrightness", CharSet = CharSet.Ansi)] //鑾峰彇illuminanatbrightness 
+        public static extern IDNodeParam IDDevice_GetIlluminanatbrightness(IntPtr deviceHandle, uint index);
+
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetTriggerAllParams", CharSet = CharSet.Ansi)] //鑾峰彇鎵�鏈夎Е鍙戝弬鏁�
+        public static extern long IDDevice_GetTriggerAllParams(IntPtr deviceHandle, ref IDTriggerParams triggerParams, ref IDHardwareTrigger hardwareTrigger,
+           ref IDTcpServerTrigger tcpServerTrigger, ref IDTcpClientTrigger tcpClientTrigger, ref IDSerialPortTrigger serialPortTrigger, ref IDUDPTrigger udpTrigger);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetDataconfigAllParams", CharSet = CharSet.Ansi)] //鑾峰彇鎵�鏈夋暟鎹鐞嗗弬鏁�
+        public static extern long IDDevice_GetDataconfigAllParams(IntPtr deviceHandle, ref IDFilterInfo filterInfo, ref IDFilterRules filterRules, ref IDDataConfig dataConfig);
+
+        //[DllImport("IDViewerCSDK.dll", EntryPoint = "getTriggerAllParams", CharSet = CharSet.Ansi)]
+        //public static extern long getTriggerAllParams(IntPtr deviceHandle, IDTriggerParams triggerParams, IDHardwareTrigger hardwareTrigger,
+        //    IDTcpServerTrigger tcpServerTrigger, IDTcpClientTrigger tcpClientTrigger, IDSerialPortTrigger serialPortTrigger, IDUDPTrigger udpTrigger);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetCommunicationAllParams", CharSet = CharSet.Ansi)] //鑾峰彇鎵�鏈夐�氫俊鍙傛暟
+        public static extern long IDDevice_GetCommunicationAllParams(IntPtr deviceHandle, ref IDTcpServerCommunication tcpServerInfo, ref IDTcpClientCommunication tcpClientInfo, ref IDSerialPortCommunication serialPortInfo,
+            ref IDKeyboardConfig keyboardInfo, ref IDEipConfig eipConfig, ref IDModbusConfig modbusConfig, ref IDProfinetConfig profinetConfig, ref IDFtpConfig ftpConfig, ref IDWebpageConfig webpageConfig,
+            ref IDFinsConfig finsConfig, ref IDHttpConfig httpConfig, ref IDNetworkingConfig networkingConfig);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetCommunicationAllParams_V2", CharSet = CharSet.Ansi)] //鑾峰彇鎵�鏈夐�氫俊鍙傛暟
+        public static extern long IDDevice_GetCommunicationAllParams_V2(IntPtr deviceHandle, ref IDTcpServerCommunication tcpServerInfo, ref IDTcpClientCommunication tcpClientInfo, ref IDSerialPortCommunication serialPortInfo,
+            ref IDKeyboardConfig keyboardInfo, ref IDEipConfig eipConfig, ref IDModbusConfig modbusConfig, ref IDProfinetConfig profinetConfig, ref IDFtpConfig ftpConfig, ref IDWebpageConfig webpageConfig,
+            ref IDFinsConfig finsConfig, ref IDHttpConfig httpConfig, ref IDNetworkingConfig networkingConfig, ref IDMcConfig mcConfig, ref IDUdpConfig iDUdpConfig);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_DownLoadCurrentSolution", CharSet = CharSet.Ansi)] //涓嬭浇褰撳墠鏂规 鍙傛暟璁剧疆涓轰复鏃惰缃紝闇�瑕佽皟鐢ㄨ鏂规硶鎵嶈兘淇濆瓨鍒拌澶囩绾跨敓鏁�
+        public static extern long IDDevice_DownLoadCurrentSolution(IntPtr deviceHandle);
+
+
+
+        /**
+        * @brief uploadSolution                             涓婁紶鏂规
+        * @param solutionData                               鏂规鏁版嵁
+        * @param solutionName                               鏂规鍚嶇О
+        * @param timeout                                    瓒呮椂鏃堕棿
+        * @return                                           閿欒鐮�
+        */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_UploadSolution", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_UploadSolution(IntPtr deviceHandle, string solutionData, string solutionName, int timeout = 3000);
+        /**
+         * @brief downLoadSolution                          涓嬭浇鏂规
+         * @param solutionData                              鏂规鏁版嵁
+         * @param solutionName                              鏂规鍚嶇О
+         * @param timeout                                   瓒呮椂鏃堕棿
+         * @return                                          閿欒鐮�
+         */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_DownLoadSolution", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_DownLoadSolution(IntPtr deviceHandle, ref string solutionData, string solutionName, int timeout = 3000);
+
+        /**
+        * @brief openMC							鎵撳紑MC
+        * @param mode                           MC 鍝佺墝鍨嬪彿锛堝彇鍊艰寖鍥达細(Mitsubishi_L:0,Mitsubishi_Q:1,Mitsubishi_R:2,Mitsubishi_A:4,Mitsubishi_Fx3U:5,Mitsubishi_Fx5U:6)锛�
+        * @param format                         MC 鏍煎紡 锛堝彇鍊艰寖鍥达細BIN:0,ASCII:1锛�
+        * @param ip	                            MC IP鍦板潃
+        * @param port	                        MC 绔彛
+        * @param startAddress                   MC 璧峰鍦板潃
+        * @param resultSwap                     MC 缁撴灉浜ゆ崲
+        * @param resultSize                     MC 缁撴灉澶у皬
+        * @param timeout                        MC MC缁撴灉瓒呮椂
+        */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_OpenMC", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_OpenMC(IntPtr deviceHandle, IDMcBrandModel mode, IDMcDataFormat format, string ip, int port, int startAddress, bool resultSwap, int resultSize, int timeout);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_CloseMC", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_CloseMC(IntPtr deviceHandle);
+
+        /**
+        * @brief getMcInfo						鑾峰彇褰撳墠MC杩炴帴閰嶇疆淇℃伅
+        * @param mode                           MC鍝佺墝鍨嬪彿
+        * @param format                         MC鏍煎紡锛圔IN/ASCII锛�
+        * @param ip                             MC鐨処P鍦板潃
+        * @param port                           MC鐨勭鍙�
+        * @param startAddress                   MC璧峰鍦板潃
+        * @param resultSwap                     MC缁撴灉浜ゆ崲閰嶇疆
+        * @param resultSize                     MC缁撴灉澶у皬
+        * @param timeout                        MC缁撴灉瓒呮椂鏃堕棿
+        */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetMcInfo", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_GetMcInfo(IntPtr deviceHandle, ref IDMcBrandModel mode, ref IDMcDataFormat format, ref string ip, ref int port, ref int startAddress, ref bool resultSwap, ref int resultSize, ref int timeout);
+
+        /*
+        * 2025.2.15 鏂板IDDevice绫绘帴鍙�
+        */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_ClearROI", CharSet = CharSet.Ansi)]  //娓呴櫎鎵�鏈塕OI
+        public static extern long IDDevice_ClearROI(IntPtr deviceHandle);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_AddImageROI", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_AddImageROI(IntPtr deviceHandle, ref IDImageROI roiInfos); //娣诲姞鍥惧儚ROI
+
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_DeleteImageROI", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_DeleteImageROI(IntPtr deviceHandle, int roiIndex); //鍒犻櫎鍥惧儚ROI
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_SetROICodeNum", CharSet = CharSet.Ansi)] //璁剧疆鎸囧畾 ROI 鐨勭爜鏁扮洰
+        public static extern long IDDevice_SetROICodeNum(IntPtr deviceHandle, int roiIndex, int codeNum);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_ModifyImageROI", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_ModifyImageROI(IntPtr deviceHandle, int roiIndex, IDPoint topLeftPoint, IDPoint bottomRightPoint);//鏇存柊鍥惧儚ROI
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetImageROIsLength", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_GetImageROIsLength(IntPtr deviceHandle);//鑾峰彇鍥惧儚ROI鍒楄〃闀垮害
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetImageROIsInfo", CharSet = CharSet.Ansi)]
+        public static extern IDImageROI IDDevice_GetImageROIsInfo(IntPtr deviceHandle, uint index);//鑾峰彇鍥惧儚ROI
+
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_ClearImageROI", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_ClearImageROI(IntPtr deviceHandle);//娓呴櫎鎵�鏈夊浘鍍廟OI
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_AddCodeType", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_AddCodeType(IntPtr deviceHandle, IDCodeType type);//娣诲姞鐮佸埗
+
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_DeleteCodeType", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_DeleteCodeType(IntPtr deviceHandle, IDCodeType type);//鍒犻櫎鐮佸埗
+
+        /**
+        * @brief clearCodeType				娓呴櫎鎵�鏈夌爜鍒�
+        * @return							閿欒鐮�
+        */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_ClearCodeType", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_ClearCodeType(IntPtr deviceHandle);
+
+        /**
+          * @brief getImageROIs			    鑾峰彇鐮佸埗淇℃伅鍒楄〃闀垮害
+          * @param
+          * @return							 鑾峰彇鐮佸埗淇℃伅鍒楄〃闀垮害
+          */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetCodeTypesLength", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_GetCodeTypesLength(IntPtr deviceHandle);
+
+        /**
+          * @brief getImageROIs			   鑾峰彇鐮佸埗淇℃伅
+          * @param index				    绗嚑涓狪DCodeType_C淇℃伅
+          * @return							IDCodeType_C
+          */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetCodeTypesInfo", CharSet = CharSet.Ansi)]
+        public static extern IDCodeType IDDevice_GetCodeTypesInfo(IntPtr deviceHandle, uint index);
+
+
+        /**
+        * @brief setCodeCategoryParam       璁剧疆鏉$爜绠楁硶鍙傛暟
+        * @param codeType					鏉$爜绫诲瀷
+        * @param codeParam					鏉$爜鍙傛暟淇℃伅
+        * @return							閿欒鐮�
+*/
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_SetCodeCategoryParam", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_SetCodeCategoryParam(IntPtr deviceHandle, IDCodeCategory codeType, IntPtr codeParam);
+
+
+
+        /**
+         * @brief getSolutionImageParams		鑾峰彇褰撳墠鏂规鍥惧儚璁剧疆椤靛弬鏁�
+         * @param solutionImage				鍥惧儚椤靛弬鏁� //鍥惧儚鍙傛暟
+         * @return							閿欒鐮�
+         */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetSolutionImage", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_GetSolutionImage(IntPtr deviceHandle, ref IDSolutionImage solutionImage);
+
+        /**
+         * @brief getSolutionImageParams		鑾峰彇鍥惧儚鍙傛暟缁勯儴鍒嗗弬鏁�
+         * @param solutionImageParams				鍥惧儚鍙傛暟缁勯儴鍒嗗弬鏁�
+         * @param index				                    鍙傛暟缁勭鍑犱釜鍙傛暟
+         * @return							閿欒鐮�
+         */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetSolutionImageParams", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_GetSolutionImageParams(IntPtr deviceHandle, int index, ref IDSolutionImageParams solutionImageParams);
+
+
+        /**
+         * @brief getSolutionImageParams		鑾峰彇鍥惧儚鍏夋簮閫氶亾鍙傛暟
+         * @param solutionImageParams		    鍥惧儚鍙傛暟缁勯儴鍒嗗弬鏁�
+         * @param index				            鍙傛暟缁勭鍑犱釜鍙傛暟
+         * @param illIndex				        鍙傛暟缁勭鍑犱釜鍙傛暟鐨勭鍑犱釜鍏夋簮閫氶亾鍙傛暟
+         * @return							    閿欒鐮�
+         */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetSolutionImageIlluminant", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_GetSolutionImageIlluminant(IntPtr deviceHandle, int index, int illIndex, ref IDSolutionImageIlluminant solutionImageIlluminant);
+
+
+        /**
+	    * @brief appendLastImageParam		鍩轰簬鏈�鍚庝竴涓弬鏁拌妭鐐规柊澧炲浘鍍忓弬鏁扮粍
+	    * @return							閿欒鐮�
+	    */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_AppendLastImageParam", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_AppendLastImageParam(IntPtr deviceHandle);
+
+        /**
+        * @brief deleteImageParamAtIndex	鍒犻櫎鍥惧儚鍙傛暟缁�
+        * @param paramIndex					鍙傛暟缁勫簭鍙�
+        * @return							閿欒鐮�
+        */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_DeleteImageParamAtIndex", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_DeleteImageParamAtIndex(IntPtr deviceHandle, int paramIndex);
+
+
+        /**
+	    * @brief setAutoExposureEnabled		璁剧疆浣胯兘鑷姩鏇濆厜
+	    * @param enabled			    	鏄惁鍚敤鑷姩鏇濆厜锛宍true` 涓哄惎鐢紝`false` 涓虹鐢�
+	    * @return							閿欒鐮�
+	    */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_SetAutoExposureEnabled", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_SetAutoExposureEnabled(IntPtr deviceHandle, bool enabled);
+
+        /**
+	    * @brief getExposure				鑾峰彇褰撳墠鏇濆厜
+	    * @param exposure					鏇濆厜鍊�
+	    * @return							閿欒鐮�
+	    */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetExposure", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_GetExposure(IntPtr deviceHandle, ref double exposure);
+
+        /**
+        * @brief setAutoGainEnabled			璁剧疆浣胯兘鑷姩澧炵泭
+        * @param enabled				    鏄惁鍚敤鑷姩澧炵泭锛宍true` 涓哄惎鐢紝`false` 涓虹鐢�
+        * @return					    	閿欒鐮�
+        */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_SetAutoGainEnabled", CharSet = CharSet.Ansi)]
+
+        public static extern long IDDevice_SetAutoGainEnabled(IntPtr deviceHandle, bool enabled);
+
+        /**
+        * @brief getGainCount				鑾峰彇澧炵泭鍒楄〃涓暟
+        * @param count						澧炵泭鍒楄〃涓暟
+        * @return							閿欒鐮�
+        */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetGainCount", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_GetGainCount(IntPtr deviceHandle, ref int count);
+
+        /**
+	    * @brief getGain					鑾峰彇褰撳墠澧炵泭
+	    * @param gain						澧炵泭
+	    * @return							閿欒鐮�
+	    */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetGain", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_GetGain(IntPtr deviceHandle, ref int gain);
+
+        /**
+        * @brief getGain					鑾峰彇褰撳墠澧炵泭
+        * @param paramIndex					鍙傛暟缁�
+        * @param gain						澧炵泭鍊�
+        * @return							閿欒鐮�
+        */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetGain_1330", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_GetGain_1330(IntPtr deviceHandle, int paramIndex, ref double gain);
+
+        /**
+        * @brief getGain					鑾峰彇澧炵泭鍒楄〃涓寚瀹氫笅鏍囧搴旂殑澧炵泭鍊�
+        * @param index					    澧炵泭鍊煎湪鍒楄〃涓殑绱㈠紩
+        * @param gain						澧炵泭鍊�
+        * @return							閿欒鐮�
+        */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetGainValueByIndex_1330", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_GetGainValueByIndex_1330(IntPtr deviceHandle, int paramIndex, ref double gain);
+
+        /**
+	    * @brief getGamma					鑾峰彇褰撳墠浼介┈
+	    * @param gamma						浼介┈鍊�
+	    * @return							閿欒鐮�
+	    */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_GetGamma", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_GetGamma(IntPtr deviceHandle, ref double gamma);
+
+        /**
+	    * @brief setDIParam					璁剧疆DI鍙傛暟
+	    * @param pin						寮曡剼缂栧彿
+	    * @param params						DI鍙傛暟淇℃伅
+	    * @return
+	    */
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_SetDIParam", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_SetDIParam(IntPtr deviceHandle, uint pin, ref IDDIParams iDDIParams);
+
+
+        /**
+		* @brief setDOParam					璁剧疆DO鍙傛暟
+		* @param pin						寮曡剼缂栧彿
+		* @param params						DO鍙傛暟淇℃伅
+		* @return
+		*/
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDDevice_SetDOParam", CharSet = CharSet.Ansi)]
+        public static extern long IDDevice_SetDOParam(IntPtr deviceHandle, uint pin, IDDOParams iDDOParams);
+
+
+
+        /*
+        * @brief getIOConfigAllParams		鑾峰彇鎵�鏈塈O杈撳叆鍙傛暟淇℃伅闀垮害
+        * @
+        * @
+        * @return
+        */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "getIOConfigInputParamsLength", CharSet = CharSet.Ansi)]
+        public static extern long getIOConfigInputParamsLength(IntPtr deviceHandle);
+
+        /*
+        * 鑾峰彇IO杈撳叆鍙傛暟淇℃伅
+        */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "getIOConfigInputParamsInfo", CharSet = CharSet.Ansi)]
+        public static extern long getIOConfigInputParamsInfo(IntPtr deviceHandle, uint index, ref IDDIParams IDDIParams);
+
+        /* @brief getIOConfigAllParams		鑾峰彇鎵�鏈塈O杈撳嚭鍙傛暟淇℃伅闀垮害
+        * @
+        * @
+        * @return
+        */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "getIOConfigOutputParamsLength", CharSet = CharSet.Ansi)]
+        public static extern long getIOConfigOutputParamsLength(IntPtr deviceHandle);
+
+        /**
+       * @brief addDOParam                                        娣诲姞DO鍙傛暟
+       * @param params                                                DO鍙傛暟淇℃伅
+       * @return
+       */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "addDOParam", CharSet = CharSet.Ansi)]
+        public static extern long addDOParam(IntPtr deviceHandle, ref IDDOParams iDDOParams);
+
+        /*
+        * 鑾峰彇IO杈撳嚭鍙傛暟淇℃伅
+        */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "getIOConfigOutputParamsInfo", CharSet = CharSet.Ansi)]
+        public static extern long getIOConfigOutputParamsInfo(IntPtr deviceHandle, uint index, ref IDDOParams IDDOParams);
+
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_ResultNotify_")]
+        public static extern void IDCallback_ResultNotify_(IntPtr deviceHandle, IntPtr resCallback);   // 缁撴灉鍥炶皟鍑芥暟
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_ResultNotify_Image_")]
+        public static extern void IDCallback_ResultNotify_Image_(IntPtr deviceHandle, IntPtr resCallback); // 鍥剧墖鍥炶皟鍑芥暟
+        //[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_GetIDDecodeInfo")]
+        //public extern static IntPtr IDCallback_GetIDDecodeInfo(IntPtr decodeInfoHandel);  //IDCallback_GetIDDecodeInfo
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_GetIDDecodeInfo_A")]
+        public extern static long IDCallback_GetIDDecodeInfo_A(IntPtr decodeInfoHandel, ref IDDecodeInfo info);  //IDCallback_GetIDDecodeInfo
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_GetIDDecodeROIInfo", CharSet = CharSet.Ansi)]
+        public static extern IDDecodeROIInfo IDCallback_GetIDDecodeROIInfo(IntPtr decodeInfoHandel, uint index);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_GetIDDecodeResult", CharSet = CharSet.Ansi)]
+        public static extern IDDecodeResult IDCallback_GetIDDecodeResult(IntPtr decodeInfoHandel, uint decodeROIInfoIndex, uint index);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_GetIDDMCodeResult", CharSet = CharSet.Ansi)]
+        public static extern long IDCallback_GetIDDMCodeResult(IntPtr decodeInfoHandel, uint decodeROIInfoIndex,                            //DM瑙g爜鏁版嵁
+             uint index, ref IDDMCodeResult IDDMCodeResultData);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_CheckDeCodeTypeResult", CharSet = CharSet.Ansi)]
+        public static extern long IDCallback_CheckDeCodeTypeResult(IntPtr decodeInfoHandel, uint decodeType, uint decodeROIInfoIndex); //璇︾粏鐮佺被鍨嬬殑缁撴灉闀垮害 ,0琛ㄧず娌℃湁瑙g爜缁撴灉锛�-1 琛ㄧずroi涓嶅瓨鍦� 
+
+        //[DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_GetID_QRODE_Result", CharSet = CharSet.Ansi)]
+        //public static extern long IDCallback_GetID_QRODE_Result(IntPtr decodeInfoHandel, uint decodeROIInfoIndex,                           //QR瑙g爜鏁版嵁
+        //     uint index, ref IDQRCodeResult iDQRCodeResult);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_GetIDDMCodeResult_QualityDM15415", CharSet = CharSet.Ansi)]
+        public static extern long IDCallback_GetIDDMCodeResult_QualityDM15415(IntPtr decodeInfoHandel, uint decodeROIInfoIndex,             //15414dm鐮佽川閲�
+            uint index, ref IDQualityDM15415 iDQualityDM15415);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_GetIDDMCodeResult_QUALITY_DM_29158", CharSet = CharSet.Ansi)]
+        public static extern long IDCallback_GetIDDMCodeResult_QUALITY_DM_29158(IntPtr decodeInfoHandel, uint decodeROIInfoIndex,           //29158dm鐮佽川閲�
+            uint index, ref IDQualityDM29518 iDQualityDM29518);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_GetIDPDF417CodeResult", CharSet = CharSet.Ansi)]
+        public static extern long IDCallback_GetIDPDF417CodeResult(IntPtr decodeInfoHandel, uint decodeROIInfoIndex,
+            uint index, ref IDPDF417CodeResult iDPDF417CodeResultData);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_GetID_QR_CODE_Result", CharSet = CharSet.Ansi)]
+        public static extern long IDCallback_GetID_QR_CODE_Result(IntPtr decodeInfoHandel, uint decodeROIInfoIndex,
+            uint index, ref IDQRCodeResult iDQRCodeResult);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_GetID_QR_CODE_Result_IDQualityQR15415", CharSet = CharSet.Ansi)]
+        public static extern long IDCallback_GetID_QR_CODE_Result_IDQualityQR15415(IntPtr decodeInfoHandel, uint decodeROIInfoIndex,        //15414qr鐮佽川閲�
+            uint index, ref IDQualityQR15415 iDQualityQR15415);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_GetID_QR_CODE_Result_IDQualityQR29518", CharSet = CharSet.Ansi)]
+        public static extern long IDCallback_GetID_QR_CODE_Result_IDQualityQR29518(IntPtr decodeInfoHandel, uint decodeROIInfoIndex,        //29518qr鐮佽川閲�
+            uint index, ref IDQualityQR29518 iDQualityQR29518);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_GetIDPDF417CodeResult_IDQualityPDF417_15415", CharSet = CharSet.Ansi)]
+        public static extern long IDCallback_GetIDPDF417CodeResult_IDQualityPDF417_15415(IntPtr decodeInfoHandel, uint decodeROIInfoIndex,
+            uint index, ref IDQualityPDF417_15415 iDQualityPDF417_15415);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_GetIDBarCodeResult", CharSet = CharSet.Ansi)]
+        public static extern long IDCallback_GetIDBarCodeResult(IntPtr decodeInfoHandel, uint decodeROIInfoIndex,
+             uint index, ref IDBarCodeResult iDBarCodeResultData);
+
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_GetIDBarCodeResult_IDQuality15416", CharSet = CharSet.Ansi)]
+        public static extern long IDCallback_GetIDBarCodeResult_IDQuality15416(IntPtr decodeInfoHandel, uint decodeROIInfoIndex,
+            uint index, ref IDQuality15416 iDQuality15416);
+
+        /*
+        * decodeInfoHandel 鍙ユ焺
+        * decodeType 瑙g爜绫诲瀷 姣斿 1dm 锛�2 qr锛�3 pdf417,4 barcode
+        * decodeROIInfoIndex roi 绗嚑涓猺oi
+        * index 绗嚑涓叿浣撹В鐮佺被鍨嬬粨鏋�
+        * pointIndex绗嚑涓偣
+        * Position 鐐规暟鎹�
+        */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDCallback_GetIDResultPosition", CharSet = CharSet.Ansi)]
+        public static extern long IDCallback_GetIDResultPosition(IntPtr decodeInfoHandel, uint decodeType, uint decodeROIInfoIndex,
+            uint index, uint pointIndex, ref IDPoint iDPoint);
+
+        /**
+        * @brief IDVIEWER_Init 浣跨敤SDK鍏朵粬鍔熻兘鍓嶉渶瑕佸厛璋冪敤璇ュ垵濮嬪寲鏂规硶
+        * @return 閿欒鐮�
+        */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDVIEWER_Init_", CharSet = CharSet.Ansi)]
+        public extern static long IDVIEWER_Init_();
+
+        /**
+        * @brief IDVIEWER_DiscoveryDevices 鎵弿璁惧鍒楄〃
+        * @param deviceList	杩斿洖鑾峰彇鐨勮澶囧垪琛�
+        * @param discoveryTime 鎵弿鍛ㄦ湡,榛樿200(鍗曚綅姣)
+        * @return 閿欒鐮�
+        */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDVIEWER_DiscoveryDevices_", CharSet = CharSet.Ansi)]
+        public extern static IntPtr IDVIEWER_DiscoveryDevices_(uint discoveryTime = 1000);
+
+        /**
+         * @brief IDVIEWER_GetDevicesLength_ 璁惧鍒楄〃闀垮害
+         * @param deviceList	杩斿洖鑾峰彇鐨勮澶囧垪琛ㄩ暱搴�
+         * 
+         * @return 闀垮害
+         */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDVIEWER_GetDevicesLength_", CharSet = CharSet.Ansi)]
+        public extern static long IDVIEWER_GetDevicesLength_(IntPtr DevicesList);
+
+        /**
+         * @brief IDVIEWER_SelectIDDeviceInfo_ 鑾峰彇鏌愪釜搴忓彿鐨勮澶�
+         * @param DevicesList 褰撳墠璁惧鍒楄〃鎸囬拡
+         * @param index	璁惧鍒楄〃鐨勫簭鍙�
+
+         * @return 璁惧淇℃伅
+         */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDVIEWER_SelectIDDeviceInfo_", CharSet = CharSet.Ansi)]
+        public extern static long IDVIEWER_SelectIDDeviceInfo_(IntPtr DevicesList, ref IDDeviceInfo IDDeviceInfoHandel, uint index);
+
+        /**
+        * @brief IDVIEWER_SetIP 璁剧疆IP 璁剧疆IP鍚庨渶瑕侀噸鏂版壂鎻�
+        * @param deviceInfo 褰撳墠璁惧淇℃伅
+        * @param iPv4	鏂扮殑IP鍦板潃
+        * @param mask	鏂扮殑MASK鍦板潃
+        * @param gateway 鏂扮殑缃戝叧鍦板潃
+        * @param isStatic 鏄惁璁剧疆闈欐�両P(false涓轰复鏃禝P)
+        * @return 閿欒鐮�
+        */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDVIEWER_SetIP_", CharSet = CharSet.Ansi)]
+        public static extern long IDVIEWER_SetIP_(ref IDViewerDefines.IDDeviceInfo deviceInfo, string iPv4, string mask, string gateway, bool isStatic);
+
+        /**
+        * @brief IDVIEWER_CreateDevice CreateDevice 鍒涘缓璁惧
+        * @param deviceInfo 褰撳墠璁惧淇℃伅
+        * @param device 鍒涘缓鐨勮澶囨寚閽�
+        * @return 閿欒鐮�
+        */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDVIEWER_CreateDevice_", CharSet = CharSet.Ansi)]
+        public static extern long IDVIEWER_CreateDevice_(ref IDViewerDefines.IDDeviceInfo deviceInfo, ref IntPtr deviceHandle);
+
+        /**
+	     * @brief IDVIEWERreateDevice IDVIEWERreateDeviceBySN 鏇村姞SN鍒涘缓璁惧
+	     * @param cameraSN 褰撳墠璁惧SN
+	     * @param device 鍒涘缓鐨勮澶囨寚閽�
+	     * @return 閿欒鐮�
+	     */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDVIEWER_CreateDeviceBySN_", CharSet = CharSet.Ansi)]
+        public static extern long IDVIEWER_CreateDeviceBySN_(string cameraSN, ref IntPtr deviceHandle);
+
+        /**
+         * @brief IDVIEWERreateDevice IDVIEWERreateDeviceByIP 鏇村姞SN鍒涘缓璁惧
+         * @param cameraIP 褰撳墠璁惧IP
+         * @param device 鍒涘缓鐨勮澶囨寚閽�
+         * @return 閿欒鐮�
+         */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDVIEWER_CreateDeviceByIP_", CharSet = CharSet.Ansi)]
+        public static extern long IDVIEWER_CreateDeviceByIP_(string cameraIP, ref IntPtr deviceHandle);
+        /**
+        * @brief IDVIEWER_UnInit 浣跨敤瀹孲DK鍚庤皟鐢ㄩ噴鏀捐祫婧�
+        * @return 閿欒鐮�
+        */
+        [DllImport("IDViewerCSDK.dll", EntryPoint = "IDVIEWER_UnInit_", CharSet = CharSet.Ansi)]
+        public static extern long IDVIEWER_UnInit_(IntPtr deviceList);
+
+    }
+}
+
+
+

--
Gitblit v1.9.3