WB Editor æ’件工作原ç†çš„解剖
November 10th, 2004
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 èœå•下有新的æ’件了。
有兴趣者欢迎试试。
Entry Filed under: WB Editor
Leave a Comment
Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
Trackback this post | Subscribe to the comments via RSS Feed