通过ATL开发COM概述
来源:互联网 发布:复杂网络上的博弈 编辑:程序博客网 时间:2024/06/05 20:22
ATL 是为了减轻程序员开发COM的负担而提供的一套模板库
ATL提供的支持:
1. CComModule封装对组件的宿主支持,掩盖了(DLL和EXE)之间的差别。
2. 对IUnknown的支持
3. 对类工厂的支持
4. 自动化 : IDispatchImpl
COM 数据类型 : CComBSTR, CComVariant
接口指针 : CComPtr, CComQIPtr
错误处理 :ISupportErrorInfoImpl, CComObject
连接点 : IConnectionPointContainerImpl, IConnectionPointImpl :支持服务器的回叫信号(callback)或事件(event)
异步属性下载 : CBindStatusCallback
自注册 :
视窗和对话框 : Cwindow, CwindowImpl, CDialogImpl, CmessageMap
每个COM组件需要实现这三个功能
1. 实现IUnknown接口 (通过 CComObjectRootEx 实现)
2. 实现一个类工厂,支持组件的创建 (通过 CComCoClass 实现)
3. 实现自注册
一个典型ATL COM组件的定义
CComObjectRootEx 提供 IUnknown支持
CComCoClass 提供类工厂的支持
ATL提供的支持:
1. CComModule封装对组件的宿主支持,掩盖了(DLL和EXE)之间的差别。
2. 对IUnknown的支持
3. 对类工厂的支持
4. 自动化 : IDispatchImpl
COM 数据类型 : CComBSTR, CComVariant
接口指针 : CComPtr, CComQIPtr
错误处理 :ISupportErrorInfoImpl, CComObject
连接点 : IConnectionPointContainerImpl, IConnectionPointImpl :支持服务器的回叫信号(callback)或事件(event)
异步属性下载 : CBindStatusCallback
自注册 :
视窗和对话框 : Cwindow, CwindowImpl, CDialogImpl, CmessageMap
每个COM组件需要实现这三个功能
1. 实现IUnknown接口 (通过 CComObjectRootEx 实现)
2. 实现一个类工厂,支持组件的创建 (通过 CComCoClass 实现)
3. 实现自注册
一个典型ATL COM组件的定义
- class ATL_NO_VTABLE CAtlMath :
- public CComObjectRootEx<CComSingleThreadModel>,
- public CComCoClass<CAtlMath, &CLSID_AtlMath>,
- public IDispatchImpl<IAtlMath, &IID_IAtlMath, &LIBID_ATL_ServerLib, /*wMajor =*/ 1, /*wMinor =*/ 0>
- {//......
- }
CComObjectRootEx 提供 IUnknown支持
CComCoClass 提供类工厂的支持
- 通过ATL开发COM概述
- 通过ATL开发COM_1概述
- ATL Com 开发
- ATL COM开发学习
- com ATL开发Com组件
- ATL开发COM组件心得
- COM/ATL项目开发小记
- VS2010 简单ATL COM开发
- VS2010 简单ATL COM开发
- vs2005使用ATL开发COM
- VS2010 简单ATL COM开发
- 图文并茂 简单 ATL COM开发
- 【VS开发】ATL辅助COM组件开发
- VC++利用ATL开发COM组件
- 使用ATL开发简单COM组件(1)
- VS2010 简单ATL COM开发(上)
- VS2010 简单ATL COM开发(下)
- ATL COM组件开发——VS2010
- php上传思路很重要 举一反三
- hdu 4628Pieces
- 大整数乘法原理(JAVA)
- Android的数据存储--SharedPreferences
- 0927
- 通过ATL开发COM概述
- 在Mac OS X中配置Apache + PHP + MySQL
- Hibernate多对多映射为第三张表manytomany【xml和注解】实例(十七)
- ListEntry 链表图解,及解析 InsertTailList & RemoveHeadList&RemoveEntryList函数
- 《程序员》 -- 对国内云计算三个现象的思考
- hdu 4619Warm up 2
- [读书笔记]CIO Comprehensive Practice - Chapter1
- OpenFlow基础概念理解(3) OpenFlow架构
- session bean