Programming Microsoft Windows 2000 unleashed

副标题:无

作   者:(美)[M.威廉姆斯]Mickey Williams著;前导工作室译

分类号:

ISBN:9787111076322

微信扫一扫,移动浏览光盘

简介

   本书是Mickey Williams 所著的一本讲述Winodws 2000 编程的专著,全书共分为五个部分:Windows 2000 核心技术、用户交互/桌面、COM 和ActiveX、COM+以及分布式Windows 2000 服务,详细介绍了Windows 2000 所实现的各种服务,以及它所提供的API 函数。本书结构严谨,内容全面。作者提供了大量的实例,使读者能够轻松地理解复杂的概念及原理。所以,本书是学习Windows 2000 应用程序开发的一本难得的入门教材,同时也是Windows NT 编程人员必不可少的一本参考资料。   

目录

目 录

译者序

前言

第一部分 windows 2000 核心技术

第1章 windows dna 概述 1

1.1 windows 和windows nt 的历史 1

1.2 windows dna 剖析 2

1.3 windows dna 的结构 3

1.3.1 com 4

1.3.2 表示层 4

1.3.3 防火墙层 6

1.3.4 业务逻辑层 7

1.3.5 数据层 10

1.4 小结 11

第2章 虚拟内存和内存管理 12

2.1 使用虚拟内存 12

2.2 使用虚拟内存的时机 13

2.2.1 保留一定的虚拟内存 14

2.2.2 提交一个虚拟内存页面 15

2.2.3 锁定虚拟内存页面 18

.2.2.4 释放虚拟内存页面 19

2.2.5 为其他进程分配内存 19

2.3 使用虚拟内存的例子 19

2.4 windows 2000 堆函数 27

2.4.1 windows 2000 下的堆管理 27

2.4.2 在c++ 类中使用私有堆 28

2.5 小结 33

第3章 线程和进程 34

3.1 进程和线程 34

3.2 管理进程 36

3.2.1 使用createprocess 函数 36

3.2.2 结束进程 38

3.3 管理线程 38

3.3.1 创建线程 38

3.3.2 结束线程 42

3.3.3 取出并改变线程的优先级 42

3.3.4 线程局部存储 43

3.3.5 判断线程的标识符 44

3.3.6 使用线程相似性 45

3.3.7 使多个线程合作 47

3.3.8 何时应创建线程 49

3.3.9 何时不应创建线程 49

3.4 同步 50

3.4.1 使用win32互锁操作 50

3.4.2 临界区 52

3.4.3 管理事件 54

3.4.4 信号灯与互斥 59

3.5 信号量 61

3.5.1 信号量和等待函数 62

3.5.2 信号量应用程序 63

3.5.3 创建信号量 64

3.5.4 返回信号量控制的资源 64

3.6 在应用程序中使用信号量和临

界区 64

3.7 使用作业对象 70

3.7.1 控制作业对象属性 71

3.7.2 作业对象实例 71

3.8 小结 75

第4章 文件 76

4.1 使用windows 2000文件系统 76

4.2 执行通用文件操作 76

4.2.1 收集卷信息 76

4.2.2 文件系统标志 77

4.2.3 例子 78

4.2.4 打开、关闭和删除文件 80

4.2.5 写文件 82

4.2.6 读文件 83

4.3 查找文件 85

4.3.1 使用findfirstfile、findnextfile

和findclose 85

4.3.2 即将面世的findfirstfileex 88

4.3.3 使用filetime 结构 89

4.4 执行其他文件操作 91

4.4.1 使用copyfile 91

4.4.2 使用movefile 91

4.4.3 使用setfilepointer 92

4.4.4 使用getfilesize 93

4.5 使用异步输入输出 93

4.5.1 使用重叠的输入和输出 94

4.5.2 使用文件完成例程 97

4.5.3 使用文件完成例程的例子 98

4.6 利用加密文件系统 104

4.7 使用文件通知函数 108

4.8 小结 112

第5章 结构化异常处理 113

5.1 异常处理的基础知识 113

5.2 seh工作原理 114

5.3 使用终止处理程序 114

5.3.1 使用_ _leave 来离开_ _try 块 116

5.3.2 使用正常和反常终止 117

5.4 使用异常处理程序 117

5.4.1 使用异常过滤器 118

5.4.2 处理浮点异常 121

5.5 c++ 异常处理 122

5.5.1 使用异常来检测错误 122

5.5.2 在错误产生后使用异常清除 123

5.5.3 使用标准异常库 124

5.5.4 使用运行异常 125

5.5.5 使用逻辑异常 126

