读书笔记-COM

OLE是Object Linking and Embedding,对象链接与嵌入技术,比如我们在Word中插入一个Excel图表,用的都是OLE技术 《Inside OLE》 COM component object model ActiveX其实说起来是OLE2.0,它提供了一种更好的组件封装方式,让我们可以搭积木一样来制作软件 2:static_case(num) 是个特殊转换记号,可将整数num转换为对应枚举成员。 const_case reinterpret_case//重新解释 案件 cl makefile tangram MFC风格前缀 C 类 I 接口 m_ 成员变量 s_ 静态成员变量 g_ 全局变量匈牙利命名规范 p 指针 pI 指向接口的指针 b 布尔型 I 整形 dw DWORD c 计数 sz 字符数组 usz 宽字符数组第一章 组件 1.1 使用组件的优点 1.1.1应用的定制 1.1.2组件库 1.1.3分布式组件 1.2 对组件的要求 1.2.1动态连接 1.2.2封装性 组件必须将其实现的编程语言隐藏起来 组件必须以二进制的形式发布 组件必须可以在不妨碍已有用户的情况下被升级 组件在网络的位置必须是透明的 1.3 COM 1.3.1COM组件是以Win32动态连接库(DLL)或可执行文件(EXE)的形式发布的可执行代码组成的. 1.3.2COM不是 COM不是DLL,是利用DLL来给组件提供动态连接的能力. 1.3.3COM库 1.3.4COM方法 1.3.5COM超越了用户的需求第二章 接口 COM的接口是一个包含一个函数指针数组的内存结构 2.1 接口的作用 2.1.1可复用应用框架 2.1.2COM接口的其他优点 2.2 COM接口的实现 2.2.1代码约定 #include OBJBASE.H #define interface struct interface 接口 struct的成员将自动具有共有的属性 2.2.2一个完整的例子 trace//踪影 2.2.3非接口通信 2.2.4实现细节 2.3接口理论:第二部分 2.3.1接口的不变性 2.3.2多态性 2.4接口的背后 2.4.1虚函数表 2.4.2vtbl指针及实例数据 2.4.3多重实例 2.4.4不同的类相同的vtbl 第三章 3.1接口查询 3.1.1关于IUnknown stdcall 将在返回到调用者之前将参数从栈中删除 #include UNKNWN.H interface IUnknown { virtual HRESULT _ _stdcall Queryinterface(const IIK&iid,void**ppv)=0; virtual ulong _ _stdcall addref()=0; virtual ulong _ _ stdcall release()=0; } 3.1.2IUnknown指针的获取 IUnknown指针的获取 IUnknown*createInstance(); 3.1.3关于Queryinterface的用法 3.1.5Queryinterface的实现规则 3.1.6关于类型转换 3.1.7一个完整的例子 Queryinterface函数 const IIK&iid 参数接口标识符 客户所需的接口 void**ppv存放所请求的指针 3.2关于QueryInterface的实现规则 3.2.1同一IUnknown 3.2.2客户可以获取曾经得到过的接口 3.2.3可以再次获取已经拥有的接口 3.2.4客户可以从任何借口返回到起始接口 3.2.5若能够从某接口获取其特定接口,则从任意借口都将获取此接口 3.3QueryInterfac定义了组件//查询接口接口集 3.4组件新版本的处理 3.4.1何时需要建立一个新版本 3.4.2不同版本接口的命名 3.4.3隐含和约 4 引用计数 4.1生命期控制 4.2引用记数简介 4.2.1引用记数接口 4.2.2 AddRef和Release的实现//参考 发行 4.3何时进行引用计数 4.3.1引用计数的优化 4.3.2引用计数的规则 5动态连接 5.1组件的创建从DLL中引出函数 extern "c" IUnknown *CreateInstance { IUnknown* PI=(IUnknown*)(void *)new CA; PI->AddRef(); return PI; } 5.2客户和组件的划分 5.3对象串 6.关于HRESULT、GUID、注册表及其他细节 6.1HRESULT //result 结果 6.2GUID 6.3注册表 6.4COM库函数 CLSCTX

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值