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

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

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

設定ウィンドウの表示

それではInterfaceのメソッドを実装していきましょう。まず,設定ウィンドウの表示処理を実装します。設定ウィンドウの表示等を行うメソッドはShowConfigurationSettingsです。

今回作成するプラグインでは最低限必要なものとしてユーザー名とパスワードをユーザーが入力するウィンドウを作成します。ユーザー名は一度入力されたものはプラグイン固有の設定として保存しておき,次回のアップロード時に入力が省けるよう設計します。パスワードは保存せずに毎回入力するものとします。

ShowConfigurationSettingsメソッド内部で次の処理を順に行います。

  1. プラグイン設定から以前入力したユーザー名情報を取得
  2. 設定ウィンドウの表示(ユーザー名とパスワードの入力)
  3. 入力された情報から,はてなフォトライフPostURIの取得
  4. ユーザー名をプラグイン設定として保存
  5. PostURI・ユーザー名・パスワードをセッション情報として保存

ウィンドウの作成

プロジェクトにユーザー名等を入力するためのWindowsフォームを追加します。作成するウィンドウを図7に示します。図7を参考にコントロールを配置してください。オレンジ色の文字は記事中で使用しているコントロール名です。

図7 ユーザー名とパスワード入力用Form

図7 ユーザー名とパスワード入力用Form

Windows フォーム内のコードを以下に示します。

' ユーザー名
Public ReadOnly Property UserName() As String
    Get
        Return UserNameTextBox.Text
    End Get
End Property

' パスワード
Public ReadOnly Property Password() As String
    Get
        Return PasswordTextBox.Text
    End Get
End Property

' コンストラクタ
Public Sub New(ByVal userName As String)
    Me.InitializeComponent()
    UserNameTextBox.Text = userName ' ユーザー名をTextBoxに設定
    PublishButton.Enabled = False ' 投稿ボタン無効化
    Me.StartPosition = Windows.Forms.FormStartPosition.CenterParent ' 親ウィンドウの中央に表示
End Sub

' TextBoxに値が入力されている場合,投稿ボタンを有効にする
Private Sub UserNameComboBox_Or_PasswordTextBox_TextChanged( _
    ByVal sender As Object, ByVal e As System.EventArgs) _
    Handles UserNameTextBox.TextChanged, _
            PasswordTextBox.TextChanged
    ' 投稿ボタンの有効・無効化
    PublishButton.Enabled = CBool(UserNameTextBox.Text <> "" AndAlso PasswordTextBox.Text <> "")
End Sub

' 投稿ボタンクリック
Private Sub PublishButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PublishButton.Click
    Me.DialogResult = Windows.Forms.DialogResult.OK
End Sub

' キャンセルボタンクリック
Private Sub CancelButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CancelButton.Click
    Me.DialogResult = Windows.Forms.DialogResult.Cancel
End Sub

ポイントは,ユーザー名をコンストラクタ引数で受け取る部分と,入力した値はプロパティとして参照できるようにしている部分です。

メソッドの引数と戻り値

ShowConfigurationSettingsメソッドには以下の引数があります。

引数名 説明
parentWindow Liveアプリケーションのウィンドウハンドル。設定ウィンドウを表示する際に親ウィンドウと指定するために使用します。
sessionXml アップロード対象の動画像情報のXML文書。プラグインが使用する一時的な情報はこのXML文書を書き換えて保持します。
persistXml プラグイン固有の設定保存用のXML文書。プラグインは自由に形式を決定し使用できます。
publishProperties 動画像の関連データへアクセスするためのIPublishPropertiesというInterfaceのオブジェクト。

引数にあるようにLiveアプリケーションとプラグインと情報のやり取りにXML文書(XmlDocumentオブジェクト)が利用されています。加えてIPublishProperties Interfaceによりメタデータへアクセスが可能です。sessionXmlとpersistXmlについては後述しています。publishPropertiesは今回使用していません。

メソッドの戻り値はBoolean型です。処理を続ける場合にはTrueを,中断する場合はFalseを返します。

著者プロフィール

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

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

URL:http://katamari.jp