5.5.6 检测构造时的错误 127

5.6 把win32 seh 与c++ 异常处理集成

起来 128

5.7 小结 129

第6章 动态链接库 130

6.1 理解库 130

6.1.1 静态链接库 131

6.1.2 动态链接库 131

6.1.3 使用dll 的好处 132

6.1.4 使用dll 的不利之处 132

6.2 创建和使用动态链接库 132

6.2.1 dll 初始化 133

6.2.2 导出和导入dll 函数和数据 134

6.2.3 在装入期间装入dll 137

6.2.4 在运行时装入dll 137

6.2.5 dll 版本控制 138

6.2.6 创建dll 共享内存 139

6.2.7 简单的dll 实例 141

6.2.8 使用c++ 和dll 144

6.2.9 使用mfc 和dll 146

6.3 通用替换程序 152

6.3.1 通用替换程序的结构 153

6.3.2 通用替换程序函数 154

6.3.3 通用替换程序实例 155

6.3.4 通用替换程序的调试 163

6.4 小结 163

第7章 分布式安全性 164

7.1 windows 2000 安全性概述 164

7.2 基本安全性数据结构 165

7.2.1 进程和线程安全性令牌 165

7.2.2 安全标识符 167

7.2.3 ace、dacl 和sacl 结构 171

7.2.4 判断acl 所需的大小 172

7.2.5 给dacl 添加允许访问的ace 173

7.2.6 安全描述符 174

7.2.7 获取安全描述符 176

7.2.8 使用安全属性结构 178

7.3 基于委托的访问控制 178

7.3.1 trustee 结构 179

7.3.2 actrl_access_entry
结构 181

7.3.3 actrl_access_entry_list
结构 182

7.3.4 actrl_property_entry
结构 183

7.3.5 actrl_access 结构 183

7.4 模仿客户程序 187

7.5 小结 188

第8章 windows 2000 调试技术 189

8.1 windows 调试策略 189

8.2 使代码易于调试 189

8.2.1 windows 2000 的调试支持 190

8.2.2 mfc调试支持 190

8.3 windows 2000 调试技术概述 192

8.3.1 符号调试信息 192

8.3.2 microsoft 调试工具 192

8.3.3 第三方调试工具 192

8.4 visual c++ 集成的调试工具 193

8.4.1 visual c++ 调试工具的基本知识 193

8.4.2 窗口中的内容 195

8.4.3 visual c++ 调试工具技巧 196

8.5 windows 调试工具windbg 198

8.6 使用softice 调试程序 198

8.7 使用dr.watson 198

8.8 使用bugtrapper 201

8.9 第三方工具的来源 201

8.9.1 compuware numega lab 201

8.9.2 mutek solutions 有限公司 201

8.9.3 rational 202

8.10 小结 202

第9章 windows 2000 服务 203

9.1 服务 203

9.1.1 与windows 2000 服务相交互 203

9.1.2 windows 2000 服务和系统安全 205

9.2 编程实现windows 2000 服务 206

9.2.1 用服务状态更新服务控制管理器 206

9.2.2 windows 2000 服务的生存周期 208

9.2.3 停止windows 2000 服务 212

9.2.4 往windows 2000 事件日志中写

数据 213

9.3 windows 2000 服务的例子 215

9.4 小结 226

第10章 控制windows 2000 服务 227

10.1 编写服务控制程序 227

10.1.1 使用服务控制管理器注册服务 227

10.1.2 取消注册服务 230

10.1.3 自动重启出错的服务 232

10.2 编写控制面板小程序 233

10.2.1 控制面板小程序接口 233

10.2.2 ctlfilespy:filespy 的控制面板

小程序 235

10.3 小结 243

第二部分 用户交互 / 桌面

第11章 高级图形设备接口编程 245

11.1 gdi 基础 245

11.2 设备描述表 246

11.2.1 gdi 映射模式 247

11.2.2 gdi 对象及其用法 247

11.3 位图 248

11.3.1 ddb 与dib 248

11.3.2 16 色dib 251

11.3.3 256 色dib 252

11.4 dib 例子 253

11.4.1 cdibitmap 类 253

11.4.2 cbmppalette 类 259

11.4.3 cdibdoc 类的修改 261

11.4.4 主窗体类的修改 263

11.4.5 cdibview 类的修改 264

11.5 路径 266

11.6 元文件 269

11.7 元文件的例子 269

11.7.1 cmetaview 类声明的修改 270

11.7.2 cmetaview 类析构函数的修改 270

11.7.3 对cmetaview: oninitialupdate

的修改 270

