博客日历
2025年07月 | ||||||
一 | 二 | 三 | 四 | 五 | 六 | 七 |
30 | 1 | 2 | 3 | 4 | 5 | 6 |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 | 1 | 2 | 3 |
存档
2025年03月 2024年
03月 04月 05月 2021年
01月 02月 11月 12月 2020年
02月 03月 04月 05月 06月 07月
09月 2018年
09月 2017年
01月 02月 07月 2016年
01月 04月 07月 08月 11月 12月
2015年
01月 02月 03月 05月 09月 10月
11月 2014年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2013年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2012年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2011年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2010年
01月 02月 03月 04月 05月 06月
07月 08月 09月 10月 11月 12月
2009年
03月 04月 05月 06月 07月 08月
09月 10月 11月 12月
COM.5 COM学习之不使用框架(ATL或MFC)创建COM组件
1. 定义自己的接口,且该接口必须继承自IUnknown。
2. 实现自己的接口,并实现IUnknown。在QueryInterface中返回自己的接口指针,在AddRef中调用InterlockedIncrement增加自身引用计数,在中Release调用InterlockedDecrement减少自身引用计数,当自身引用计数为0的时候,用delete删除自己。
3. 实现自己的类工厂类,也需实现IUnknown,并实现IClassFactory。在CreateInstance中创建自己的接口对象并返回。
4. 使用DllGetClassObject使类工厂对组件公开。
5. 使用DllCanUnloadNow使用COM知道组件是否可以卸载。
6. 使用DllRegisterServer在注册表中注册该组件。
7. 使用DllUnregisterServer从注册表删除该组件的注册信息。
8. 导出4,5,6,7提到的函数。
《ATL开发指南》的第二章末尾就是一个这样的例子。这样实现的COM组件没有类型库(.tlb文件)。
上一篇: COM.1 COM编程简介
下一篇: GDI+练习之IE7风格多页面浏览器
分类:Win32/C++ 查看次数:7545 发布时间:2009/6/18 23:55:29