Lunascape専用ツールバープラグインの作り方

はじめに


Lunascape専用ツールバープラグインとは、Lunascapeの機能を拡張することができるツールバーです。本項目では、Lunascape専用ツールバープラグインの作成方法について解説します。

解説するLunascape専用ツールバープラグインはC++言語を用いて作成しています。また、解説中のLunascape専用サンプルツールバープラグインを作成するには、Visual Studio .NET 2003もしくはVisual Studio 2005が必要です。

Lunascape専用ツールバープラグイン開発キットのダウンロード


Lunascape専用ツールバープラグイン開発キットをダウンロード(9.5MB)します。
ダウンロードしたファイルを解凍するとLunascapePluginSampleというフォルダが作成されます。

サンプルをビルドしてツールバーを表示する


Visual Studio .NET 2003をお使いの方

  • LunascapePluginSampleフォルダ内にあるLunascapePluginSample.71.slnファイルをVisual Studio .NET 2003で開きます。
  • Visual Studioの[ビルド]メニューから[ソリューションのビルド]を実行します。
  • Visual Studioの[デバッグ]メニューから[開始]を実行します。

Visual Studio 2005をお使いの方

  • LunascapePluginSampleフォルダ内にあるLunascapePluginSample.slnファイルをVisual Studio 2005で開きます。
  • Visual Studioの[ビルド]メニューから[ソリューションのビルド]を実行します。
  • Visual Studioの[デバッグ]メニューから[デバッグ開始]を実行します。

※Standard Edition 以上の製品でしかビルドできません。

ビルドしたツールバーを表示する


起動したLunascapeから[表示]-[ツールバー]-[Lunascapeツールバープラグインサンプル]を選択します

Lunascape上にビルドしたツールバーが表示されます。

ツールバー上にある[LunaTV]ボタンをクリックするとLunascape上でLunaTVが新規タブで開かれます。

オリジナルツールバープラグインの配布


サンプルを元にカスタマイズしたオリジナルのツールバープラグインを、Lunascapeプラグインとして配布するための手順について解説します。

IDの変更

サンプルであらかじめ付与されたIDをそのまま利用してしまうと、他の人がサンプルを元に作成したプラグインのIDと重複してしまう可能性があります。そこで、以下の2つのファイルを手順に従い変更します。

  • ToolBarSample.idl
  • plugin.config

ToolBarSample.idlの修正

Visual StudioからToolBarSample.idlを開きます。

/////////////////////////////////////////////////////////////////////////////
// coclass SampleToolBar

[
#ifdef _DEBUG
uuid(1628BD32-A839-4b87-BAEB-E1204D988CAC),
#else
uuid(7DB4B117-64EF-460e-B371-F277B8781121),
#endif
helpstring("SampleToolBar class")
]
coclass SampleToolBar
{
[default] interface IObjectWithSite;
};

の行を以下のように変更します。

/////////////////////////////////////////////////////////////////////////////
// coclass SampleToolBar

[
uuid(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx),
helpstring("SampleToolBar class")
]
coclass SampleToolBar
{
[default] interface IObjectWithSite;
};

xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxの部分を[ツール]-[GUIDの作成]で作成したGUIDで書き換えてください。

plugin.configの修正
Visual Studioからplugin.configを開きます。

<?xml version="1.0" encoding="UTF-8" ?>
<plugin
configVersion = "1.0"
pluginVersion = "2.0.0.0"
creator="Lunascape Co.,LTD." creator_jpn="Lunascape株式会社" publisher="Lunascape Co.,LTD." publisher_jpn="Lunascape株式会社" link="http://www.lunascape.jp/" pluginversionsUrl="http://plugin.lunascape.jp/config/
{E1140723-C600-466c-B5D8-E8D6B4C7B716}/pluginversions.config"
containerType="{14550EA4-0433-4d47-A48E-C21FDE8F1F5E}" guid = "{E1140723-C600-466c-B5D8-E8D6B4C7B716}" > <component minContainerVersion = "4.*" maxContainerVersion = "5.*" targetContainerVersion = "5.1.4.5" type = "{2BAB14FF-6985-4de6-AB72-1D77FB4CA405}" modulePath = "ToolBarSample.dll" name = "Lunascapeツールバープラグインサンプル" icon = "plugin.ico" clsid = "{7DB4B117-64EF-460e-B371-F277B8781121}" /> </plugin>

5行目~8行目を配布者の製作元と配布元で書き換えます。
9行目のlinkを配布者のサイトで書き換えます。
10行目と12行目の{E1140723-C600-466c-B5D8-E8D6B4C7B716}の部分を [ツール]-[GUIDの作成]で新規に作成したGUIDで書き換えます。
20行目の name にプラグインの名称を指定します
22行目のclsidをToolBarSample.idlの修正で作成したGUIDで書き換えます。

プラグインのパッケージ化

Visual Studioで[Release]構成をビルドします。
出力ディレクトリ内の

  • plugin.config
  • ToolBarSample.dll

をplugin.zipというファイル名でzip形式で圧縮すればプラグインのパッケージ化は完了です。
出力ディレクトリとパッケージ化するファイルの構造は以下のとおりです。

画像:Lunascape_plugin_framework_folder_close.gifLunascapePluginSample
 画像:Lunascape_plugin_framework_folder_close.gifToolBarSample
  画像:Lunascape_plugin_framework_folder_close.gifbin
   画像:Lunascape_plugin_framework_folder_close.gifUserSetting
    画像:Lunascape_plugin_framework_folder_close.gif2.0
     画像:Lunascape_plugin_framework_folder_close.gifplugins
      画像:Lunascape_plugin_framework_folder_close.gif{e1140723-c600-466c-b5d8-e8d6b4c7b716}
       画像:Lunascape_plugin_framework_config_file.gifplugin.config
       画像:Lunascape_plugin_framework_dll_file.gifToolBarSample.dll

パッケージ化したzipファイルは以下のような構造になります。

画像:Lunascape_plugin_framework_folder_close.gifplugin.zip
 画像:Lunascape_plugin_framework_config_file.gifplugin.config
 画像:Lunascape_plugin_framework_dll_file.gifToolBarSample.dll

画像:Lunascape_plugin_framework_folder_close.gif{e1140723-c600-466c-b5d8-e8d6b4c7b716}フォルダ自体をzipファイルに含めてはいけません。下は誤ったパッケージの例です。

画像:Lunascape_plugin_framework_folder_close.gifplugin.zip
誤り→画像:Lunascape_plugin_framework_folder_close.gif{e1140723-c600-466c-b5d8-e8d6b4c7b716}
   画像:Lunascape_plugin_framework_config_file.gifplugin.config
   画像:Lunascape_plugin_framework_dll_file.gifToolBarSample.dll