protected override object GenerateParamerte(Type paramType, string value) { Object obj = null; if (typeof(Delegate).IsAssignableFrom(paramType)) { if (paramType == typeof(QueryMsglogResultDelegate)) { obj = new QueryMsglogResultDelegate(OnQueryMsgLogCompleted); } else if (paramType == typeof(QueryLogByMsgIdResultDelegate)) { obj = new QueryLogByMsgIdResultDelegate(OnQueryLogByMsgIdCompleted); } else if (paramType == typeof(OperateMsglogResultDelegate)) { obj = new OperateMsglogResultDelegate(OnOperateMsglogCompleted); } else if (paramType == typeof(OperateSingleLogResultDelegate)) { obj = new OperateSingleLogResultDelegate(OnOperateSingleLogCompleted); } else if (paramType == typeof(CommonOperationResultDelegate)) { obj = new CommonOperationResultDelegate(OnCommonOperationCompleted); } else if (paramType == typeof(ImportProgressDelegate)) { obj = new ImportProgressDelegate(ImportProgress); } } else { obj = base.GenerateParamerte(paramType, value); } return(obj); }
/// <summary> /// 删除指定会话类型的所有消息 /// </summary> /// <param name="sType">会话类型</param> /// <param name="deleteSessions">是否删除指定会话类型的所有会话列表项</param> /// <param name="action"></param> public static void DeleteMsglogsBySessionType(NIMSessionType sType, bool deleteSessions, OperateMsglogResultDelegate action) { var ptr = NimUtility.DelegateConverter.ConvertToIntPtr(action); MsglogNativeMethods.nim_msglog_delete_by_session_type_async(deleteSessions, sType, null, OperateMsglogByObjIdCompleted, ptr); }
/// <summary> /// 批量删除指定对话的消息。删除成功后,将相应会话项的最后一条消息的状态kNIMSessionMsgStatus设置为已删除状态 /// </summary> /// <param name="id">会话id,对方的account id或者群组tid</param> /// <param name="sType">会话类型</param> /// <param name="action"></param> public static void BatchDeleteMeglog(string id, NIMSessionType sType, OperateMsglogResultDelegate action) { var ptr = NimUtility.DelegateConverter.ConvertToIntPtr(action); MsglogNativeMethods.nim_msglog_batch_status_delete_async(id, sType, null, OperateMsglogByObjIdCompleted, ptr); }
/// <summary> /// 批量设置未读状态为已读消息状态 /// </summary> /// <param name="id"></param> /// <param name="sType"></param> /// <param name="action"></param> public static void MarkMessagesStatusRead(string id, NIMSessionType sType, OperateMsglogResultDelegate action) { var ptr = DelegateConverter.ConvertToIntPtr(action); MsglogNativeMethods.nim_msglog_batch_status_read_async(id, sType, null, OperateMsglogByObjIdCompleted, ptr); }