Jaa


[フォトギャラリー & ムービーメーカー Plug in] 第8回 ~詳細情報を表示するには~

[ フォトギャラリー & ムービーメーカーPlug in]
第8回 ~詳細情報を表示するには~ 前回までの記事で、Visual Studioを使用して設定画面の表示と画像のアップロードの処理を行いました。
今回は、詳細情報の表示を行う部分を実装します。

[ 詳細表示について ]
プラグインでは、画像のアップロード後に2つの情報を表示させることができます。
1つはアップロードした画像を表示させる部分、もう1つは詳細情報を表示させる部分です。
どちらも、プラグイン側で用意した情報を表示させることができます。
これらの情報は、表示させないこともできます。

[ アップロード終了時に表示されるダイアログ ]
フォトギャラリーの場合は、アップロード終了時に下図のようなダイアログが表示されます。

このダイアログの中の [表示] ボタンと、左下にある [詳細情報] と書かれたリンクをクリックしたときに表示される内容を、プラグイン側で実装します。
これらのボタンやリンクは、プラグイン側で非表示にさせることもできます。

ムービーメーカーの場合は、下図のようなダイアログが表示されます。

この中の [オンラインで視聴] ボタンと、[詳細情報] のリンクの部分をプラグイン側で実装します。

[ 用意すべきメソッド ]
ここでは、以下の4つのメソッドを実装します。

HasPublishResults : フォトギャラリーの場合は [表示] ボタン、ムービーメーカーの場合は [オンラインで視聴] ボタンを表示させるかどうかを指定するメソッド
LaunchPublishResults : [表示] ボタンまたは [オンラインで視聴] ボタンをクリックしたときに呼ばれるメソッド
HasSummaryInformation : [詳細情報] のリンクを表示させるかどうかを指定するメソッド
ShowSummaryInformation : [詳細情報] のリンクをクリックしたときに呼ばれるメソッド

HasPublishResultsでfalseを返すように実装した場合は、LaunchPublishResultsは呼ばれません。
同様に、HasSummaryInformationでfalseを返すように実装した場合は、ShowSummaryInformationは呼ばれません。

[ メソッドの実装 ]
Hasで始まる2つのメソッドは、trueかfalseかを返すだけです。
ここでは、どちらもtrueを返すように実装します。
LaunchPublishResultsとShowSummaryInformationについては、アップロードした画像やそれに関する情報を表示させるようなWebサイトがあれば、そのURLを指定して表示させることができます。
ダイアログを表示させて、そこに情報を載せることもできます。
ここでは、動きを見るための例ということで、適当なURLを指定して表示させています。
第5回のプロジェクトで作成したクラスライブラリのソースコードに戻り、すでにひな形を作成している4つのメソッドに、以下の青字の部分のコードを追加してください。

public bool HasPublishResults(System.Xml.XmlDocument sessionXml)
{
// アップロード先を表示させるメソッド (LaunchPublishResults) を用意した時は、
// true を返すようにする。用意していない時は false を返すようにする。
return true;
}

public bool HasSummaryInformation(System.Xml.XmlDocument sessionXml)
{
// 詳細情報を表示させるメソッド (ShowSummaryInformation) を用意した時は、
// true を返すようにする。用意していない時は false を返すようにする。
return true;
}

public void LaunchPublishResults(System.Xml.XmlDocument sessionXml)
{
// サンプルとして、適当な Web サイトを表示している。
// 実際には、アップロード先の URL を指定し、アップロードされた状態を表示させる。
Process.Start("https://www.microsoft.com/ja/jp/");
}

public void ShowSummaryInformation(IWin32Window parentWindow, System.Xml.XmlDocument sessionXml)
{
// 詳細情報の表示。
// 詳細情報を掲載する Web サイトがあればその URL を指定したり、
// ダイアログのようなものを表示させて、そこに詳細情報を掲載させる。
Process.Start("https://bing.jp");
}

これで、サンプルとして使用するプラグインのDLLの作成が終了しました。

次回はプラグインとしてフォトギャラリーやムービーメーカーから呼び出せるようにする方法を説明します。
プラグインが呼び出せるようになると、実際の動きをテストすることができます。

[ フォトギャラリー & ムービーメーカーPlugin 連載 ]
第1回 : ~フォトギャラリーを知っていますか?~ 第2回 : ~なかなか使えるムービーメーカー~ 第3回 : ~プラグインとは? プラグインを作るには?~ 第4回 : ~プラグインについて知っておくべきこと~
第5回 : ~プラグインに実装する6つのメソッドの用意~ 第6回 : ~設定画面の表示~
第7回 : ~画像の処理またはアップロード~
第8回 : ~詳細情報を表示するには~

マイクロソフト
田中達彦