private void btnGetFacePic_Click(object sender, EventArgs e) { if (-1 != m_lGetFacePicHandle) { if (CHCNetSDK.NET_DVR_StopRemoteConfig(m_lGetFacePicHandle)) { m_lGetFacePicHandle = -1; } } CHCNetSDK.NET_DVR_CAPTURE_FACE_COND struCond = new CHCNetSDK.NET_DVR_CAPTURE_FACE_COND(); struCond.dwSize = (uint)Marshal.SizeOf(struCond); int dwSize = Marshal.SizeOf(struCond); IntPtr ptrStruCond = Marshal.AllocHGlobal(dwSize); Marshal.StructureToPtr(struCond, ptrStruCond, false); g_fGetFacePicCallback = new CHCNetSDK.RemoteConfigCallback(ProcessGetFacePicCallback); m_lGetFacePicHandle = CHCNetSDK.NET_DVR_StartRemoteConfig(m_lUserID, CHCNetSDK.NET_DVR_CAPTURE_FACE_INFO, ptrStruCond, dwSize, g_fGetFacePicCallback, this.Handle); if (-1 == m_lGetFacePicHandle) { g_formList.AddLog(m_lDeviceIndex, AcsDemoPublic.OPERATION_FAIL_T, "NET_DVR_CAPTURE_FACE_INFO"); } else { g_formList.AddLog(m_lDeviceIndex, AcsDemoPublic.OPERATION_SUCC_T, "NET_DVR_CAPTURE_FACE_INFO"); } Marshal.FreeHGlobal(ptrStruCond); }
public List <uint> GetFace(string IpAddress, string UserName, string Password, ushort Port) { List <uint> errorCode = new List <uint>(); Auth(IpAddress, UserName, Password, Port); nET_DVR_DEVICEINFO_V40.struDeviceV30.sSerialNumber = new byte[CHCNetSDK.SERIALNO_LEN]; int userID = CHCNetSDK.NET_DVR_Login_V40(ref nET_DVR_USER_LOGIN_INFO, ref nET_DVR_DEVICEINFO_V40); CHCNetSDK.NET_DVR_CAPTURE_FACE_COND nET_DVR_CAPTURE_FACE_COND = new CHCNetSDK.NET_DVR_CAPTURE_FACE_COND(); nET_DVR_CAPTURE_FACE_COND.dwSize = (uint)Marshal.SizeOf(nET_DVR_CAPTURE_FACE_COND); //nET_DVR_CAPTURE_FACE_COND.byRes = new byte[128]; int dwInBufferLen = (int)nET_DVR_CAPTURE_FACE_COND.dwSize; IntPtr lpInBuffer = Marshal.AllocHGlobal(dwInBufferLen); Marshal.StructureToPtr(nET_DVR_CAPTURE_FACE_COND, lpInBuffer, false); //RemoteConfigCallback remoteConfigCallback = new RemoteConfigCallback(remoteConfig); int returnValue = NET_DVR_StartRemoteConfig(userID, CHCNetSDK.NET_DVR_CAPTURE_FACE_INFO, lpInBuffer, dwInBufferLen, remoteConfig, IntPtr.Zero); if (returnValue == -1) { Console.WriteLine("\n"); //call NET_DVR_GetLastError to get the error code uint iLastErr = CHCNetSDK.NET_DVR_GetLastError(); string strErr = "NET_DVR_StartRemoteConfig failed, error code= " + iLastErr; Console.WriteLine(strErr); } Console.WriteLine("NET_DVR_StartRemoteConfig Success"); Marshal.FreeHGlobal(lpInBuffer); return(errorCode); }