
COM学习
文章平均质量分 80
tofy
这个作者很懒,什么都没留下…
展开
-
ATL接口映射宏详解[3]
二、COM_INTERFACE_ENTRY2(x, x2) ATL中是以多重继承的方式来实现组件的,但在继承树中如果有多个分支实现了同一个接口,当查询这个接口时就需要知道把哪个分支返回给它。这个宏就是干这个工作的通常这个宏是用于IDispatch接口。我们先来看看它的典型用法: class COuter : public IDispatchImpl,//IOuter1是一个双接原创 2004-07-19 11:14:00 · 1684 阅读 · 0 评论 -
为MFC和ATL控件创建签署的CAB文件
如果您计划通过Internet销售 MFC控件和ATL 控件,您应该将其打包成签署的小巧(Cabinet -CAB) 文件。签署文件确保用户下载您的控件时源代码是安全的。一个CAB文件包含一个您的控件及其安装信息(比如,都需要哪些动态链接库DLL和OCX一起安装)的压缩版本。 创建和签署CAB文件的工具包含于Visual C++ 5.0 光盘中的 CAB&SIGN 目录下面。 该目录下的公用程原创 2004-07-19 11:28:00 · 1017 阅读 · 0 评论 -
ATL接口映射宏详解[7]
六、COM_INTERFACE_ENTRY_AGGREGATE_BLIND 参ATL例程COMMAP 上一节我们讲了COM_INTERFACE_ENTRY_AGGREGATE,这节要介绍的宏与它很类似。 #define COM_INTERFACE_ENTRY_AGGREGATE_BLIND(punk)/ {NULL,/ (DWORD)offsetof(_ComMapCl原创 2004-07-19 11:19:00 · 1062 阅读 · 0 评论 -
ATL接口映射宏详解[6]
五.COM_INTERFACE_ENTRY_AGGREGATE(iid, punk) 这一节中将介绍ATL中用于聚集对象的宏。聚集对象的概念请参阅其它参考书。 现在先看一看这个宏的典型用法: class CAgg : public IDispatchImpl, public ISupportErrorInfo, public CComObjectRoot,原创 2004-07-19 11:17:00 · 1042 阅读 · 0 评论 -
ATL接口映射宏详解[2]
5: CComCreator::CreateInstance(void* pv, REFIID riid, LPVOID* ppv) { T1* p = NULL; ATLTRY(p = new T1(pv))//创建类厂对象 if (p != NULL) { p->SetVoid(pv); p->InternalFinalC原创 2004-07-19 11:12:00 · 1536 阅读 · 0 评论 -
ATL接口映射宏详解[1]
序言: 这几天看了看ATL的接口映射宏,不知不觉看得比较深入了,突然就萌发了把它写出来的想法。ATL中定义了很多接口映射宏,有几个还是比较重要的,虽然好象没有必要把它所有的细节都弄得很清楚,但深入学习的过程中也可以顺带学一学其他的ATL类,对它的机制也可以更清楚一些,应该还是会有些好处的吧。我按照我学习的过程把它写出来,也 不知道大家能不能看懂。想模仿一下侯老师的手笔力争把其内部细节解释清楚,原创 2004-07-19 11:11:00 · 1753 阅读 · 0 评论 -
ATL接口映射宏详解[8]
九、COM_INTERFACE_ENTRY_CHAIN(classname) 参ATL例程COMMAP 先看看它的定义: #define COM_INTERFACE_ENTRY_CHAIN(classname)/ {NULL,/ (DWORD)&_CComChainData::data,/ _Chain}, 典型用法: class CChain :原创 2004-07-19 11:20:00 · 2043 阅读 · 0 评论 -
ATL接口映射宏详解[5]
四.COM_INTERFACE_ENTRY_CACHED_TEAR_OFF(iid, x, punk) 这个宏与上一节所讲的COM_INTERFACE_ENTRY_TEAR_OFF宏最主要的不同就在于,当查询分割对象中其他接口时,不会再新建新的对象。下面还是先看看它的典型用法: class CTearOff2: public IDispatchImpl, public原创 2004-07-19 11:16:00 · 1051 阅读 · 0 评论 -
ATL接口映射宏详解[4]
三、COM_INTERFACE_ENTRY_TEAR_OFF(iid, x) 使用这个宏的目的就是为了把一些很少用到的接口放在一个单独的组件中实现,仅当查询到这个接口时,才创建这个组件,并且当它的引用计数减为0时就会被释放掉。我们知道ATL中组件是通过多重继承实现的,每继承一个接口,在为它分配的内存块中就会多一个虚函数表指针,用这个宏就可以为每个组件的实例节省下这一个虚函数表指针来(一个指针4原创 2004-07-19 11:15:00 · 1028 阅读 · 0 评论 -
COM中的可连接对象与连接点机制及其MFC程序实现
本文首先论述可连接对象和连接点机制的原理,然后通过一个示例说明怎样用MFC编程实现可连接对象和内嵌于客户的事件接收器. 1、可连接对象和连接点机制的基本原理 为了在组件对象和客户之间提供更大的交互能力,组件对象也需要主动与客户进行通信。组件对象通过出接口(Outgoing Interface)与客户进行通信。如果一个组件对象定义了一个或者多个出接口则此组件对象叫做可连接点对象。 所谓出原创 2004-07-19 11:33:00 · 1105 阅读 · 0 评论