2012-01-25 33 views
10

我试图开发前景的插件,我发现了一个供应商http://www.add-in-express.com。但是,他们有两个产品(http://www.add-in-express.com/add-in-net/index.php),他们允许使用VS 2010和.Net Framework 4.0创建COM add。这是可能的,我一直认为COM只能在VB6中创建,否则你必须创建一个COM可调用包装器(CCW))。什么是COM的区别添加在和VSTO添加在

其他产品是VSTO工具(http://www.add-in-express.com/add-in-vsto/index.php),它也使用.Net Framework 4.0,这是完全混淆。

请帮我理解。

问候 莫希特德加拉

回答

10

VSTO使用COM wrappers (RCW)通过管理API与Office通信。不幸的是,直接与Office产品沟通的唯一已知方式是使用COM组件,因为这是Office构建的技术。即使使用VSTO,您仍然需要了解COM对象的生命周期 - 它们不会为您封装(,您仍然需要拨打Marshal.ReleaseCOMOjbect)。

深入了解VSTO一个很好的资源是VSTO 2007 book by Addison-Wesley。如果您使用VSTO路由 - 您还应该使用扩展方法简化COM参数限制的烦恼VSTO Extension Library VSTO_PTExtLibs.exe)。

我没有亲自找到需要使用外接程序-Express的,但你会发现它可以帮助你,如果你不想花时间在学习VSTO框架。这种选择还取决于解决方案的复杂性以及您拥有的时间和资源。

+0

但是“IDTExtensibility2”..那是什么用于COM加入和VSTO加载程序怎么样 – Mohit

+1

VSTO加载程序是[VSTO运行时](http://blogs.msdn.com/b/vsto/archive/2010 /01/21/vsto-2010-runtime-components-explained-aaron-cathcart.aspx) - 您在构建基于VSTO的加载项时使用的API。 VSTO运行时仍然[为您实现IDTExtensibility2](http://stackoverflow.com/a/562587/175679),因此您不必混淆较低级别的COM接口。 VSTO的目标是使与办公室的整合更加简单易懂。无论你觉得自己需要什么样的控制,你都可以插入你的钩子。 – SliverNinja

相关问题