部署 Office 2003 和 Office 2007 加载项(支持功能区)
我编写了一个 Word 2003 加载项,它使用 2003 PIA 进行早期绑定。我希望相同的可执行文件支持 Office 2007 和 2010 中的 Ribbon 界面,同时仍在 Office 2003 中运行。
是否可以后期绑定 IRibbonExtensibility 界面?如果没有,是否有另一种方法可以动态区分 Office 版本?
I wrote a Word 2003 add-in that uses the 2003 PIAs for early-binding. I want the same executable to support the Ribbon interface in Office 2007 and 2010, while still running in Office 2003.
Is it possible to late-bind the IRibbonExtensibility interface? If not, is there another way to dynamically differentiate between Office versions?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
有一本关于在 Office 中使用功能区 UI 的好书:
RibbonX:自定义 Office 2007 功能区
Robert Martin、Ken Puls、Teresa Hennig
作者和 MS 都提出了解决此问题的技巧:
当您的加载项加载时,它会查询应用程序以找出它正在运行的版本。
如果是 Office 2003,它会创建一个普通的 CommandBars 'n Buttons UI。
如果是 Office 2007 或更高版本,它会查找另一个加载项并按需加载它。第二个加载项仅包含用于创建功能区 UI 的 RibbonX 代码以及按钮单击事件的处理程序。该处理程序只是回调主加载项。
通过在 RibbonXML 和处理程序中巧妙地使用标签,您可以让单个处理程序确定要调用主加载项中的哪个例程。
There's a good book on working with the ribbon UI in Office:
RibbonX: Customizing the Office 2007 Ribbon
Robert Martin, Ken Puls, Teresa Hennig
The authors and MS both suggest a trick along these lines for solving this problem:
When your add-in loads, it queries the app to find out what version it's running in.
If Office 2003, it creates a normal CommandBars 'n Buttons UI.
If Office 2007 or later, it looks for another add-in and demand-loads it. This second add-in contains just the RibbonX code to create your ribbon UI plus handlers for the button click events. The handler simply calls back to the main add-in.
With a little clever use of tags in your RibbonXML and handler, you can have a single handler work out which routine in the main add-in to call.