WB Editor 插件工作原理的解剖

WB Editor 可以通过插件可以丰富其功能。比如,拼写检查、Wiki 排版、语法加亮插件等等。WB Editor 插件是外挂的软件模块。它编译成 DLL 的形式,当把它放到 WB Editor 的运行目录,WB Editor 能自动识别它。

WB Editor 插件是一个实现了 IWBEditorPlugIn 接口的类。
public interface IWBEditorPlugIn
{
    string GetPluginName();
    string[] GetCommands(string parentCommand);
    int QueryStatus(string name);
    void ExecuteCommand(string name);

WB Editor 启动的时候自动扫描程序运行目录下面的所有 DLL,查找实现了 IWBEditorPlugIn 接口的类。找到后动态载入插件类,调用它的 GetPluginName 方法查询插件名称,并把这个名称显示在 Plugin 菜单下面。接着继续用 GetCommands 来查询插件命令名称,并把它们显示在插件名称菜单下面。这就实现了一个插件多个命令的功能。GetCommands 可以返回 null,表示没有命令,而插件名称就成为唯一的命令。

如果用户点击了插件菜单,WB Editor 就调用 ExecuteCommand 来执行用户选择的命令。这时候程序运行的控制权就交到插件手里了。

那么,插件有怎么控制 WB Editor 呢?这就需要用到 WBEditorService 类了。WB Editor 一开始运行,就已经预先初始化好了 WBEditorService, 插件可以

- 用 WBEditorService.GetEditorContent 获取编辑器中的内容。
- 用 WBEditorService.SetEditorContent 设置新的编辑内容。
- 用 WBEditorService.GetSelection 获取编辑器被选中的内容。
- 用 WBEditorService.InsertText 向编辑器中插入内容。
- 还有作文字替换的函数、获取 COM IHTMLElement,IHTMLDocument,RSS Item XmlDocument 等等的高级功能函数。

WB Editor 插件接口标准和参考程序: http://www.wbeditor.com/content/view/34/44

WB Editor 插件可以用 C#, VB.NET 或者 Delphi 8 来做,因为是 .NET 一家子嘛。
做法是:
1.创建一个 Class Library,Add reference IWBEditorPlugIn.dll
2.创建一类实现 IWBEditorPlugIn 接口,以及插件的功能。
3.编译后,把得到的 DLL 复制到 WB Editor 运行目录下。重新运行 WB Editor,就能看到 Tools | Plugins 菜单下有新的插件了。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值