共有アドインから別のリボン・機能へのコールバックをリダイレクト
-
25-09-2019 - |
質問
私は、共有アドインおよび対応するリボン(VS10でリボンデザイナーやXMLによる統合)の機能を分離しようとしています。ソリューション・コンテキストは、アドイン自体は実行時にロードされている別のアセンブリへのインタフェースを持つホストを表しているいくつかのプロジェクトでビルドです。このアセンブリでは、私は、リボンのコールバックメソッドへのアクセスを取得したい共有アドイン(connect.cs)に実装されています。私はリボンを注入しようとしたMSProject2010アプリケーションは、プロジェクトのインスタンスへのアクセスを許可するためにそのアセンブリに包まれます。
特定のディレクトリと統合におけるすべてのアセンブリを介してスキャン右インタフェースを有するもの、その機能 - 宿主におけるは、スタートアップ()です。だから、AddIn_Startup(PARAMS)-functionアセンブリに位置がインタフェースを介してと呼ばれ、ここで私は私のリボン・コールバックへのアクセスを取得したいコンテキスト、あるされています。
今、どのように共有アドインアセンブリに?
を通じて、MSProject-アプリケーションからのルートコールバックすることが可能ですもう一つの質問:どのようにそれは、外部アセンブリを介してカスタムリボンにアクセスすることは可能でしょうか? (同じ環境)
敬具
解決
私は自分自身解決策を見つけます。
問題は、共有アドインのコンテキストです。それはVSTOを経由して実現可能な方法に比べてリボン環境を操作するために複雑です。 IはMSProject2010-アドインに共有アドインをオンにした後、私は、インターフェイスへとしてリボン自体を渡します。これは、アドインによって配信されグローバルクラスにリボンを登録リボンデザイナーでリボンを作ることによって可能です。 (Globals.Ribbons.RibbonName.Ribbon)。他の側では、私はOfficeRibbonにこのオブジェクトをキャストし、空OfficeRibbonに割り当てます。ここで私は、操作し、リボンの性質を変えるとのEventHandlerを作成することができます。実行時にリボンにタブ、ボタンまたは他のコントロールを追加することはできません!少なくとも私はそれを行うための方法を見つけることができませんでした。