using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Api.Framework.SDK
{
///
/// 插件版本
///
public class PluginVersion
{
///
/// 软件最低版本
///
public Version SoftVersion { get; set; }
///
/// 当前版本号
///
public Version CurVersion { get; set; }
///
/// 当前版本更新内容
///
public string CurMessage { get; set; }
///
/// 下载地址
///
public string DownURL { get; set; }
}
///
/// 插件基础类 - 插件开发继承后重写
///
public class Plugin : IDisposable, IComparable
{
internal SDKEvent _SDK { get; set; }
///
/// 事件
///
public SDKEvent SDK
{
get
{
if (_SDK == null)
{
_SDK = new SDKEvent(this);
}
return _SDK;
}
}
//public bool IsNet { get; internal set; }
///
/// 插件名称
///
public string Name { get; set; }
///
/// 插件简介
///
public string Note { get; set; }
///
/// XML版本信息
///
public string VersionXML { get; set; }
///
/// 当前版本号
///
public Version CurVersion { get; internal set; }
///
/// 文件路径
///
public string FilePath { get; internal set; }
///
/// 插件MD5信息
///
public string Md5 { get; internal set; }
///
/// 插件顺序
///
public int Level { get; internal set; }
public bool IsRun { get; internal set; }
///
/// 插件图标
///
public Image Logo { get; set; }
public void Dispose()
{
}
/////
///// 安装s
/////
//public virtual void Install() { }
/////
///// 卸载
/////
//public virtual void UnInstall() { }
///
/// 启动
///
public virtual void Start() { }
///
/// 窗体
///
public virtual void ShowForm()
{
MessageBox.Show("这个插件没有设置窗口!", "错误提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
///
/// 停用
///
public virtual void Stop() { }
public int CompareTo(object obj)
{
try
{
Plugin info = obj as Plugin;
string str = obj.GetType().ToString();
//Console.WriteLine();
if (str == "AutoAnswer.Class1") return -1;
else if (this.GetType().ToString() == "AutoAnswer.Class1") return 1;
if (str == "MessageSupervises.Class1") return 1;
else if (this.GetType().ToString() == "MessageSupervises.Class1") return -1;
if (this.Level < info.Level)
return -1;
if (this.Level == info.Level)
return 0;
else
return 1;
}
catch (Exception) { return 0; }
}
}
}