11.7.4 鼠标左击 271

11.7.5 对cmetaview: ondraw 的修改 272

11.8 小结 273

第12章 所有者作图和定制作图 274

12.1 使用所有者作图控件 274

12.2 实现所有者作图控件 275

12.2.1 处理wm_drawitem消息 275

12.2.2 处理wm_measureitem

消息 276

12.2.3 处理wm_compareitem消息 276

12.2.4 处理wm_deleteitem 消息 277

12.3 所有者作图实例:owndraw 277

12.3.1 创建clistitem结构 278

12.3.2 处理所有者作图消息 278

12.3.3 向列表框中加入项目 278

12.3.4 处理wm_measureitem消息 279

12.3.5 处理wm_drawitem消息 279

12.3.6 处理wm_deleteitem消息 280

12.4 使用定制作图 281

12.4.1 定制作图所使用的数据结构 281

12.4.2 custdraw:使用mfc的定制作

图实例 285

12.5 小结 291

第三部分 com 和activex

第13章 com 和ole 293

13.1 com 和ole 概述 293

13.2 常用com 和ole 技术 293

13.2.1 复合文档 293

13.2.2 可视化编辑 295

13.2.3 自动化 296

13.2.4 ole 数据传输 296

13.2.5 拖放 296

13.2.6 与其他应用程序集成 296

13.3 使用com 和ole 编程 296

13.3.1 使用com 接口 297

13.3.2 标识com 接口和对象 297

13.3.3 处理guid 298

13.3.4 处理版本问题 299

13.3.5 使用iunknown 接口 299

13.3.6 创建对象 302

13.4 com 组件的一个例子 305

13.4.1 使用shell 扩展机制 305

13.4.2 理解快捷菜单扩展 306

13.4.3 创建实例 306

13.5 小结 319

第14章 自动化 320

14.1 创建使用自动化的可编程应用程序 320

14.2 idispatch 接口 320

14.2.1 idispatch 使用的数据类型 320

14.2.2 idispatch 中的函数 325

14.2.3 idispatch 接口与虚函数表 326

14.3 创建使用mfc 的自动化服务程序 327

14.3.1 修改自动化选项 328

14.3.2 修改文档类 328

14.3.3 为autobub 创建对话框 330

14.3.4 为autobub 画泡泡对象 332

14.3.5 往autobub 中加入自动化支持 332

14.4 使用visual basic 创建自动化控制

程序 335

14.5 在vbscript 中使用自动化 337

14.6 小结 339

第15章 ole 拖放 340

15.1 ole 剪贴板 340

15.1.1 使用formatetc 和

stgmedium 结构 340

15.1.2 处理formatetc 结构 341

15.1.3 使用dvtargetdevice 结构 342

15.1.4 使用stgmedium 结构 343

15.1.5 使用idataobject 接口 344

15.2 使用ole 拖放 345

15.2.1 ole 拖放来源 346

15.2.2 ole 拖放目标 346

15.3 拖放实例 346

15.4 小结 354

第16章 com 线程化模型 355

16.1 com 线程化方案 355

16.1.1 进程内com 服务程序 355

16.1.2 进程外服务程序 356

16.1.3 管理进程间的内存 357

16.1.4 使用住所中的com 359

16.2 sta 和mta 360

16.2.1 为每个线程选择一个住所 360

16.2.2 线程的最佳住所 361

16.2.3 为com 对象选择住所 361

16.2.4 在客户程序和com 对象间不匹配

的住所 362

16.3 在com 住所间调度 367

16.3.1 共享接口指针的错误方法 368

16.3.2 共享接口指针的正确方法 370

16.4 小结 373

第17章 com 对象 374

17.1 使用idl 374

17.1.1 深入midl 属性 376

17.1.2 编译midl 源文件 376

17.1.3 使用类型库 377

17.1.4 使用idl 中的结构 377

17.1.5 使用idl 中的枚举类型 378

17.1.6 指针和idl 378

17.1.7 使用idl 中的方向属性 380

17.2 使用atl 创建定制组件 380

17.2.1 常用的atl 类 380

17.2.2 atl com 接口映射 381

17.2.3 使用atl 向导 381

17.2.4 将代理/存根代码合并到dll 中 385

17.2.5 一个定制com 对象的示例 385

17.3 使用moniker 395

17.3.1 系统moniker 的示例 395

17.3.2 创建moniker 实例 395

17.3.3 将moniker 转换为文本字符串 396

17.3.4 根据显示名创建moniker 398

17.4 连接点 398

17.5 定制调度 400

17.5.1 深入定制调度 400

