《Windows 2000系统编程》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(美)Al Williams著;钮文良等译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2001
  • ISBN:7111086163
  • 页数:458 页
图书介绍:

第1章 纵览Windows 2000 1

1.1 新的语言 1

1.2 Windows简史 2

1.2.1 Windows NT 3

1.2.2 Windows 95 3

1.2.3 其他方面 4

1.3 Windows版本 4

1.4 Windows体系结构 5

1.4.1 实际情况 6

1.4.2 Win95与Win98 6

1.5.1 多任务处理与线程处理 7

1.5 Windows的特性与差别 7

1.5.2 UNICODE 9

1.5.3 文件系统问题 9

1.5.4 DLL 10

1.6 开发工具 10

1.7 直接解答 11

1.7.1 开发工具的选择 11

1.7.2 Windows的体系结构 11

1.7.3 理解进程 11

1.7.4 从C++中调用API 12

1.7.5 从VB中调用API 12

1.7.6 从Visual J++中调用API 12

1.7.7 Internet资源 13

第2章 ActiveX配套工具 14

2.1 ActiveX与Java 15

2.2 定义 15

2.3 ActiveX对象的结构 16

2.4 对象 17

2.5 代码的重用 18

2.6 多态性 19

2.7 几个其他的ActiveX特性 20

2.7.1 HRESULT和SCODE 20

2.7.2 GUID/UUID/IID 20

2.8 关于IUnknown 21

2.9 创建对象和寻找界面 22

2.10 关于索引的计数 23

2.11 关于聚集 24

2.12 奇妙的特性 24

2.12.1 预定义界面 25

2.12.2 类型库 25

2.12.3 代理程序、承接程序、调度程序 25

2.12.4 关于多线程 27

2.13 ActiveX/C++的连接 27

2.14 为什么不直接使用C++ 28

2.15 系统注册表 28

2.16 注册表:在近亲的和个人的之上 28

2.17.2 RegDeleteKey 30

2.17.1 RegEnumValue 30

2.17 注册表的奇妙之处 30

2.17.3 错误返回 31

2.17.4 数据类型 31

2.17.5 检查注册表代码 31

2.18 操作注册表 32

2.19 注册对象 32

2.20 类的安装 34

2.21 使用REGEDIT 34

2.22 自注册 35

2.22.2 自注册DLL文件 36

2.23 人格化对象 36

2.22.1 自注册EXE文件 36

2.24 类型库 37

2.24.1 类型库在哪里 38

2.24.2 创建类型库 39

2.24.3 类型库的隐蔽 41

2.25 宏 42

2.26 了解客户的基础 42

2.27 简单的服务器程序设计 45

2.27.1 一般服务器程序的发布 46

2.27.2 服务器程序的用法 46

2.27.3 类站 46

2.28 简单的客户程序 46

2.29 EXE服务程序 48

2.29.1 如何运作 53

2.29.2 没有取值 54

2.29.3 调度程序 54

2.29.4 编写Script 55

2.29.5 现在就运行 56

2.29.6 关于服务器程序 56

2.30 DLL服务器程序 56

2.31 支持多界面 60

2.32 MFC技术 61

2.32.1 MFC的EXE服务器程序 61

2.32.3 MFC的DLL服务器程序 70

2.32.2 其他考虑 70

2.33 MFC聚合 71

2.34 IDispatch 72

2.34.1 BSTR、SAFEARRAY及VARIANT 73

2.34.2 返回Invoke 76

2.34.3 简化IDispatch 77

2.34.4 绑定时间和效率 85

2.35 新领域:COM+ 85

2.36 直接解答 87

2.36.1 在命令解释程序中的ActiveX 87

2.36.2 了解注册表 88

2.36.6 关于ATL 89

2.36.5 对最初的界面使用MFC 89

2.36.4 对IDispatch使用MFC 89

2.36.3 公用界面指南 89

第3章 进程、线程和纤程 90

3.1 其他操作系统 90

3.2 进程 91

3.3 CreateProcess 93

3.4 作业与工作区 97

3.5 线程 97

3.6 MFC和线程 99

3.7 线程的局部存储 100

3.8 纤程 103

3.9 APC 104

3.10 直接解答 106

3.10.1 运行新程序——最容易的方式 106

3.10.2 运行新程序——有点难度的方式 106

3.10.3 运行新程序——最难的方式 106

3.10.4 等待程序完成 107

3.10.5 用Windows API创建新线程 107

3.10.6 用C++库创建新线程 107

3.10.7 使用线程与MFC 107

3.10.8 创建MFC工作线程 108

3.10.9 创建MFC的UI线程 108

3.10.11 获得进程和线程的句柄 109

3.10.12 等待线结束,设置(或读取)线程退出代码 109

3.10.10 使窗口和消息对话框显示在上面 109

3.10.13 操纵MFC线程 110

3.10.14 了解MFC返问值 111

3.10.15 完整的MFC示例 111

3.10.16 使用线程局部存储 117

3.10.17 使用纤程 117

3.10.18 有选择地使用线程 118

第4章 同步 119

