COM编程培训
COM编程培训
课程简介:
课程重点介绍动态连接库、调用约定、回调函数、类成员函数作为回调函数、C++对象内存布局、字符串处理、COM基础、COM开发等内容。
课题
内容
准备知识
动态连接库
- 组成
- 初始化
- DLL数
- DLL输出表
- DLL使用:静态链接和动态加载
- 按序号访问DLL函数/数据
调用约定
- C调用约定
- C++调用约定
- 其他调用约
回调函数,类成员函数作为回调函数
- C++对象内存布局
- 简单C++对象内存布局
- 虚函数表
- 函数重载时的内存布局
字符串处理
- 字符串编码
- TCHAR
- BSTR
- CComBSTR和_bstr_t
COM基础
概念
- 组件,接口和容器
- COM历史
- COM架构
接口
- IUnknow接口
- 容器接口和功能接口
COM类
- 类厂
- 包容和聚合
COM库
- 接口,COM类,COM类厂和COM库间关系
- 进程内组件和进程间组件
COM开发
手工COM开发组件端
- 接口声明
- __declspec(novtable)
- 理解HRESULT类型
- 定义COM类
- COM对象生命周期管理
- 实现引用计数
- 实现接口查询
- 定义类厂
- 类厂生命周期管理
- 类厂接口查询
- 类厂创建COM对象实例
- 实现COM库回调函数
- DLL COM组件注册
手工COM开发客户端
- COM库初始化和卸载
- 获得接口
- CComPtr智能指针
EXE COM组件开发
- EXE组件的WinMain
- 客户端创建指针时指定上下文:CLSCTX_LOCAL_SERVER
快速演练:使用ATL开发COM组件
提高
双调度
- Invoke方法
- VARIANT结构
- CComVariant 操作变体类型
- Invoke方法调用示例
- 使用类型库
- 脚本语言中使用双调度
COM连接点模型
包容和聚合
COM内存管理
COM线程模型
COM对象,寓所和线程
- 寓所的概念
- 寓所的创建
- 跨寓所传递COM对象
结构化存储
复合文档
调试与诊断
分布式COM介绍
从COM到COM+
使用其他语言开发COM:C#