17.5.2 深入按值调度 402

17.5.3 实现定制代理 402

17.5.4 在服务器上实现imarshal 407

17.5.5 比较使用定制代理和标准代理

的性能 410

17.6 小结 410

第18章 activex 控件 411

18.1 什么是activex 控件 411

18.2 activex 控件接口 411

18.3 activex 控件的属性、事件和

方法 412

18.3.1 属性 412

18.3.2 事件 413

18.3.3 方法 413

18.4 一个activex 控件示例 413

18.4.1 创建工程 414

18.4.2 绘制控件 414

18.4.3 定义axedit 的属性 415

18.4.4 字符输入处理 417

18.4.5 修改控件的位图 419

18.5 测试activex 控件 419

18.5.1 选择控件的测试容器 419

18.5.2 使用tstcon32 测试容器 419

18.5.3 测试属性 420

18.6 使用atl 创建activex 控件 421

18.6.1 使用atl 实现 stock 属性 421

18.6.2 使用atl 实现custom 属性 422

18.6.3 通过atl 使用ambient 属性 424

18.6.4 在atl工程中实现事件 424

18.6.5 添加消息和事件处理程序 426

18.7 用atl 构建的activex 控件 427

18.7.1 popbutton 的基本设计思路 427

18.7.2 创建popbtn 工程 429

18.7.3 用visual basic 测试popbutton

控件 443

18.8 小结 444

第19章 异步com 445

19.1 com 中的同步方法和异步方法 445

19.2 windows 2000 中对异步方法的

支持 446

19.2.1 idl 中的异步支持 446

19.2.2 windows 2000 中其他新的异步

组件 447

19.2.3 使用fire 和forget 模式 452

19.3 一个异步com 的示例 452

19.3.1 ishop 接口 452

19.3.2 asynctest 工程 453

19.3.3 一个同步测试客户 455

19.3.4 ishop 接口的第二版 457

19.3.5 一个异步测试客户 458

19.4 小结 461

第20章 dcom 462

20.1 位置透明性 462

20.1.1 创建远程对象的实例 463

20.1.2 使用imultiqi 接口 466

20.1.3 确定外部引用是否有效 467

20.2 dcom中的安全性 467

20.2.1 安全性的类型 467

20.2.2 深入调用安全性 468

20.2.3 深入模仿与伪装 468

20.2.4 设置计算机的安全级别 469

20.2.5 设置进程的安全属性 471

20.2.6 深入安全模块 482

20.2.7 设置接口的客户端安全属性 483

20.2.8 管理服务器端的安全性 485

20.3 使用dcom 配置程序 486

20.3.1 使用dcom config 设置系统

端属性 486

20.3.2 使用dcom config设置特定

appid 的属性 486

20.4 小结 487

第四部分 com+

第21章 com+服务简介 489

21.1 事务简介 489

21.1.1 acid:事务处理的四大特性 490

21.1.2 事务的分类 491

21.1.3 两阶段提交协议 492

21.2 深入com+ 内的事务 493

21.3 构建一个可支持事务处理的com+
组件 495

21.3.1 使用visual basic 构建com
对象 495

21.3.2 启示 509

21.3.3 向com+ 应用程序中添加组件 510

21.4 小结 518

第22章 构建com+ 服务组件 519

22.1 好的component service 组件 519

22.1.1 生命周期/无状态 519

22.1.2 无状态对象 521

22.1.3 活动 522

22.2 编写事务组件 523

22.2.1 创建通用事务组件 523

22.2.2 使用visual c++ 创建事务性

com+对象 524

22.2.3 使用visual basic 创建事务性

com+对象 531

22.3 使用com 编译器支持类 533

22.3.1 tlh和tli:检查输出 533

22.3.2 com编译器命令属性 536

22.3.3 使用com_error 产生和捕捉

错误 536

22.3.4 使用任何数据:_variant_t 537

22.3.5 使用bstr:_bstr_t 538

22.4 使用多个com+ 对象 538

22.4.1 组合com+ 对象的事务生命

周期 538

22.4.2 有多个对象参与的事务的输出 540

22.4.3 错误处理 541

22.4.4 传递参数和接口 541

22.5 小结 543

第23章 使用iis 与com+ 544

23.1 web 应用程序基础 544

23.1.1 asp 概览 544

23.1.2 脚本示例 545

23.1.3 asp 应用程序 545

23.1.4 内置的asp 对象 549

23.2 构建web应用程序 549

23.3 实现方法 552

23.3.1 对html 窗体的处理 552

23.3.2 管理cookie 554

23.3.3 创建cookie 554

