您的位置:软件 > 开发者网络 > 开发工具 > 开发专栏 > VC > 正文
使用VC++ ATL实现Office的COM插件
[文章信息]
作者:useresu
时间:2005-02-01
出处:VCKBASE
责任编辑:方舟
[文章导读]
本文介绍了一种使用VC++ ATL,利用IDTExtensibility2接口,为Word加入COM插件
advertisement
热点推荐
· 软件多媒体教程录制方法讲解
· 1月31日软件精选 邮箱及IE安全设置指南
· “金闪客奖”获奖名单隆重公布
· PS色彩调整简明教程:色阶
· 动画图解:Excel页面背景设置
[正文]

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()。


1 2 3  下一页

天极社区邀请您:写博客日记  上传相片   论坛聊天  订阅电子杂志  推荐网摘   免费图铃工具
笔名:   请您注意:

 遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

 天极网拥有管理笔名和留言的一切权利。
评论:
 
发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容焦点新闻
  • 防止Visual C++应用程序缓冲区溢出
  • MFC程序员的WTL指南之WTL 界面基类
  • MFC程序员的WTL开发指南之ATL界面类
  • ATL布幔下的秘密之窗口类的秘密
  • ATL布幔下的秘密之底层技术和汇编
  • 安捷伦在华投资将超1亿美元 押宝手机市场
  • 台积电获中芯国际1.75亿美元 赢面子赔里子
  • 海尔集团成功海外借壳 张瑞敏未入管理层
  • 西南贝尔终结AT&T 全美最大电信运营商诞生
  • DTS否认在华违法经营 反驳专利许可垄断说
  • 白宫闹大笑话 布什任职演说中文版成搞笑版
  • 盖茨巴菲特赌美元贬值 最富二人组一唱一和
  • 茁壮网络获Macromedia授权 为内地首家企业
  • Advertisement

    天极无线


    奇妙科幻|美好风光|清风车影|漫画卡通|星座生肖|明星写真|动物世界
    温馨祝福|极品爆笑|生肖属相|StarQ|体育竞技|美好风光|每逢佳节
    老鼠爱大米
    挥着翅膀的女孩
    女人味
    栀子花开
    白月光
    刚刚好
    江南
    快乐崇拜
    亲爱的你怎么不在我身边
    小薇
    2002年的第一场雪
    有多少爱可以重来
    我的地盘
    七里香
    情人
     
    老鼠爱大米 冲动的惩罚
    最熟悉的陌生人 绿光
    可爱女人 盛夏的果实
    当你孤单你会想起谁 孤单北半球
    2002年的第一场雪 眉飞色舞
    有多少爱可以重来 挪威的森林
    最浪漫的事 老板电话

    CSEEK搜索