前言 1
第1章 IDL你好 1
1.1 什么是IDL? 1
1.2 定义接口 4
1.3 添加参数 7
1.4 有关方向属性的更多问题 10
1.5 小结 11
第2章 一个IDL文件的结构 12
2.1 接口和类型信息 12
2.2 库块内定义 13
2.3 编制类型库版本 16
2.4 生成C++类型信息 17
2.5 在库块外部定义 18
2.6 建立一个代理-存根DLL 20
2.7 接口定义、类型库和oleautomation属性 23
2.8 本地属性 25
2.9 引入其他文件 26
2.10 在库信息组中引入文件 29
2.11 Coclass 32
2.12 小结 33
第3章 数据类型和接口问题 35
3.1 基本数据类型 35
3.2 有符号(signed)和无符号(unsigned)数据类型 36
3.3 char和byte 38
3.4 char和wchar_t 38
3.5 比较LPOLESTR和BSTR 39
3.6 枚举类型 41
3.7 对象引用 45
3.8 结构 53
3.9 联合(Union) 58
3.10 变体数据类型(VARIANT) 63
3.11 typedef 71
3.12 属性 78
3.13 接口的继承性 82
3.14 调度(disapatch)接口 84
3.15 小结 88
第4章 指针和数组 89
4.1 指针基础知识 89
4.2 指针和常量 92
4.3 指针的语义 93
4.4 顶级(top-level)指针和嵌入(embedded)指针 98
4.5 指针和语言映射 107
4.6 对象引用和指针 110
4.7 数组 111
4.8 固定大小的数组 111
4.9 一致性数组 116
4.10 一致性指针 121
4.11 一致性指针作为输出参数 123
4.12 利用一致性模拟固定大小的数组 125
4.13 多维的一致性指针 126
4.15 锯齿状(Jagged)数组 137
4.16 安全数组(SAFEARRAY) 138
4.17 管理SAFEARRAY 145
4.18 小结 154
第5章 设置别名 155
5.1 方法别名 155
5.2 类型别名 162
5.3 更多的有关类型别名机制的问题 169
5.4 小结 180
6.1 异步调用 181
第6章 异步COM 181
6.2 客户端的异步性 182
6.3 服务器端的异步性 189
6.4 小结 192
第7章 IDL类型 193
第8章 IDL类型修饰符 210
第9章 IDL关键字 216
第10章 IDL属性 247