4.1 定义问题 119

4.1.1 情况一 120

4.1.2 情况二 120

4.3 同步的细节 121

4.2 关于同步 121

4.1.3 情况三 121

4.4 互锁命令 122

4.5 细说事件 123

4.6 细说多用户终端执行程序 124

4.7 细说信号量程序 126

4.8 安全同步 127

4.9 使用WaitForMultipleObjects 127

4.10 能报警的等待 128

4.11 可等待的计时器 128

4.12 临界区 128

4.13 主要示例 130

4.14.2 控制平台句柄 137

4.14 其他可等待的句柄 137

4.14.1 改变标志信息 137

4.15 直接解答 138

4.15.1 选择同步的方法 138

4.15.2 避免死锁 139

4.15.3 使用事件 140

4.15.4 使用多用户终端执行程序 140

4.15.5 使用临界区 140

4.15.6 使用信号量程序 141

4.15.7 等待多个对象 141

4.15.8 使用互锁的变量 141

4.15.9 了解MFC和同步 142

第5章 文件I/O 147

5.1 为什么异步I/O 148

5.2 回顾文件I/O 148

5.3 使用线程 151

5.4 重叠I/O 152

5.4.1 完成I/O 152

5.4.2 使用事件 153

5.4.3 使用ReadFileEx和WriteFileEx 153

5.4.4 EOF检测 153

5.5 I/O完成端口 154

5.6 应用程序的示例 154

5.7 完成端口示例 158

5.9 示例 162

5.8 访问文件的另外方式 162

5.10 直接解答 166

5.10.1 打开文件 166

5.10.2 同步读/写文件 166

5.10.3 检测EOF(同步) 166

5.10.4 复制文件句柄 167

5.10.5 关闭文件 167

5.10.6 使用异步I/O的方法 167

5.10.7 利用线程使用异步I/O 167

5.10.8 启动重叠I/O 169

5.10.11 使用ReadFileEx和WriteFileEx 170

5.10.10 检测EOF(异步) 170

5.10.9 结束异步I/O 170

5.10.12 使用完成端口 171

5.10.13 存储器映像文件 171

第6章 进程间的通信 172

6.1 为什么重要 173

6.2 Windows 2000的IPC机制综述 174

6.3 简单的IPC 176

6.4 将DLL用于共享存储器 182

6.5 其他共享存储器技术 185

6.6 匿名管道 186

6.7.3 其他管道命令 189

6.7.2 消息模式管道 189

6.7.1 使用管道 189

6.7 命名管道 189

6.8 邮件通道 190

6.9 关于网络接口 198

6.9.1 网络接口 199

6.9.2 启动服务器程序 200

6.9.3 启动客户程序 201

6.9.4 Windows网络接口 201

6.9.5 更多的网络接口 202

6.9.6 关于跳棋程序 203

6.9.7 特殊考虑 217

6.9.8 改进 218

6.10 MFC网络接口 218

6.10.1 关于CSocket 219

6.10.2 使用有CSocket的档案文件 220

6.10.3 更进一步的CAsyncSocket 220

6.10.4 封锁命令 220

6.10.5 示例 221

6.10.6 基本架构 221

6.10.7 加入客户网络接口 234

6.10.8 其他考虑 235

6.11 关于RPC 236

6.11.1 RPC理论 236

6.10.9 网络接口的包装 236

6.11.2 实践中的RPC 237

6.11.3 一步一步地编写RPC 237

6.11.4 在IDL文件内 241

6.11.5 编写客户程序 242

6.11.6 编写服务器程序 242

6.11.7 实现连接 243

6.11.8 更多内容 243

6.12 Microsoft消息队列 243

6.13 直接解答 244

6.13.1 IPC方法的综述 244

6.13.2 使用WM_COPYDATA 245

6.13.4 文件映像共享存储器 246

6.13.3 使用共享存储器的DLL 246

6.13.5 使用匿名管道 247

6.13.6 使用命名管道 247

6.13.7 用管道替代标准句柄 248

6.13.8 使用邮件通道 248

6.13.9 使用网络接口 248

6.13.10 使用RPC 249

6.13.11 了解何时舍弃或少用IPC方法 250

第7章 存储器管理 251

7.1 为什么存储器管理会带来麻烦 251

7.2 存储器分页 252

7.3 使用VirtualAlloc 252

7.4 实际上的VirtualAlloc 253

7.5 使用页面属性 255

7.6 使用堆栈 259

7.7 直接解答 261

7.7.1 何时使用VirtualAlloc 261

7.7.2 使用VirtualAlloc与VirtualFree 261

7.7.3 设置页面保护 262

7.7.4 读取页面保护 262

7.7.5 响应异常事件 262

7.7.6 创建新堆栈 263

7.7.7 查找默认堆栈 263

7.7.8 分配与释放堆栈数据 263

7.7.11 堆栈性能的考虑 264

7.7.9 压缩堆栈 264

7.7.10 调试堆栈 264

第8章 Windows的安全 265

8.1 安全的目标 265

8.2 特权与授权 266

8.3 用NULL填充 267

