COM&&ATL
文章平均质量分 71
yangchuankai
https://github.com/tigerguixh/QuickNews
展开
-
COM学习笔记(二):引用计数
IUnknown的另外两个成员函数AddRef和Release的作用就是给客户提供一种让它指 示何时处理完一个接口的手段。 引用计数的三条规则: 1.在返回之前调用AddRef。对于那些返回接口指针的函数,在返回之前应用相应的指针调用 AddRef。这些函数包括QueryInterface及CreateInstance。这样当用户从这种函数得到一个 接口后,它将无原创 2014-09-03 11:52:51 · 618 阅读 · 0 评论 -
COM学习笔记(七):组件、类厂及DLL所输出函数的完整代码
//组件、类厂及DLL所输出函数的完整代码原创 2014-09-03 21:29:48 · 1040 阅读 · 0 评论 -
COM学习笔记(八):流程控制
流程控制:原创 2014-09-03 21:37:57 · 522 阅读 · 0 评论 -
COM学习笔记(一):入门及QueryInterface
#include 定义了-> #define interface struct #include 定义了-> #define pascal __stdcall //***************************************************************************** //简单到爆之程序--COM雏形 #include原创 2014-09-03 10:14:21 · 622 阅读 · 0 评论 -
COM学习笔记(四):注册表、内存管理、GUID<->字符串
注册表中HKEY_CLASSES_ROOT分支的大多数子关键字是ProgID。ProgID指的是程序员给某个CLSID 指定的一个程序员易记的名称。 ProgID格式约定:.. COM库提供的两个函数CLSIDFromProgID和ProgIDFromCLSID,可完成CLSID和ProgID之间的转换。 CLSID clsid; CLSIDFromProgID(L"Helico原创 2014-09-03 16:46:15 · 935 阅读 · 0 评论 -
COM学习笔记(九):包容
//Component是一个实现了两个接口IX和IY的外部组件,原创 2014-09-04 08:11:39 · 524 阅读 · 0 评论 -
我的COM和ATL的学习
首先声明本人并非COM/ATL高手,尽管本人接触他们已经有4年了,但是因为工作中的一些原因一直未能深入研究和广泛的实际的使用它们。不过回想学习它们的痛苦经历,实在是有点不堪回首。在此仅以此文和大家探讨一下学习它们的路径,以让后来人少走弯路。 我个人认为学习COM是一件不简单的事情,只有一步一个脚印踏踏实实的理解每个观点和理论才能真正懂得其精髓。那样才能在发生错误的时候,依靠自己的知识解决问题。我转载 2014-09-04 23:24:20 · 560 阅读 · 0 评论 -
COM学习笔记(五):CoCreateInstance
在COM库中包含一个用于创建组件的名为CoCreateInstance的函数。此函数需要一个CLSID参数,创建相应组件的一个实例,并返回此组件的某个 接口。 COCreateInstance的声明: HRESULT __stdcall CoCreateInstance( const CLSID& clsid, IUnknown* pIUnknowOuter,//Outer COmpon原创 2014-09-03 17:56:43 · 1546 阅读 · 0 评论 -
COM编程入门不得不看的文章 :第一部分 什么是COM,如何使用COM
本文的目的是为刚刚接触COM的程序员提供编程指南,并帮助他们理解COM的基本概念。内容包括COM规范简介,重要的COM术语以及如何重用现有的COM组件。本文不包括如何编写自己的COM对象和接口。 COM即组件对象模型,是Component ObjectModel 取前三个字母的缩写,这三个字母在当今Windows的世界中随处可见。随时涌现出来的大把大把的新技术都以COM为转载 2014-09-04 23:00:22 · 745 阅读 · 0 评论 -
COM学习笔记(三):动态链接(code)
动态链接: //从DLL中输出函数Create.h: extern "C" IUnknown* CreateInstance(){ IUnknown* pI = (IUnknown*)(void*)new CA; pI->AddRef(); return pI; } //cmpnt1.def ; ; Compnt1 module-defineition filel原创 2014-09-03 14:00:06 · 740 阅读 · 0 评论 -
COM学习笔记(十):聚合
聚合的实现:假定客户向外部组件请求接口IY,此时外部组件可以不实现原创 2014-09-04 09:38:48 · 800 阅读 · 0 评论 -
COM学习笔记(十二):编程工作的简化
1、你可能忘记进行引用计数或者忘记释放某个组件上接口的指针。 2、即使你在该调用Release的时候调用了它,在程序中却不一定会真正调用它,因为发生异常后C++的异常处理程序不会调用Release以释放此COM组件。 3、一对QueryInterface调用极易使函数中有用的代码黯然失色。 4、其次,QueryInterface不是类型安全的,原因在于(void**)。例如: IZ* pI原创 2014-09-04 21:05:09 · 610 阅读 · 0 评论 -
COM学习笔记(十一 ):聚合的一个完整例子
//Cmpnt1.cpp - Component1 #incldue原创 2014-09-04 14:56:29 · 888 阅读 · 0 评论