星期四, 11月 08, 2007
星期四, 11月 08, 2007

https://rhinohorns.blogspot.com/2007/11/wlw-plugin-contentsource.html
撰寫 WLW Plugin - ContentSource 篇

些天使用 Windows Live Writer (文後簡稱 WLW) 發了幾篇文章,覺得實在是不錯用,不過就是有些功能不太合手,再加上 WLW 有提供 API 供使用者開發 Plguin,所以就找了一下資料,動手練習撰寫了一個 Plugin。

解釋如何製做前先描述一下這個練習的 Plugin 其中一項所需要達成的效果,

  1. 在 WLW 編輯框內反白一列文字 。
  2. 點選我們撰寫的 Plugin,按下「確定」。
  3. 回到 WLW 編輯框,出現螢光筆的效果。

簡單說就是以上這三步,速寫時個人習慣使用 VB 語法,所以下列的程式碼以 VB.net 呈現。

- 引用 -

打開 VS 建立一個 類別庫 (ClassLibrary) 專案,把安裝 WLW 目錄下的 WindowsLive.Writer.Api.dll 加入參考之中。

-類別-

這個範例中產生一個類別名 FluorescentPen 並繼承 ContentSource,由於我們只是單純的處理字串並產生 html 碼,所以選擇 ContentSource 即可,不用到 SmartContentSource。

再來幫類別加上兩個屬性 WriterPlugin 及 InsertabllContentSource

  • WriterPluin 中設定了 Guid、PluginName、Plugin 所用圖示檔。圖示檔利用專案內加入的圖片,將其設定為內嵌資源
  • InsertabllContentSource 中設定了於 WLW 中顯示的 Plugin 名稱。

覆寫 CreateContent 函數,秀出一個表單,將反白的文字傳給表單處理,並傳回 html碼。要點在參數 content,content 傳進此函數時字串內容即是反白的文字,而將 html 傳出至 WLW 也是利用此參數,不過帶入的反白文字是包含 html 標籤的網頁原始碼,所以就看後續動作是否需將這些標籤處理掉。

- 表單 -

表單的部分就與一般撰寫 WinForm 相同,這列出其中處理螢光筆效果按鈕的程式碼,將處理完畢的 html 存入變數供 CreateContent 取用。

- 建置 -

建置完畢後,將產出的 .dll 放至安裝 WLW 目錄下的 Plugins 目錄中即可讓 WLW 於開啟時載入使用。

 sample_makeWlwPlugin00

大至上利用 ContentSource 撰寫 WLW Plugin 的整個流程就是這個樣子。

1 意見:

犀角 提到...

也可以在專案屬性的建置後事件命令列填入

XCOPY /D /Y /R "$(TargetPath)" "C:\Program Files\Windows Live\Writer\Plugins\"

這樣就會直接放到 Pulgins 的目錄下了。