8.4 SID 268

8.5 ACE和ACL 268

8.6 安全对象的类型 269

8.7 使用默认值 269

8.8 建立SD 270

8.10 建立专断的ACL 271

8.9 令牌与人格化 271

8.11 使用AccessCheck 275

8.12 专用安全性 275

8.13 特权 279

8.14 Kerberos 279

8.15 直接解答 280

8.15.1 了解对象的拥有者 280

8.15.2 将SID变换为名字 281

8.15.3 将名字变换为SID 281

8.15.4 创建描述符 281

8.15.6 使用默认的安全性描述符 282

8.15.7 使用通用安全性描述符 282

8.15.5 在绝对与自相对描述符间转换 282

8.15.8 使用特定的安全性描述符 283

8.15.9 使用专用安全性 283

第9章 注册表与登录 284

9.1 放弃INI文件 284

9.2 注册表:封闭的和个人的 285

9.3 注册表的奇异特性 287

9.3.1 RegEnumValue 287

9.3.2 RegDeleteKey 287

9.3.3 错误的返回值 288

9.3.4 键入的数据 288

9.3.5 MFC程序示例 288

9.6 建立REG文件 299

9.5 注册表中有什么 299

9.4 那是注册表吗 299

9.7 在文件类型内部 301

9.8 登录 302

9.9 事件资源 302

9.10 创建消息文件 303

9.11 系统消息 304

9.12 操作记录 305

9.13 直接解答 308

9.13.1 打开注册表主键 308

9.13.2 查找子键 308

9.13.4 使用注册表替代INI文件 309

9.13.3 查找键值 309

9.13.5 创建REG文件 310

9.13.6 创建INF文件 310

9.13.7 创建消息DLL 311

9.13.8 注册消息DLL 311

9.13.9 登录事件 311

9.13.10 将错误转换为消息 312

第10章 用ATL的命令解释程序技巧 313

10.1 扩展命令解释程序 313

10.2 基本的ATL 315

10.3 使用MFC代替ATL 319

10.3.1 逐步地建立MFC的ActiveX对象 320

10.3.2 图标句柄细节 321

10.5 图标托盘程序 325

10.4 比较ATL与MFC 325

10.6 关于智能指针 329

10.7 快捷键 329

10.7.1 创建快捷键 330

10.7.2 消除快捷键 331

10.8 MMC 334

10.8.1 ATL Wizard可实现的 335

10.8.2 Wizard不能实现的 335

10.8.3 增加代码 336

10.8.4 ATL MMC快捷按钮 337

10.9.1 关于扩展命令解释程序 354

10.9 直接解答 354

10.9.2 撤销快捷键 355

10.9.3 创建快捷键 355

10.9.4 编写图标托盘程序 355

10.9.5 其他命令解释程序的命令 356

10.9.6 关于MMC 356

10.9.7 编写MMC快捷按钮 357

第11章 Internet与网络编程 358

11.1 Internet快捷键 358

11.1.1 开始运行 359

11.1.2 使用CEdit View 366

11.2 使用Internet资源管理器 366

11.2.1 自动操作 367

11.2.2 进一步控制 372

11.2.3 使用CHtmlView 373

11.2.4 资源的URL 375

11.2.5 HTML对话框 376

11.3 Web发送API 379

11.3.1 定制上载程序 381

11.3.2 其他容易的方法 385

11.3.3 ActiveX的连接 386

11.3.4 读取Web 386

11.4 MFC Internet的支持 391

11.5.2 使用ADSI 401

11.5.1 术语 401

11.5 活动目录服务概述 401

11.6 直接解答 402

11.6.1 运行Internet快捷键 402

11.6.2 Internet通信的方法 403

11.6.3 使用资源URL 403

11.6.4 在Internet Explorer内 404

11.6.5 使用Scripting对象模型 404

11.6.6 使用HTML对话框 405

11.6.7 使用MFC的Internet支持 405

第12章 控制台应用程序与服务程序 406

12.1 创建简单的控制台应用程序 406

12.1.1 一些内容 406

12.1.2 AVC细节 424

12.1.3 学习控制台窗口 425

12.1.4 特殊的控制台命令 427

12.1.5 处理事件 429

12.1.6 创建有用的新的控制台 429

12.2 服务程序 433

12.2.1 安装服务程序 434

12.2.2 调试服务程序 440

12.2.3 其他服务程序的考虑 440

12.3 面向对象的服务程序 441

12.4.3 访问控制台的方法 447

12.4.2 使用控制台程序的MFC 447

12.4.1 启动控制台程序 447

12.4 直接解答 447

12.4.4 创建GUI程序的主控制台 448

12.4.5 创建和使用辅助控制台 448

12.4.6 处理控制台事件 448

12.4.7 查找控制台的窗口句柄 449

12.4.8 在服务程序内 449

12.4.9 访问服务程序 450

12.4.10 C++服务的基类 450

12.4.11 调试服务程序 450

附录A 超越新领域 452

附录B Windows 2000:编程的冒险旅行 456

附录C 随书光盘的内容 458