Com
文章平均质量分 71
mdj280759843
这个作者很懒,什么都没留下…
展开
-
COM IUnknown接口封装
CAbstractUnknown.h #include <objbase.h> #include <unknwn.h> #define DECLARE_IUNKNOWN_INTERFACE \ public: \ virtual HRESULT _stdcall QueryInterface(c...原创 2011-02-26 18:32:00 · 140 阅读 · 0 评论 -
COM IUnknown接口封装(非代理)
CNonDelegatingUnknown.h #ifndef __unknwn_h__ #include <unknwn.h> #include <objbase.h> #include <atlbase.h> #endif class INonDelegatingUnknown { public: virtual HRESULT _std...原创 2011-02-26 18:33:33 · 179 阅读 · 0 评论 -
COM IClassFactory接口封装
CAbstractClassFactory.h #include <objbase.h> #include <unknwn.h> #define DECLARE_IUNKNOWN_INTERFACE \ public: \ virtual HRESULT _stdcall QueryInterfa...原创 2011-02-26 18:35:47 · 154 阅读 · 0 评论 -
COM IDispatch接口封装
AbstractDispatch.idl import "unknwn.idl"; import "oaidl.idl"; coclass CAbstractDispatch; interface IAbstractDispatch; [ // {35EE0AE4-D79B-4d50-8532-F27911171EC5} //static const GUID <<n...原创 2011-02-26 18:39:04 · 317 阅读 · 0 评论 -
COM 智能指针CComPtr
template <class T> class CComPtr { public: typedef T _PtrClass; CComPtr() { p=NULL; } CComPtr(T* lp) { if ((p = lp) != NULL) p->AddRef(); } CComPtr(const CComPtr&...原创 2011-02-26 18:48:22 · 228 阅读 · 0 评论 -
COM 嵌套类实现COM
Ia.h //#include <objbase.h> //#include <unknwn.h> interface IA:public IUnknown { virtual int _stdcall Add(int a,int b)=0; }; // {B7691C47-7C3A-419c-894D-9B428A92A0D8} const IID II...2011-02-26 18:54:30 · 142 阅读 · 0 评论 -
COM 包容与聚合
COM不支持实现继承的原因在于这种继承方式将使得一个对象的实现同另外一个对象的实现紧紧地关联起来。在这种情况下,当基类的实现被修改后,派生类将无法正常运行而必须被修改。这就是为什么一些用C++编写大型程序的专家们强烈建议人们基于抽象类来构建应用程序。 因此,为了保证以组件的修改不会影响应用程序的正常运行,COM并不支持实现继承。我们可以用组件包容来完全模拟实现继承。 包容和聚合 对...原创 2011-02-26 18:56:53 · 166 阅读 · 0 评论 -
COM组件
COM组件 COM component(COM组件)是微软公司为了计算机工业的软件生产更加符合人类的行为方式开发的一种新的软件开发技术。在COM构架下,人们可以开发出各种各样的功能专一的组件,然后将它们按照需要组合起来,构成复杂的应用系统。由此带来的好处是多方面的:可以将系统中的组件用新的替换掉,以便随时进行系统的升级和定制;可以在多个应用系统中重复利用同一个组件;可以方便的将...原创 2010-11-21 14:57:00 · 100 阅读 · 0 评论