我有一个用C#编写的MS Office COM插件(Visual Studio 2005)并使用COM Shim dll。插件不使用VSTO技术,支持Excel XP及更高版本。插件添加了一个新工具栏和一个菜单。

addin在Excel 2007中运行正常,但它显示在一个名为“AddIns”的单独选项卡中。以及它的工具栏和菜单。我希望将此插件与Excel 2007功能区工具栏集成,并创建一个包含组和按钮的新选项卡。

我浏览了大量文章,发现IRibbonExtensibility是用于Ribbon支持的界面。此外,COM Shim Wizards有一个支持功能区界面的新版本2.3。

我想知道是否可以完成以及项目中需要的更改。

  1. 目前,OfficeXP的office.dll文件用于项目(v 7.0)。但是IRibbonExtensibility接口是在Office 2007的dll(v12)中。所以我认为我需要做的第一件事就是更改这个dll并更新代码中的所有引用。这个dll会支持以前的版本(向后兼容)吗?我不想打破现有的功能。
  2. COM Shim dll的变化是什么?
有帮助吗?

解决方案

我没有使用过OfficeXP,但已经在2000,2003和2007年构建了COM AddIns。

我最近使用IRibbonExtensibility接口为Office 2007构建了一个COM AddIn,并引用了v12 PIA。

当我在Office 2003中使用它时,我发现它运行得很好。但是,我的AddIns只提供一些非常基本的功能,而不是对Excel对象使用很多调用。仅当Applicaiton.Version小于12时,我才调整了OnConnection方法以设置CommandBars。

我记得没有代码更改从2003 PIA切换到2007 PIA。过去发现您可以轻松地在不同版本的PIA之间切换。

詹姆斯

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top