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

第23回 Windows Live フォト ギャラリー ── はてなフォトライフ プラグインの作成 Part II

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

プロジェクトの作成

それではプラグインを作成していきましょう。プラグインは.NET Frameworkのクラスライブラリとして作成します。本連載では Visual Studio 2008とVisual Basicを使用しています。

プロジェクトの新規作成

まずはWindowsのクラスライブラリのプロジェクトを新規に作成します図4⁠。

図4 新しいプロジェクトの作成

図4 新しいプロジェクトの作成

参照の追加

続いて必要な参照をふたつ追加します。ソリューションプロパティからプロジェクトを右クリックして表示されるメニューから追加が可能です。

参照の追加ウィンドウの参照タブを選択し,Live フォト ギャラリーがインストールされている場所※2から「Microsoft.WindowsLive.PublishPlugins」を追加します図5⁠。

この中にプラグインが実装すべきInterfaceの情報があります。

図5 参照の追加

図5 参照の追加

.NETタブから「System.Windows.Forms」も追加します。

※2

通常は,C:\Program Files\Windows Live\Photo Gallery です。Vista 64bit版の場合はProgram Files (x86)になります。

Interfaceの実装

IPublishPluginというInterfaceを通してプラグインとLiveアプリケーションはやり取りを行います。プラグインはこのInterfaceを実装する必要があります。プロジェクトにあるクラスファイルを適当な名前に変更しInterfaceを実装しましょう。コードは次のようになります。

Imports Microsoft.WindowsLive.PublishPlugins
Imports System.Windows.Forms
Imports System.Xml

Public Class HatenaFotolifePlugin
    Implements IPublishPlugin

    Public Function ShowConfigurationSettings(ByVal parentWindow As IWin32Window, ByVal sessionXml As XmlDocument, ByVal persistXml As XmlDocument, ByVal publishProperties As IPublishProperties) As Boolean Implements IPublishPlugin.ShowConfigurationSettings
    End Function

    Public Function PublishItem(ByVal parentWindow As IWin32Window, ByVal mediaObjectId As String, ByVal stream As System.IO.Stream, ByVal sessionXml As XmlDocument, ByVal publishProperties As IPublishProperties, ByVal callback As IPublishProgressCallback, ByVal cancelEvent As System.Threading.EventWaitHandle) As Boolean Implements IPublishPlugin.PublishItem
    End Function

    Public Function HasPublishResults(ByVal sessionXml As XmlDocument) As Boolean Implements IPublishPlugin.HasPublishResults
    End Function

    Public Function HasSummaryInformation(ByVal sessionXml As XmlDocument) As Boolean Implements IPublishPlugin.HasSummaryInformation
    End Function

    Public Sub LaunchPublishResults(ByVal sessionXml As XmlDocument) Implements IPublishPlugin.LaunchPublishResults
    End Sub

    Public Sub ShowSummaryInformation(ByVal parentWindow As IWin32Window, ByVal sessionXml As XmlDocument) Implements IPublishPlugin.ShowSummaryInformation
    End Sub
End Class

本記事ではクラス名を「HatenaFotolifePlugin」としています。クラスに「Implements IPublishPlugin」を入力すると,Visual Studioが上記のメソッドを自動で挿入します。これらのメソッドの処理を記述していくとプラグインの完成です。

著者プロフィール

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

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

URL:http://katamari.jp