MarineProjects/MarineToolbar/Developer

エクステンション bookmark

ご注意 bookmark

エクステンションによる拡張機能は、Marineツールバーの1.13 β2以上で提供される機能です。
それ以前のバージョンでは利用することができません。

エクステンションは、XMLとスクリプトを利用てMarineツールバーのボタンを作成する拡張機能です。

作成されたボタンは、プラグインとして認識され、COMを利用して作成されたプラグインと同じようにMarineツールバーに登録して利用することができます。

C(C++)言語+COMを利用して作成されるプラグインほど自由な機能を実装できませんが、XMLが理解できる程度の知識でボタンを作成できます。

エクステンションで実装可能な機能は以下通りです。単純なボタンから、下記機能を組み合わせたボタンを作成することができます。

  • リンク
    • 任意のURLをボタンやメニューに登録することができます。
  • 検索
    • 任意の検索エンジンをボタンやメニューに登録することができます。
  • RSSフィード
    • 任意のRSSフィードをメニューに登録することができます。
  • スクリプト
    • 任意のスクリプトをボタンやメニューに登録することができます。
      スクリプトは、XMLファイルとは別のファイルで作成したものを利用します。利用できるスクリプト言語は、スクリプトプラグインサポートしているJScriptとVBScriptで作成します。

エクステンションの導入 bookmark

エクステンションは、Marineツールバーをインストールしたフォルダ配下のExtensionフォルダに格納します。
エクステンションには、固有の識別子が割り当てられます。識別子はGUIDとも呼ばれており、GUID作成ツールを利用して生成することができます。

path.jpg

個々のエクステンションは、Extensionフォルダの下にGUIDのサブフォルダを作成して、その中にXMLなどのファイルを格納します。

エクステンションの構成 bookmark

エクステンションを作成するには、XMLファイルやボタン画像、スクリプトファイルが必要になりますが、必須のファイルは2つだけです。

GUIDの作成 bookmark

GUIDの作成は、VC++やPlatform SDKに含まれているguidgen.exeというツールを利用して生成します。

guid.jpg

guidgen.exeを起動して、4のRegistry Formatが選択されているのを確認して、[Copy]ボタンをクリックすると、作成されたGUIDがクリップボードにコピーされます。
別のGUIDを作成する場合は、[New GUID]ボタンをクリックしてください。

必須ファイル bookmark

  • extension.xml
    • エクステンションについて定義したXMLファイル
  • extension.bmp
    • ボタンの画像として表示されるBMPファイル(16×16)

その他のファイル bookmark

  • .ico
    • メニューに表示するアイコンファイル(16×16)
  • .js、.vbs
    • スクリプトを記述したファイル。
スクリプトファイルやアイコンファイルは、extension.xmlと同じフォルダに格納する必要があります。

標準的なボタン  bookmark

サンプル bookmark

任意のサイトに移動するだけの標準的なボタンを記述したextension.xmlです。
この例では、ボタンをクリックすると「Yahoo! JAPAN」に移動するボタンについて、定義しています。

ボタンに表示される画像はextension.bmpです。

このボタンのGUIDは、{0A4CFB59-41E9-477e-BC9F-5055626E4E07}ですので、Extension\{0A4CFB59-41E9-477e-BC9F-5055626E4E07}にextension.xmlとextension.bmpを格納すればMarineツールバーで利用することができます。

  • プラグインの追加と削除ダイアログ
    dialog01.jpg
  • Marineツールバーでの表示
    button01.jpg

このようにエクステンションを利用すると簡単にボタンを作成して、Marineツールバーで利用できるようになります。

説明 bookmark

先ほどのextension.xmlを例にXMLの記述方法について説明します。

1行目の<?xml version="1.0" encoding="utf-8"?>はお約束なのでそのまま記述してください。
エクステンションのルート要素は<buttons>で、その中にエクステンションについて記述します。<buttons>の属性として、GUIDを記述します。

  • buttons要素
    GUIDを属性として記述します。
    • title要素
      エクステンションのタイトルを記述します。ここに記述されたタイトルは、「プラグインの追加と削除」ダイアログで、プラグイン名として表示されます。
    • description要素
      エクステンションの説明を記述します。ここに記述されたタイトルは、「プラグインの追加と削除」ダイアログで、説明として表示されます。
    • author要素
      エクステンションの作者名を記述します。ここに記述された作者名は、「プラグインの追加と削除」ダイアログで、作者名として表示されます。
    • version要素
      エクステンションのバージョンを記述します。ここに記述された作者名は、「プラグインの追加と削除」ダイアログで、バージョンとして表示されます。(4桁の文字列を.で区切って表記します)
    • button要素
      Marineツールバー上に表示されるボタンについて記述します。
      属性のtypeは、ボタンの形状を指定します。標準のボタンはnormal、ドロップダウンのみはwholedropdown、ボタン+ドロップダウンの場合はdropdownを指定します。
      • title要素
        ボタンに表示するタイトルを記述します。ボタン名を表示しない場合は省略できます。
      • tooltip要素
        ボタンがマウスオーバー時に表示されるツールチップの文字列を記述します。
        ツールチップが不要な場合は省略できます。
      • action要素
        ボタンがクリックされた時の動作について記述します。この例では、「Yahoo! JAPAN」のサイトに移動することを記述しています。
        属性のtypeにその他の動作をしてすることで検索実行やスクリプト実行を行うことができます。

