- PR -

プラグイン機能を持つアプリの開発

1
投稿者投稿内容
CACA
会議室デビュー日: 2008/06/03
投稿数: 8
投稿日時: 2008-06-03 20:03
関連サイトを参考にタイトルのようなアプリケーションの開発を試みています。
無事プラグインの登録、および実行まではできたのですが、
ホストとなるフォームのデータの受け渡しで詰まってしまいました。

希望としては公開用インスタンスを用いて異なるフォームのデータを取得するようなことをしたいのですが、ホストアプリとDLL間でもそのようなデータ取得は可能なのでしょうか?
どなたか、ヒント等お持ちの方はご教示お願いします。

開発環境は
VisualStudio2008 ProfessionalEdition
使用言語はC#です。
参考にしたサイトは
http://dobon.net/vb/dotnet/programing/plugin.html です。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2008-06-03 21:11
引用:

CACAさんの書き込み (2008-06-03 20:03) より:
関連サイトを参考にタイトルのようなアプリケーションの開発を試みています。
無事プラグインの登録、および実行まではできたのですが、
ホストとなるフォームのデータの受け渡しで詰まってしまいました。

希望としては公開用インスタンスを用いて異なるフォームのデータを取得するようなことをしたいのですが、ホストアプリとDLL間でもそのようなデータ取得は可能なのでしょうか?
どなたか、ヒント等お持ちの方はご教示お願いします。

開発環境は
VisualStudio2008 ProfessionalEdition
使用言語はC#です。
参考にしたサイトは
http://dobon.net/vb/dotnet/programing/plugin.html です。


ちょっと意味がわからないのですが、「ホストとなるフォームのデータ」というのは、「ホスト」が何で、「フォーム」は何を意味していますか?

ホストとは、プラグインを受け入れるアプリケーションのことでしょうか?
フォームとは、Windows Form の事でしょうか。

これはつまり、アプリケーションが、プラグインによって定義されたデータを処理する、という意味でしょうか。その場合、アプリケーションは元々、データの形式を知らないわけですが、それを、どうやって知るのでしょう?
よねKEN
ぬし
会議室デビュー日: 2003/08/23
投稿数: 472
投稿日時: 2008-06-03 21:40
引用:

CACAさんの書き込み (2008-06-03 20:03) より:
希望としては公開用インスタンスを用いて異なるフォームのデータを取得するようなことをしたいのですが、ホストアプリとDLL間でもそのようなデータ取得は可能なのでしょうか?



Jittaさんが疑問を持たれている単語以外に「公開用インスタンス」というのが何を指しているのかよくわかりません。

間違っているかもしれませんが、勘を働かせて推測すると以下のような質問でしょうか。

・プラグインを読み込む側の本体であるアプリケーションをA
・読み込まれる側のプラグインをB
とするとBが独自のフォーム(画面)を持っていて、そのフォームでユーザが入力を行う。
そして、このユーザが入力したデータ群をA側で利用したい、というような話でしょうか。
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2008-06-03 22:27
引用:

ホストアプリとDLL間でもそのようなデータ取得は可能なのでしょうか?



もちろん可能です。

プラグインからホスト側の情報を引き出すための、逆方向のインターフェースを定義すればよいです。

これを仮に IPlugInSite とします。

現状、プラグイン用のインターフェースは定義済みのはずなので、そこに

IPlugInSite Site { get; set; }

を追加して、「プラグインのインスタンスを作成したら、プラグインの Site プロパティに、IPlugInSite インターフェースを実装するホスト側のオブジェクトインスタンスの参照をセットする」てのを実践すればよろしんじゃないかと。
CACA
会議室デビュー日: 2008/06/03
投稿数: 8
投稿日時: 2008-06-04 10:55
Jitta様、 よねKEN 様、渋木宏明(ひどり)様レスありがとうございます。
わかりにくい説明で申し訳ありません。

プラグインを読み込む側の本体であるアプリケーションをA (これをホストと表記しました)
読み込まれる側のプラグインをB,C,D・・ (これをプラグインと表記します)

Aは画像を表示する複数のフォームおよびそれらを管理する様々なフォームを持っています。
プラグインでは、たとえばBはAの画像を表示しているフォームに対して特定の処理を行いその処理結果をAで表示する。
CはAの画像を管理するフォームに対して処理を行う。

そこで、Aのインスタンスを各プラグインで参照できるようにしたいという意味で、公開用インスタンスという表現をつかいました(Aの持つすべてのコントロールを参照したい)。

もちろん、よねKEN 様の推測(申し訳ありません、ありがとうございます)されたことも行いたいとも思っています。

渋木宏明(ひどり)様ありがとうございます。
試行錯誤してみますが、実装方法がわかりません。
参考になるサイトあるいはコードなどございましたらお願いいたします。

また、単語の使い方に多々間違いがあるかと思いますが、指摘いただけるとありがたいです。
1

スキルアップ/キャリアアップ(JOB@IT)