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 菜单下有新的插件了。