Chinaunix首页 | 论坛 | 博客
  • 博客访问: 14497984
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 20:58:10

下载本文示例代码
  本文介绍了一种使用VC ATL(Active Template Library),利用IDTExtensibility2接口,为Microsoft Word加入功能简单的COM插件(addin),加入工具栏按钮和菜单等可视部件,并为其加入响应事件的方法,并在最后简单说明了实现与Office宏混合编程的方法。  说到Office相关的编程,大家首先想到的可能是VBA(Visual Basic for Application),事实上, ATL也是一种很好的工具。这里介绍的就是一种基于ATL的Office编程方法,实现的功能很简单,仅仅是一个示例,步骤如下:  1、在visual C 编程环境下,利用向导生成一个名为WordAddin的ATL COM Appwizard工程:  在向导的第一个对话框中server type单选框选择默认的服务器类型Dynamic Link Library(DLL),下面的三个复选框中选择Allow merging of proxy-stub code选项。然后单击Finish,这样一个空的ATL project就产生了(如图 一)。 图一  2、插入我们的ATL object:   选择菜单Insert—>Insert new ATL object,出现new ATL object向导对话框,左边的category列表中选择object,右边相应的选择simple object,单击下一步(Next)(如图 二): 图二  在第二个对话框names属性页的“Short Name:”中填入Addin(如图三): 图三  在Attribute属性页中,选中Support IsupportErrorInfo复选框,单击OK(如图四): 图四  这样就产生了一个类名为WordAddin的ATL COM object,编译(build)该工程看是否一切正常。   2、用IDTExtensibility2实现CAddin类:    IDTExtensibility2是定义在MSADDin Designer typelibrary(MSADDNDR.dll/MSADDNDR.tlb)中的库文件,该文件一般在C:\Program Files/Common Files/Designer目录下。IDTExtensibility2 库提供了 5 个可用来操纵插件以及宿主应用程序的事件: OnConnection、OnDisconnection、OnAddInsUpdate、OnStartupComplete 和 OnBeginShutdown。这些事件的具体功能和用法可查阅MSDN。用向导来实现IDTExtensibility2接口:切换到classview页,右键点击Caddin类,在弹出的菜单中选择Implement Interface,出现Implement Interface对话框,选择Add Tylpelib按钮(如图 五): 图五  (单击OK,)在出现的Browse Typelibraries对话框中选择Microsoft Add-in Designer(1.0) (如图六): 图六  单击OK,在AddinDesignerObjects属性页中选择IDTExtensibility2(如图七): 图七  再单击OK。这样向导就在ATL COM object中添加了IDTExtensibility2的5个具体事件,并对他们进行了一些默认的初始设置,同时还更新了COM_INTERFACE_MAP()。 共3页。 1 2 3 :   本文介绍了一种使用VC ATL(Active Template Library),利用IDTExtensibility2接口,为Microsoft Word加入功能简单的COM插件(addin),加入工具栏按钮和菜单等可视部件,并为其加入响应事件的方法,并在最后简单说明了实现与Office宏混合编程的方法。  说到Office相关的编程,大家首先想到的可能是VBA(Visual Basic for Application),事实上, ATL也是一种很好的工具。这里介绍的就是一种基于ATL的Office编程方法,实现的功能很简单,仅仅是一个示例,步骤如下:  1、在visual C 编程环境下,利用向导生成一个名为WordAddin的ATL COM Appwizard工程:  在向导的第一个对话框中server type单选框选择默认的服务器类型Dynamic Link Library(DLL),下面的三个复选框中选择Allow merging of proxy-stub code选项。然后单击Finish,这样一个空的ATL project就产生了(如图 一)。 图一  2、插入我们的ATL object:   选择菜单Insert—>Insert new ATL object,出现new ATL object向导对话框,左边的category列表中选择object,右边相应的选择simple object,单击下一步(Next)(如图 二): 图二  在第二个对话框names属性页的“Short Name:”中填入Addin(如图三): 图三  在Attribute属性页中,选中Support IsupportErrorInfo复选框,单击OK(如图四): 图四  这样就产生了一个类名为WordAddin的ATL COM object,编译(build)该工程看是否一切正常。   2、用IDTExtensibility2实现CAddin类:    IDTExtensibility2是定义在MSADDin Designer typelibrary(MSADDNDR.dll/MSADDNDR.tlb)中的库文件,该文件一般在C:\Program Files/Common Files/Designer目录下。IDTExtensibility2 库提供了 5 个可用来操纵插件以及宿主应用程序的事件: OnConnection、OnDisconnection、OnAddInsUpdate、OnStartupComplete 和 OnBeginShutdown。这些事件的具体功能和用法可查阅MSDN。用向导来实现IDTExtensibility2接口:切换到classview页,右键点击Caddin类,在弹出的菜单中选择Implement Interface,出现Implement Interface对话框,选择Add Tylpelib按钮(如图 五): 图五  (单击OK,)在出现的Browse Typelibraries对话框中选择Microsoft Add-in Designer(1.0) (如图六): 图六  单击OK,在AddinDesignerObjects属性页中选择IDTExtensibility2(如图七): 图七  再单击OK。这样向导就在ATL COM object中添加了IDTExtensibility2的5个具体事件,并对他们进行了一些默认的初始设置,同时还更新了COM_INTERFACE_MAP()。 共3页。 1 2 3 : 下载本文示例代码


使用VC ATL实现Office的COM插件使用VC ATL实现Office的COM插件使用VC ATL实现Office的COM插件使用VC ATL实现Office的COM插件使用VC ATL实现Office的COM插件使用VC ATL实现Office的COM插件使用VC ATL实现Office的COM插件使用VC ATL实现Office的COM插件使用VC ATL实现Office的COM插件使用VC ATL实现Office的COM插件使用VC ATL实现Office的COM插件使用VC ATL实现Office的COM插件使用VC ATL实现Office的COM插件使用VC ATL实现Office的COM插件使用VC ATL实现Office的COM插件
阅读(94) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~