複数の機能を持つボタン bookmark

先ほど紹介した標準的なボタンをベースに、エクステンションでサポートする機能を追加したサンプルを紹介します。
このサンプルは、ボタン+ドロップダウン形式でメニュー機能を実装します。

サンプル bookmark

メニューでは、以下の機能を定義しています。

  • 検索機能
    • Yahoo!検索
    • Yahoo!オークション検索
  • リンク
    • Yahoo!ウィジェットへ移動
  • スクリプト機能
    • Yahoo!メールへのログイン
    • Yahoo!オークションへのログイン
  • RSSフィード
    • Yahoo!新着情報 - 話題先読み情報の表示
    • Yahoo!新着情報 - 新着オススメサイト集の表示
button02.jpg

XMLの記述は以下の通りです。

説明 bookmark

先ほどのサンプルと大きく違うところは、buttonのtypeにdropdownをしていることと、メニューとして表示される情報となるmenus要素が定義されていることです。

リファレンス bookmark

buttons要素 bookmark

要素・属性説明備考
guidguidを属性として記述します。必須
titleエクステンションのタイトルを記述します。必須
descriptionエクステンションの説明を記述します。必須
authorエクステンションのタイトルを作者名します。必須
versionエクステンションのタイトルをバージョンします。必須
buttonボタンについて定義します。詳細はbutton要素の属性と要素で記述します。必須
menusボタンのタイプをドロップダウン形式に指定した場合に表示されるメニューについて定義します。詳細はmenu要素の属性と要素で記述します。任意

button要素 bookmark

要素・属性説明備考
typeボタンの形式をtypeで属性として記述します。必須
normal標準ボタン
wholedoropdownドロップダウン
dropdownボタン+ドロップダウン
titleボタンに表示されるタイトルを記述します。ボタン名を表示しない場合は省略できます。任意
tooltipボタンがマウスオーバー時に表示されるツールチップの文字列を記述します。ツールチップが不要な場合は省略できます。任意
actionボタンがクリックされた時の動作について記述します。必須

button要素中のaction要素 bookmark

要素・属性説明備考
type動作をtypeで属性として記述します。必須
linkリンク
search検索
scriptスクリプト
urltypeにlink、searchを指定した場合に使用されます。任意
charset検索パラメータのエンコーディングを指定します。省略した場合はutf-8で送信されます。任意
shift-jisシフトJIS
utf-8UTF-8
euc-jpEUC-JP
iso-2022-jpJIS
method検索のメソッドをgetまたはpostで指定します。typeにsearchを指定した場合に使用されます。任意
param検索のpostパラメータに使用するパラメータを記述します。methodにpostを指定した場合に使用されます。任意
referer検索実行時に使用するrefererを記述します。typeにsearchを指定した場合に使用されます。任意
filetypeにscriptを指定した場合に使用されます。スクリプトプラグインによって実行されるスクリプトが記述されたファイル名を記述します。任意

menus要素 bookmark

要素・属性説明備考
menuメニューについての定義を記述します。menu要素の詳細についてはmenu要素表をご参照ください。必須

menu要素 bookmark

要素・属性説明備考
typeメニューの形式をtypeで属性として記述します。必須
folderサブメニュー
itemメニューアイテム
titleメニューのタイトルを記述します。必須
descriptionメニューのツールチップを指定します。typeにfolderを指定し場合は使用されません。任意
iconメニューに表示するアイコンのファイル名を指定します。任意
actionメニューがクリックされた時の動作について記述します。typeにfolderを指定し場合は使用されません。任意

menu要素中のaction要素 bookmark

要素・属性説明備考
type動作をtypeで属性として記述します。必須
linkリンク
search検索
scriptスクリプト
feedRSSフィード
urltypeにlink、search、feedを指定した場合に使用されます。任意
charset検索パラメータのエンコーディングを指定します。省略した場合はutf-8で送信されます。任意
shift-jisシフトJIS
utf-8UTF-8
euc-jpEUC-JP
iso-2022-jpJIS
method検索のメソッドをgetまたはpostで指定します。typeにsearchを指定した場合に使用されます。任意
param検索のpostパラメータに使用するパラメータを記述します。methodにpostを指定した場合に使用されます。任意
referer検索実行時に使用するrefererを記述します。typeにsearchを指定した場合に使用されます。任意
filetypeにscriptを指定した場合に使用されます。スクリプトプラグインによって実行されるスクリプトが記述されたファイル名を記述します。任意

その他 bookmark

  • 検索機能について
    • 検索機能を利用する場合のクエリー文字列やpostパラメータの指定は、Marineツールバーの検索エンジンを追加する方法と同じです。詳しくは、検索エンジンのヘルプをご参照ください。

ご注意 bookmark

エクステンションによる拡張機能は、Marineツールバーの1.13 β2で提供される予定です。
それ以前のバージョンでは利用することができません。