Example #1
0
 /// <summary>
 /// correct user group
 /// </summary>
 /// <param name="iLogin"></param>
 /// <param name="grpInfo"></param>
 /// <param name="waitTime"></param>
 /// <returns></returns>
 public static bool NETOperateUserInfo(int iLogin, USER_OPERATE operate, USER_GROUP_INFO grpNewInfo, USER_GROUP_INFO grpOldInfo, int waitTime)
 {
     bool retValue = false;
     IntPtr pBoxInfo = IntPtr.Zero;
     IntPtr pBoxInfo1 = IntPtr.Zero;
     try
     {
         pBoxInfo = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(USER_GROUP_INFO)));//Allocate fixed and specified memory space
         pBoxInfo1 = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(USER_GROUP_INFO)));//Allocate fixed and specified memory space
         if (pBoxInfo != IntPtr.Zero && pBoxInfo1!=IntPtr.Zero)
         {
             Marshal.StructureToPtr(grpNewInfo, pBoxInfo, true);
             Marshal.StructureToPtr(grpOldInfo, 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
         pBoxInfo = IntPtr.Zero;
     }
     return retValue;
 }
Example #2
0
 /// <summary>
 /// 修改用户组
 /// </summary>
 /// <param name="iLogin"></param>
 /// <param name="grpInfo"></param>
 /// <param name="waitTime"></param>
 /// <returns></returns>
 public static bool DHOperateUserInfo(int iLogin, USER_OPERATE operate, USER_GROUP_INFO grpNewInfo, USER_GROUP_INFO grpOldInfo, int waitTime)
 {
     bool retValue = false;
     IntPtr pBoxInfo = IntPtr.Zero;
     IntPtr pBoxInfo1 = IntPtr.Zero;
     try
     {
         pBoxInfo = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(USER_GROUP_INFO)));//分配固定的指定大小的内存空间
         pBoxInfo1 = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(USER_GROUP_INFO)));//分配固定的指定大小的内存空间
         if (pBoxInfo != IntPtr.Zero && pBoxInfo1!=IntPtr.Zero)
         {
             Marshal.StructureToPtr(grpNewInfo, pBoxInfo, true);
             Marshal.StructureToPtr(grpOldInfo, 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);//释放固定内存分配
         pBoxInfo = IntPtr.Zero;
     }
     return retValue;
 }