atl
DarkMagician_Potter
这个作者很懒,什么都没留下…
展开
-
用ATL建立轻量级的COM对象
本文假设你熟悉C++和COM。摘要: ATL——活动模板库(The Active Template Library),其设计旨在让人们用C++方便灵活地开发COM对象。ATL本身相当小巧灵活,这是它最大的优点。用它可以创建轻量级的,自包含的,可复用的二进制代码,不用任何附加的运行时DLLs支持。 由于COM技术良好的口碑,越来越多的程序员已经走进或正在走进COM的编程世转载 2014-06-05 17:23:49 · 823 阅读 · 0 评论 -
ATL学习笔记(3): QueryInterface功能的实现
在CComObjectRootEx类中,实现了线程安全的引用计数管理。而在CComObjectRootEx的父类CComObjectRootBase中,存在对QueryInterface的一个内部实现——InternalQueryface()。1. CComObjectRootBase类class CComObjectRootBase{public: ......转载 2014-06-04 11:37:35 · 1401 阅读 · 0 评论 -
ATL学习笔记(1):ATL单线程与多线程套间对象引用计数的基础实现
COM对象必须在套间中运行。套间分为单线程套间和多线程套间。在单线程套间中,套间保证COM对象实例仅有一个线程可以访问,而在多线程套间中,COM对象实例可同时被多个线程访问。因此,在多线程套间中执行的COM对象必须解决多线程访问的同步和冲突等线程安全相关问题。引用计数器管理的实现——CComObjectRootExATL使用CComObjectRootEx类来实现对COM对象计数器转载 2014-06-04 11:35:09 · 809 阅读 · 0 评论 -
ATL学习笔记(4): COM接口映射表
CComObjectRootObjectBase中以表驱动的方式对接口的查询作了一个内部的实现,即InternalQueryInterface()。所以在创建基于ATL的COM类时,需要创建一个包含所有实现接口的映射表。1. BEGIN_COM_MAP、END_COM_MAP、COM_INTERFACE_ENTRY与COM_INTERFACE_ENTRY2宏ATL提供了BEGIN_转载 2014-06-04 11:38:59 · 993 阅读 · 0 评论 -
ATL学习笔记(2): ATL对象多线程访问临界锁的实现
1. 几个临界区类ATL将Windows临界区封装了一下,即CComCriticalSection和CComAutoCriticalSection类。两者的实现如下(精简):class CComCriticalSection{public: CComCriticalSection() { memset(&m_sec, 0, sizeof(CRITICAL_转载 2014-06-04 11:36:24 · 906 阅读 · 0 评论