使ってみよう! Windows Live SDK/API

第7回 Windows Live Writer ―― プラグインの作成 Part I

この記事を読むのに必要な時間:およそ 4 分

プラグイン プロジェクトの作成

URLを記事に貼り付けたとき,通常はそのままURLがハイパーリンクとして挿入されますが,URLの示すページのタイトルを取得しハイパーリンクとして表示するURLプラグインを作成してみましょう。

Visual Basic 2008 Express Editionを使用してプラグインを作成します。最初にクラスライブラリのプロジェクトを作成します図4⁠。ここではTitlePluginというプロジェクト名にしました。

図4 プロジェクトの作成

図4 プロジェクトの作成

次に参照の追加を行います。ソリューションエクスプローラのプロジェクト名を右クリックし,⁠参照の追加」よりWindows Live Writerがインストールされている場所(通常はC:\Program Files\Windows Live\Writer※1⁠)にあるWindowsLive.Writer.Api.dllを参照してください図5⁠。

※1

Windows Vista 64bit版の場合は,Program Files (x86)フォルダです。

図5 WindowsLive.Writer.Api.dllの参照

図5 WindowsLive.Writer.Api.dllの参照

作成したプラグインをWLWから使用する単純な方法は,WLWのインストールフォルダにあるPluginsフォルダへ作成してできたDLLファイルをコピーすることです。Visual Studio 2008を使用している場合は,ビルドイベントの設定ができます※2⁠。毎回コピーするのはめんどうですので,ビルド後に自動でコピーするよう設定しておきましょう。Visual Basicの場合はプロジェクトのプロパティ画面のコンパイルタブ内にある「ビルド イベント」ボタンから設定できます。⁠ビルド後に実行するコマンド ライン」に次のように指定します※3⁠。

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

Visual C# Express Editionではビルドイベントを設定できますが,Visual Basic Express Editionでは設定できないようです。

※3

Windows VistaのUAC機能が有効の場合,Visual Studioを管理者として実行しておく必要があります。

クラスの作成

最初にWindowsLive.Writer.API名前空間をインポートします。デフォルトのクラスClass1(ファイル名はClass1.vb⁠⁠ は,TitlePluginなど適当な名前に変更しておくとよいでしょう。今回はContentSourceクラスを継承したクラスを作成します。併せて継承の記述も行います。

Imports WindowsLive.Writer.Api
Public Class TitlePlugin
    Inherits ContentSource
End Class

WriterPlugin属性

次にクラスに対してWLWプラグインに共通して必要になるWriterPlugin属性を付けます。この属性を使用してプラグイン名などを指定します。指定できるパラメータは次のものがあります。

Id プラグイン一意のID(GUID)
Name プラグイン名
Description プラグインの説明
PublisherUrl プラグイン版元のURL
HasEditableOptions

オプション設定ウィンドウの有無を示すブール値
ImagePath プラグインを示すアイコンのパス

IdとNameは必須になります。Idはプロジェクトのプロパティのアプリケーションタブ アセンブリ情報からGUIDをコピーして指定するとよいでしょう。属性を指定すると次のようになります。

<WriterPlugin("83092227-2af8-4b4d-94dc-ee85f3a1a186", _
              "タイトル取得", _
              Description:="Webページのタイトルを取得して挿入します", _
              HasEditableOptions:=False)> _
Public Class TitlePlugin
    Inherits ContentSource
End Class

HasEditableOptionsがTrueのプラグインは,WLWのオプションウィンドウでプラグインを選択したとき,⁠オプション]ボタンが表示されます。当然ながらオプションウィンドウを作成しておく必要があります。今回は使用しませんのでFalseを指定します。

プラグインのアイコンを指定する場合は,アイコンファイルをプロジェクトに追加し,プロパティウィンドウの「ビルド アクション」から「埋め込まれたリソース」を選択します。ImagePathにアイコンファイル名を指定すると,WLWのオプションウィンドウなどでそのアイコンファイルが表示に使用されます。

UrlContentSource属性

以上はプラグイン共通の設定でした。URLプラグインのための属性も指定しましょう。URLプラグインの場合は,UrlContentSource属性になります。指定できるパラメータは次のものがあります。

UrlPattern 対象URLを示す正規表現
RequiresProgress プログレスウィンドウの使用を示すブール値
ProgressCaption プログレスキャプション
ProgressMessage プログレスメッセージ

UrlPatternは必須になります。プラグインが機能するURLの正規表現を指定します。⁠http://」を含める必要はありません。また,今回のようにWebページにアクセスする場合は処理に時間がかかる可能性があります。そのようなときのために処理中を示すプログレスウィンドウがWLWには用意されています。ただ,執筆時点のWLWのバージョンではProgressCaptionとProgressMessageの表示に不具合があります。

先ほどのコードに追記すると次のようになります。作成するプラグインはすべてのURLに対して処理するので,正規表現を「.+」と指定しました。

<WriterPlugin("83092227-2af8-4b4d-94dc-ee85f3a1a186", _
              "タイトル取得", _
              Description:="Webページのタイトルを取得して挿入します", _
              HasEditableOptions:=False), _
UrlContentSource(".+")> _
Public Class TitlePlugin
    Inherits ContentSource
End Class

著者プロフィール

松江祐輔(まつえゆうすけ)

日本システムウエア株式会社 勤務。現在,ハードウェア設計・検証業務を担当。大学生・大学院生時代はベンチャー企業 有限会社ミレニアムシステムズにプログラマーとして従事。趣味はプログラミング。好きな言語はVisual Basic。Microsoft MVP for Windows Live Platform(Jul 2010 - Jun 2011),Windows Live(Jul 2011 - Jun 2013)。

URL:http://katamari.jp