1

共有アドインと対応するリボン (VS10 のリボン デザイナーまたは XML を介して統合) の機能を分離しようとしています。ソリューション コンテキストは、アドイン自体が実行時に読み込まれる別のアセンブリへのインターフェイスを持つホストを表すいくつかのプロジェクトで構築されます。このアセンブリでは、共有アドイン (connect.cs) に実装されているリボンのコールバック メソッドにアクセスしたいと考えています。リボンに挿入しようとした MSProject2010 アプリケーションは、Project のインスタンスへのアクセスを許可するために、そのアセンブリにラップされています。

ホストには、特定のディレクトリ内のすべてのアセンブリをスキャンして適切なインターフェイスと統合する Startup() 関数があります。そのため、アセンブリにある AddIn_Startup(Params)-Function はインターフェイスを介して呼び出され、ここにリボン コールバックへのアクセスを取得するコンテキストがあります。

では、共有アドインを介して MSProject アプリケーションからコールバックをアセンブリにルーティングするにはどうすればよいでしょうか。

別の質問: 外部アセンブリを介してカスタム リボンにアクセスするにはどうすればよいですか? (同環境)

よろしくお願いします

4

1 に答える 1

2

私は自分で解決策を見つけました。

問題は、共有アドインのコンテキストです。リボン環境を操作するのは、VSTO を介して実現できる方法に比べて複雑です。共有アドインを MSProject2010-Addin に変えてから、リボン自体をインターフェイスに渡します。これは、アドインによって提供される Globals クラスにリボンを登録するリボン デザイナーでリボンを作成することによって可能になります。(Globals.Ribbons.RibbonName.Ribbon)。反対側では、このオブジェクトを OfficeRibbon にキャストし、空の OfficeRibbon に割り当てます。ここで、リボンのプロパティを操作および変更し、EventHandler を作成できます。実行時にタブ、ボタン、またはその他のコントロールをリボンに追加することはできません! 少なくとも私はそれを行う方法を見つけることができませんでした。

于 2010-11-24T08:06:31.193 に答える