📄 interface.cs
字号:
using System;
using System.Collections;
using System.Windows.Forms;
namespace Core.Services.Sdk
{
/// <summary>
/// IPlugin提供了一個插件到宿主程序的通讯接口,宿主程序通过它来获取插件信息和执行操作。
/// </summary>
public interface IPlugin:IDisposable
{
/// <summary>
/// 返回一个包含插件基础信息的PluginInfo对象
/// </summary>
PluginInfo PluginInfo
{
get;
}
/// <summary>
/// 用于与用户交互的窗体,没有可设为null
/// </summary>
Form Window
{
get;
}
/// <summary>
/// 宿主程序将开辟一个新的线程来执行此方法
/// <param name="Targets">要处理的对象的文件名或目录名列表</param>
/// </summary>
void AssignTask(ArrayList Targets);
/// <summary>
/// 当任务进度改变时,将触发该事件
/// </summary>
event ProgressChangedEventHandler ProgressChanged;
}
/// <summary>
/// 提供简单的插件信息
/// </summary>
public interface IPluginInfo
{
/// <summary>
/// 名称
/// </summary>
string Name
{
get;
}
/// <summary>
/// 版本
/// </summary>
Version Version
{
get;
}
/// <summary>
/// 作者
/// </summary>
string Author
{
get;
}
/// <summary>
/// 描述
/// </summary>
string Description
{
get;
}
}
/// <summary>
/// 包含了当前任务进度信息的事件参数
/// </summary>
public class ProgressChangedEventArgs:EventArgs
{
private int _Progress;
private int _Max;
/// <summary>
/// 创建一个包含了进度信息的事件参数
/// <param name="Progress">已完成的进度</param>
/// <param name="Progress">当Progress的值与Max相等时,认为任务已完成</param>
/// </summary>
public ProgressChangedEventArgs(int Progress, int Max)
{
_Progress=Progress;
_Max = Max;
}
/// <summary>
/// 已完成的进度
/// </summary>
public int Progress
{
get { return _Progress; }
}
/// <summary>
/// 进度的最大值
/// </summary>
public int Max
{
get { return _Max; }
}
}
/// <summary>
/// ProgressChanged事件的托管方法
/// </summary>
public delegate void ProgressChangedEventHandler(object sender,ProgressChangedEventArgs e);
/*
/// <summary>
/// Finished事件的托管方法
/// </summary>
public delegate void TaskFinishedEventHandler(object sender,EventArgs e);*/
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -