- 博客(14)
- 资源 (3)
- 收藏
- 关注
转载 ATL接口映射宏详解[7]
七、COM_INTERFACE_ENTRY_AUTOAGGREGATE(iid, punk, clsid) 参ATL例程COMMAP 先看看这个宏的定义: #define COM_INTERFACE_ENTRY_AUTOAGGREGATE(iid, punk, clsid)/ {&iid,/ (DWORD)&_CComCacheData,/ (DWORD)offsetof(_ComMapClass
2008-05-24 22:41:00 700
转载 ATL接口映射宏详解[6]
六、COM_INTERFACE_ENTRY_AGGREGATE_BLIND 参ATL例程COMMAP 上一节我们讲了COM_INTERFACE_ENTRY_AGGREGATE,这节要介绍的宏与它很类似。 #define COM_INTERFACE_ENTRY_AGGREGATE_BLIND(punk)/ {NULL,/ (DWORD)offsetof(_ComMapClass, punk),/ _
2008-05-24 22:40:00 535
转载 ATL接口映射宏详解[5]
五.COM_INTERFACE_ENTRY_AGGREGATE(iid, punk) 参ATL例程COMMAP 这一节中将介绍ATL中用于聚集对象的宏。聚集对象的概念请参阅其它参考书。 现在先看一看这个宏的典型用法: class CAgg : public IDispatchImpl, public ISupportErrorInfo, public CComObjectRoot, public
2008-05-24 22:38:00 612
转载 ATL接口映射宏详解[4]
四.COM_INTERFACE_ENTRY_CACHED_TEAR_OFF(iid, x, punk) 参ATL例程COMMAP 这个宏与上一节所讲的COM_INTERFACE_ENTRY_TEAR_OFF宏最主要的不同就在于,当查 询分割对象中其他接口时,不会再新建新的对象。下面还是先看看它的典型用法: class CTearOff2: public IDispatchImpl, public
2008-05-24 22:37:00 683
转载 ATL接口映射宏详解[3]
三、COM_INTERFACE_ENTRY_TEAR_OFF(iid, x) 参考ATL例程Beeper、COMMAP 使用这个宏的目的就是为了把一些很少用到的接口放在一个单独的组件中实现,仅 当查询到这个接口时,才创建这个组件,并且当它的引用计数减为0时就会被释放掉。我 们知道ATL中组件是通过多重继承实现的,每继承一个接口,在为它分配的内存块中就会 多一个虚函数表指针,用这个宏就可以为每个组件
2008-05-24 22:35:00 618
转载 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->InternalFinalConstructAddRef(); hRes = p->FinalCons
2008-05-24 22:34:00 655
原创 C++之父元旦专访(8+13个问题,关于C++的学习&使用和未来)(转帖)
Bjarne Stroustrup is the designer and originalimplementer of C++ and the author of "The C++ Programming Language" and“The Design and Evolution of C++”. His research interests includedistributed system
2008-05-24 20:15:00 1491
原创 析构函数是虚函数
用C++开发的时候,用来做基类的类的析构函数一般都是虚函数。可是,为什么要这样做呢?下面用一个小例子来说明: 有下面的两个类:class ClxBase{public: ClxBase() {}; virtual ~ClxBase() {}; virtual void DoSomething() { cout }; class C
2008-05-19 21:44:00 634
原创 多态是如何实现绑定的
多态是如何实现绑定的多态的绑定可以分为运行是多态和编译时多态● 编译时的多态性编译时的多态性是通过重载来实现的。对于非虚的成员来说,系统在编译时,根据传递的参数、返回的类型等信息决定实现何种操作。● 运行时的多态性运行时的多态性就是指直到系统运行时,才根据实际情况决定实现何种操作。C#中,运行时的多态性通过虚成员实现。编译时的多态性为我们提供了运行速度快的特点,而运行时
2008-05-19 21:42:00 628
原创 VC视频教程笔记(第六课)
1.当对某菜单添加消息响应函数时,4个类的消息响应优先次序分别是:1.View;2.CDOC;3.CMainFrame.4.CWinAPP.为什么?请参阅《深入浅出》 2.消息分类:a;标准消息(以WM_开头的消息,但不包括ON_COMMAND);b;命令消息 ON_COMMAND(IDM_PHONE1, OnPhone1),菜单和工具栏的消息。c.通告消息:按钮,列表框发出的消息。 CCmd
2008-05-19 21:34:00 503
原创 VC视频教程笔记(第五课)
1.CWnd::CreateSolidCaret创建插入符,ShowCaret()显示插入符。GetTextMetrics(),获得当前字体的一些信息。CWnd::CreateCaret()创建图象插入符 bitmap.LoadBitmap(IDB_BITMAP1);//此处的bitmap为成员变量! CreateCaret(&bitmap); ShowCaret(); TEXTMETRIC
2008-05-19 21:31:00 523
原创 VC视频(第四讲)
1.在单文档中view挡在MainFrame的前面。此时如果编写针对MainFrame的mouseClick事件,将不会有反应。 2.消息响应会在3处修改代码,1处是在头文件中, //{{AFX_MSG(CDrawView) afx_msg void OnLButtonDown(UINT nFlags, CPoint point); afx_msg void OnLButtonUp(UINT
2008-05-19 21:29:00 501
原创 C++之父访谈
1998年的元旦,Bjarne Stroustrup(C++之父)接受了IEEE《计算机》杂志记者的专访。编辑很自然的认为他会对于过去七年来使用他创建的语言进行面对对像设计做一个历史性的回顾。而在这个专访中,记者获得了更有价值的新闻,但是最后编辑决定为了整个IT产业,这个稿子不能发表,但是就像其它被砍掉的新闻,往往还是弄得路人皆知的。这一篇适当时专访的完全拷贝,没有被编辑、删改或者做过什么润色处理
2008-05-19 20:31:00 471
转载 ATL接口映射宏详解[1]
序言: 这几天看了看ATL的接口映射宏,不知不觉看得比较深入了,突然就萌发了把它写出来的想法。ATL中定义了很多接口映射宏,有几个还是比较重要的,虽然好象没有必要把它所有的细节都弄得很清楚,但深入学习的过程中也可以顺带学一学其他的ATL类,对它的机制也可以更清楚一些,应该还是会有些好处的吧。我按照我学习的过程把它写出来,也 不知道大家能不能看懂。想模仿一下侯老师的手笔力争把其内部细节解释清楚,
2008-05-12 17:36:00 633
Firefox插件开发Demo
2010-05-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人