Example #1
0
 /// <summary>
 /// Correct user basic information/correct user password
 /// </summary>
 /// <param name="iLogin">DHLogin return value</param>
 /// <param name="userNewInfo">information after user changes</param>
 /// <param name="userOldInfo">information before user changes</param>
 /// <param name="waitTime">waiting time</param>
 /// <returns></returns>
 public static bool NETOperateUserInfo(int iLogin, USER_OPERATE operate, USER_INFO userNewInfo, USER_INFO userOldInfo, int waitTime)
 {
     bool retValue = false;
     IntPtr pBoxInfo = IntPtr.Zero;
     IntPtr pBoxInfo1 = IntPtr.Zero;
     try
     {
         pBoxInfo = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(USER_INFO)));//Allocate fixed and specified memory space
         pBoxInfo1 = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(USER_INFO)));//Allocate fixed and specified memory space
         if (pBoxInfo != IntPtr.Zero & pBoxInfo1!=IntPtr.Zero)
         {
             Marshal.StructureToPtr(userNewInfo, pBoxInfo, true);
             Marshal.StructureToPtr(userOldInfo, pBoxInfo1, true);
             retValue = CLIENT_OperateUserInfo(iLogin, (int)operate, pBoxInfo, pBoxInfo1, waitTime);
         }
         NETThrowLastError(retValue);
     }
     catch (Exception e)
     {
         NETThrowLastError(e);
         retValue = false;
     }
     finally
     {
         Marshal.FreeHGlobal(pBoxInfo);//Release the fixed memory allocation
         pBoxInfo = IntPtr.Zero;
         Marshal.FreeHGlobal(pBoxInfo1);//Release the fixed memory allocation
         pBoxInfo1 = IntPtr.Zero;
     }
     return retValue;
 }
Example #2
0
 /// <summary>
 /// 修改用户基本信息/修改用户密码
 /// </summary>
 /// <param name="iLogin">DHLogin返回值</param>
 /// <param name="userNewInfo">用户变更后信息</param>
 /// <param name="userOldInfo">用户变更前信息</param>
 /// <param name="waitTime">等待时间</param>
 /// <returns></returns>
 public static bool DHOperateUserInfo(int iLogin, USER_OPERATE operate, USER_INFO userNewInfo, USER_INFO userOldInfo, int waitTime)
 {
     bool retValue = false;
     IntPtr pBoxInfo = IntPtr.Zero;
     IntPtr pBoxInfo1 = IntPtr.Zero;
     try
     {
         pBoxInfo = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(USER_INFO)));//分配固定的指定大小的内存空间
         pBoxInfo1 = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(USER_INFO)));//分配固定的指定大小的内存空间
         if (pBoxInfo != IntPtr.Zero & pBoxInfo1!=IntPtr.Zero)
         {
             Marshal.StructureToPtr(userNewInfo, pBoxInfo, true);
             Marshal.StructureToPtr(userOldInfo, pBoxInfo1, true);
             retValue = CLIENT_OperateUserInfo(iLogin, (int)operate, pBoxInfo, pBoxInfo1, waitTime);
         }
         DHThrowLastError(retValue);
     }
     catch (Exception e)
     {
         DHThrowLastError(e);
         retValue = false;
     }
     finally
     {
         Marshal.FreeHGlobal(pBoxInfo);//释放固定内存分配
         pBoxInfo = IntPtr.Zero;
         Marshal.FreeHGlobal(pBoxInfo1);//释放固定内存分配
         pBoxInfo1 = IntPtr.Zero;
     }
     return retValue;
 }