设为首页 加入收藏

TOP

VC++内部COM插件的编程实现(一)
2013-02-08 14:26:34 】 浏览:1078
Tags:内部 COM 插件 编程 实现
  今天要谈的话题是COM,稍微深入一点,不知道大家用过C++(www.cppentry.com)Test或者Visual Assistant(可到VC知识库工具栏目下载)之类的软件没有,它们都有个非常引 人注目的功能,那就是把它们自身嵌入到VC开发环境中去。这个功能让我痴迷不 已,原因只有一个:我想做一个可以嵌入VC开发环境的VC工程解析器(VC/Delphi 工程解析器已被收录在VC知识库在线杂志第19期中),这样用户在VC开发环境中 就可以直接对当前或所有工程进行各种分析,统计。那么实现它简单吗?简单, Next和Copy即可轻松完成;仅仅这些吗?不是,它的背后还有博大精深的COM做 支撑。不管困难与否,还是让我们先试为快。

  二、效果图

 

  三、实现步骤:

  <3.1>新建一个<DevStudio Add- in Wizard>类型工程,输入工程名称 "CodeAnalyser". 

  <3.2>进入第二个画面,系统 要求用户输入插件的名称和描述信息。并且要求用户选择

  是否需要生成 工具栏以及是否自动添加VC事件响应代码。

    今天要谈的话题是COM,稍微深入一点,不知道大家用过C++(www.cppentry.com)Test或者Visual Assistant(可到VC知识库工具栏目下载)之类的软件没有,它们都有个非常引 人注目的功能,那就是把它们自身嵌入到VC开发环境中去。这个功能让我痴迷不 已,原因只有一个:我想做一个可以嵌入VC开发环境的VC工程解析器(VC/Delphi 工程解析器已被收录在VC知识库在线杂志第19期中),这样用户在VC开发环境中 就可以直接对当前或所有工程进行各种分析,统计。那么实现它简单吗?简单, Next和Copy即可轻松完成;仅仅这些吗?不是,它的背后还有博大精深的COM做 支撑。不管困难与否,还是让我们先试为快。

  二、效果图

 

  三、实现步骤:

  <3.1>新建一个<DevStudio Add- in Wizard>类型工程,输入工程名称 "CodeAnalyser". 

  <3.2>进入第二个画面,系统 要求用户输入插件的名称和描述信息。并且要求用户选择

  是否需要生成 工具栏以及是否自动添加VC事件响应代码。

  <3.3>点击"Finish"结束向导,进入代码编辑窗口。

  在这里我们要说的一点是:该工程引用了ICommands接口,并从该接口上 派生出 CCommands类。该类完成了所有用户自定义函数接口,VC应用程序消息响 应和VC调试动作的消息响应工作。当我们真正为CCommands类添加成员函数之前 我们必须先为ICommands接口添加相应的函数接口声明。在本工程中我总共为 ICommands接口添加了两个函数接口,它们名字分别为: GetCurDirCommandMethod和QuitCommandMethod声明如下:(在CodeAnalyer.odl 文件中)

  interface ICommands : IDispatch

  {

  // methods

  [id(1)] //在Vtable中的函数索引号

  HRESULT GetCurDirCommandMethod(); //得到VC当前工作目录

  [id(2)]  // 在Vtable中的函数索引号

  HRESULT QuitCommandMethod ();   // 退出VC编辑器

  };

     

首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇VC实现文件的查找 下一篇在网页中调用VC写的对话框

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目