23.3.4 servervariables 集合 556

23.3.5 对asp 错误的处理 557

23.3.6 定义全局关键字 558

23.3.7 强制次序 560

23.3.8 用javascript 简化重定向过程 563

23.3.9 管理对象的更为简单的方法 565

23.3.10 使用二进制数据 565

23.3.11 编写动态代码 567

23.3.12 动态地调整内容的大小 567

23.3.13 数据验证 569

23.3.14 下载文件 571

23.3.15 发送email 572

23.3.16 浏览器的功能 572

23.4 组件开发 576

23.4.1 一个简单的asp 组件 576

23.4.2 内容更丰富的asp 组件 578

23.5 事务性的asp 页 582

23.6 小结 584

第24章 使用com+ 驻留内存数据库 585

24.1 驻留内存数据库 585

24.2 一个简单的示例 588

24.2.1 创建imdb 589

24.2.2 创建imdb 数据源 590

24.2.3 引用资源表 590

24.3 imdb 的一些细节问题 590

24.3.1 在ole db 级支持哪些接口 590

24.3.2 特定条件是如何与ole db 使用

者模板相关的 591

24.3.3 ado 使用的细节 596

24.4 小结 597

第25章 高级com+ 服务 598

25.1 通过对象共享和负载平衡获得可扩

展性 598

25.1.1 实现iobjectcontrol 598

25.1.2 动态负载平衡 600

25.2 一些高级的事务概念 601

25.2.1 避免死锁和阻塞 601

25.2.2 iobjectconstruct 接口 601

25.2.3 特定情况下的事务控制 602

25.2.4 由客户控制事务 604

25.3 排队组件 606

25.3.1 什么是排队组件 607

25.3.2 排队组件是如何工作的 608

25.3.3 编写排队组件 608

25.3.4 使用排队组件发送返回消息 609

25.4 异步分发信息 610

25.4.1 出版者/订户结构简介 610

25.4.2 构建出版者/订户工程 611

25.5 小结 624

第五部分 分布式windows 2000 服务

第26章 管道 625

26.1 管道的类型 625

26.2 无名管道 625

26.2.1 创建和关闭无名管道 626

26.2.2 管道的读和写 626

26.2.3 使用无名管道与另一进程通信 627

26.2.4 使用无名管道的一个示例 627

26.3 有名管道 631

26.3.1 有名管道的类型 631

26.3.2 创建和关闭有名管道 632

26.3.3 连接和使用有名管道 633

26.3.4 使用有名管道的示例 635

26.4 小结 642

第27章 活动目录 643

27.1 活动目录概览 643

27.1.1 名字空间组织 643

27.1.2 树和森林 645

27.2 使用adsi 管理活动目录 645

27.2.1 在visual basic 和visual c++ 中

使用adsi 646

27.2.2 adsi 绑定字符串 646

27.2.3 adsi 辅助函数 647

27.2.4 无服务的绑定和adsi 649

27.2.5 adsi 所提供的com 接口 651

27.3 其他资源 657

27.4 小结 658

第28章 msmq 659

28.1 microsoft message queue server

简介 659

28.1.1 msmq 和有名管道 659

28.1.2 安装msmq 660

28.1.3 消息队列的类型 660

28.1.4 公用队列和专用队列 661

28.2 msmq 对象属性 661

28.2.1 队列属性 662

28.2.2 消息属性 663

28.2.3 机器属性 664

28.2.4 内存分配 664

28.3 使用win32 api 创建和管理消息

队列 665

28.3.1 创建消息队列 666

28.3.2 打开已有的队列 670

28.3.3 向消息队列发送消息 671

28.3.4 从消息队列中接收消息 675

28.3.5 关闭消息队列句柄 679

28.3.6 删除消息队列 679

28.4 用visual basic 编写的消息队列客户

程序 681

28.5 小结 684

第29章 集群服务器 685

29.1 集群服务器的结构 685

29.1.1 集群服务器的硬件 685

29.1.2 mscs 软件组件 686

29.1.3 集群的启动和恢复 688

29.2 集群api 688

29.2.1 集群对象管理api 688

29.2.2 资源dll api 693

29.2.3 集群管理扩展api 696

29.3 一个可感知集群的示例 697

29.3.1 clusterquote 工程 697

29.3.2 quoteclient 工程 698

29.3.3 high availability quotes 集群资源

类型 698

29.4 小结 700


已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

Programming Microsoft Windows 2000 unleashed
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    亲爱的云图用户,
    光盘内的文件都可以直接点击浏览哦

    无需下载,在线查阅资料!

    loading icon