
COM教程
文章平均质量分 93
COM是Windows的核心组件,市面上讲解COM的书本就不多而且给出详细演示代码和注释的很少,本专栏旨在讲解COM的原理、实现并提供完整的演示代码。
文大侠666
专注安全领域,擅长Go/C++,玩点大数据。
展开
-
23.WebBrowser 高级特性调整
前面讲解了IE控件的常用方法,本节主要讨论如何调整WebBrowser 高级特性来完成我们想要的效果。本文演示如何禁用WebBrowser右键菜单,如何禁用3D边缘和滚动条,以及如何处理js错误通知,js错误通知封装成类,可以满足实际生产使用需求。原创 2017-11-02 12:27:02 · 1706 阅读 · 0 评论 -
22.WebBrowser中JS和C++代码互相调用
WebBrowser内嵌的网页中JS与本地C++代码可以相互调用,这样就可以最大程度利用C++强大的计算能力和与本地硬件通信。本文详细演示了JS和C++代码互相调用的方法,JS调用C++的类独立封装可直接修改使用。原创 2017-10-22 16:53:16 · 5852 阅读 · 0 评论 -
21. IE WebBrowser控件的基本使用
综合使用COM的自动化接口、连接点最好的例子就是IE WebBrowser控件,这也是最常用的一个COM控件,借助它我们可以用网页编写界面、调用本地代码,也就是当前流行的混合式程序。本文详述了IE控件的基本使用,包括静态创建、动态创建和事件响应,并对创建过程的atl代码进行剖析,清楚的画出了整个创建脉络。原创 2017-10-22 11:17:03 · 6182 阅读 · 0 评论 -
20.ATL中实现可连接对象和接收器
可连接对象是COM中观察者模式实现,非常有用,特别和IE组件打交道时候要用到。本文使用ATL实现可连接对象和对应的接收器,提供完整代码实现,可对比学习。原创 2016-08-08 09:35:23 · 2072 阅读 · 7 评论 -
19.MFC中实现可连接对象和接收器
可连接对象是COM中观察者模式实现,非常有用,特别和IE组件打交道时候要用到。本文使用MFC实现可连接对象和对应的接收器,提供完整代码实现,可对比学习。原创 2016-08-06 16:23:49 · 1566 阅读 · 0 评论 -
18.可连接对象和连接点原理
讲解可连接对象和连接点原理,说明实现一个可连接对象需要做的事情。原创 2016-07-16 21:04:53 · 1903 阅读 · 0 评论 -
17.ATL实现IDispatch自动化接口
本文基于ATL,演示了自己加载类型库导出ITypeInfo接口,借助ITypeInfo接口实现IDispatch接口的过程和ATL自己利用IDispatchImpl实现IDispatch的方法,据此可以掌握依赖类型库实现IDispatch接口的方法。原创 2016-07-30 20:37:48 · 2408 阅读 · 0 评论 -
16.MFC实现IDispatch自动化接口
本文演示了通用的不依赖类型库,自己查表实现IDispatch接口和借助MFC的分发映射表DISPATCH_MAP实现IDispatch接口的两种方法,提供了演示代码,据此可掌握不依赖类型库实现COM IDispatch接口的方法。原创 2016-07-30 19:58:33 · 3565 阅读 · 0 评论 -
15.COM 自动化原理
简介COM自动化好处、原理和IDispatch接口实现细节。原创 2016-07-30 17:47:36 · 2643 阅读 · 0 评论 -
14.说说ATL常用包装类的用法和坑
ATL提供了很多复杂数据类型的包装类,使用这些包装类可以大大减小开发工作量,但是他们使用起来也有许多坑,需要注意,本文就ATL常用包装类的用法和坑详细说明,力图说明产生这些坑的原因和使用注意事项。原创 2017-08-13 09:17:39 · 1085 阅读 · 0 评论 -
13.浅析COM多线程
ATL一节已经接触过多线程一词,COM为了解决多线程问题的思路如下:1.支持传统多线程访问,组件编写时处理多线程访问(MTA)2.支持隐藏多线程细节,组件编写时无需多线程访问(STA)前者是为了灵活,后者是为了方便和兼容,我们从这两点展开来说。1.套间分类COM引入一个概念——套间(Apartment),具有相同并发和重入访问特性的在同一套间。每个进程可包含多个套间原创 2017-08-13 09:17:02 · 1625 阅读 · 0 评论 -
12.编写COM进程外组件
相比进程内组件,进程外组件的编写较为麻烦,在前面已经讲的IDL和进程外组件原理基础上,本节以一个简单实例讲解进程外组件的编写步骤和注意事项。原创 2017-07-30 16:29:30 · 4468 阅读 · 4 评论 -
11.编写COM常用IDL指令和注意事项详解
之前讲的COM都是手动编写的,上一节讲到借助MFC和下一节要讲到的ATL这些框架可以大大减少代码编写量,然而这还不够,还是太麻烦,因为COM遵循一套标准的规则,因此微软推荐通过编写IDL的方法来编写COM,使用IDL描述我们想要的COM形式和结构,然后由工具来做实际编写工作。原创 2017-07-30 15:24:09 · 5176 阅读 · 0 评论 -
10.COM进程外组件和列集、散集
前面讲的都是进程内组件,实际上COM是进程透明的,就是使用COM的时候,不管当前连接的是进程内组件还是进程外组件,使用方法一样,所有的差异都被COM中间屏蔽了。这一节详细讲解COM进程外组件的列集/散集过程和连接建立过程。原创 2017-07-30 15:22:49 · 2852 阅读 · 0 评论 -
9.COM中特殊类型和相关函数
COM中包含特殊类型数据,他们大大方便了COM使用,解决了很多问题,但是也埋下了许多坑,这里详细介绍相关类型和他们的使用注意事项。原创 2017-07-30 15:21:57 · 1038 阅读 · 0 评论 -
8.ATL实现简单的COM
本文演示了如何使用ATL开发简单的COM,同时对于ATL实现COM的原理给出了简要分析,对照博客和代码可掌握简单的ATL开发COM流程。原创 2016-07-16 20:11:55 · 3247 阅读 · 0 评论 -
7.MFC实现简单的COM
使用MFC实现简单的COM,演示了整个COM构成,注释清晰,穿插讲了MFC实现COM的原理,对照本文和代码可以弄懂整个MFC COM实现方法。原创 2016-07-16 16:27:43 · 4454 阅读 · 0 评论 -
6.COM可重用性——聚合
聚合无论是原理还是实现都是COM组件中比较复杂和难以理解的地方,这里通过详细的讲解和在代码中给出详细的注释,指出常见注意点,可对比学习COM聚合技术。原创 2016-06-26 14:31:52 · 3874 阅读 · 1 评论 -
5.COM可重用性——包容
详细演示了COM组件可重用性——包容的实现,包容的实现很简单,对比代码,可以完整了解该技术点。原创 2016-06-25 19:34:04 · 1832 阅读 · 0 评论 -
4.COM使用实例——WMI的使用
本节我们以使用WMI遍历当前电脑进程说明通过COM使用WMI的方法。代码可以直接复用。原创 2017-06-15 13:04:00 · 3853 阅读 · 0 评论 -
3.COM使用实例——快捷方式创建和解析
上节介绍如何编写最简单的COM,本节通过[快捷方式创建和解析]看下如何使用COM调用Windows相关功能。原创 2017-06-15 13:04:14 · 1851 阅读 · 0 评论 -
2.实现一个最简单的COM
本文实现一个最简单的COM组件,麻雀虽小,五脏俱全,使用完全C++和COM库实现,可以看到整个COM组件的组成脉络。原创 2016-06-16 20:16:25 · 4377 阅读 · 5 评论 -
1.COM基础概念
本文借助一个伪COM的实现来帮助理解COM的两个重要基本概念——接口查询和生存周期管理,文中介绍的伪COM实现也是很多厂商常用的模块化技巧。原创 2016-06-10 17:27:47 · 4055 阅读 · 2 评论