internal static extern void nim_nos_download_media_ex( [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Utf8StringMarshaler))] string json_msg, [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Utf8StringMarshaler))] string json_extension, DownloadCb res_cb, IntPtr res_user_data, DownloadPrgCb prg_cb, IntPtr prg_user_data, DownloadSpeedCb speed_cb, IntPtr speed_user_data, DownloadInfoCb info_cb, IntPtr info_user_data);
/// <summary> ///下载资源(扩展) /// </summary> /// <param name="url">下载资源的URL</param> /// <param name="param">http 扩展参数</param> /// <param name="resCb">下载结果的回调函数</param> /// <param name="resData">下载结果回调自定义用户数据,</param> /// <param name="prgCb">下载进度的回调函数</param> /// <param name="prgData">进度回调自定义用户数据</param> /// <param name="speedCb">下载速度的回调函数</param> /// <param name="speedData">下载速度回调自定义用户数据</param> /// <param name="infoCb">返回最终下载信息的回调函数</param> /// <param name="infoData">下载信息回调的自定义用户数据</param> public static void DownloadEx(string url, HttpExtendedParameters param, DownloadCb resCb, IntPtr resData, DownloadPrgCb prgCb, IntPtr prgData, DownloadSpeedCb speedCb, IntPtr speedData, DownloadInfoCb infoCb, IntPtr infoData) { CallbackDataPair resPair = new CallbackDataPair(resCb, resData); CallbackDataPair prgPair = new CallbackDataPair(prgCb, prgData); CallbackDataPair speedPair = new CallbackDataPair(speedCb, speedData); CallbackDataPair infoPair = new CallbackDataPair(infoCb, infoData); NosNativeMethods.nim_nos_download_ex(url, param != null ? param.Serialize() : string.Empty, DownloadResultCallbackEx, resPair.ToIntPtr(), DownloadPrgCallbackEx, prgPair.ToIntPtr(), DownloadSpeedCallbackEx, speedPair.ToIntPtr(), DownloadInfoCallbackEx, infoPair.ToIntPtr()); }
/// <summary> /// 获取资源(扩展) /// </summary> /// <param name="msg">包含附件的消息体</param> ///<param name="param">下载扩展信息</param> /// <param name="resCb"></param> /// <param name="resData"></param> /// <param name="prgCb"></param> /// <param name="prgData"></param> /// <param name="speedCb"></param> /// <param name="speedData"></param> /// <param name="infoCb"></param> /// <param name="infoData"></param> public static void DownloadMediaEx(NIMIMMessage msg, HttpExtendedParameters param, DownloadCb resCb, IntPtr resData, DownloadPrgCb prgCb, IntPtr prgData, DownloadSpeedCb speedCb, IntPtr speedData, DownloadInfoCb infoCb, IntPtr infoData) { var msgJson = msg.Serialize(); CallbackDataPair resPair = new CallbackDataPair(resCb, resData); CallbackDataPair prgPair = new CallbackDataPair(prgCb, prgData); CallbackDataPair speedPair = new CallbackDataPair(speedCb, speedData); CallbackDataPair infoPair = new CallbackDataPair(infoCb, infoData); NosNativeMethods.nim_nos_download_media_ex(msgJson, param == null ? null : param.Serialize(), DownloadResultCallbackEx, resPair.ToIntPtr(), DownloadPrgCallbackEx, prgPair.ToIntPtr(), DownloadSpeedCallbackEx, speedPair.ToIntPtr(), DownloadInfoCallbackEx, infoPair.ToIntPtr()); }
internal static extern void nim_nos_download([MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(NimUtility.Utf8StringMarshaler))] string nos_url, DownloadCb res_cb, IntPtr res_user_data, DownloadPrgCb prg_cb, IntPtr prg_user_data);
internal static extern void nim_nos_reg_download_cb(DownloadCb cb, IntPtr user_data);
internal static extern void nim_nos_download_media( [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(Utf8StringMarshaler))] string json_msg, DownloadCb res_cb, IntPtr res_user_data, DownloadPrgCb prg_cb, IntPtr prg_user_data);