WINDOWS 2000编程技术内幕

WINDOWS 2000编程技术内幕
作 者: (美)[M.威廉姆斯]Mickey Williams著;前导工作室译
出版社: 机械工业出版社
丛编项: 软件开发技术丛书
版权说明: 本书为出版图书,暂不支持在线阅读,请支持正版图书
标 签: Windows
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《WINDOWS 2000编程技术内幕》作者简介

内容简介

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

图书目录

目 录

译者序

前言

第一部分 Windows2000 核心技术

第1章 WindowsDNA概述

1.1Windows和WindowsNT的历史

1.2WindowsDNA剖析

1.3WindowsDNA的结构

1.3.1COM

1.3.2表示层

1.3.3防火墙层

1.3.4业务逻辑层

1.3.5数据层

1.4小结

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

2.1使用虚拟内存

2.2使用虚拟内存的时机

2.2.1保留一定的虚拟内存

2.2.2提交一个虚拟内存页面

2.2.3锁定虚拟内存页面

2.2.4释放虚拟内存页面

2.2.5为其他进程分配内存

2.3使用虚拟内存的例子

2.4Windows2000堆函数

2.4.1Windows2000下的堆管理

2.4.2在C++类中使用私有堆

2.5小结

第3章 线程和进程

3.1进程和线程

3.2管理进程

3.2.1使用CreateProcess函数

3.2.2结束进程

3.3管理线程

3.3.1创建线程

3.3.2结束线程

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

3.3.4线程局部存储

3.3.5判断线程的标识符

3.3.6使用线程相似性

3.3.7使多个线程合作

3.3.8何时应创建线程

3.3.9何时不应创建线程

3.4同步

3.4.1使用Win32互锁操作

3.4.2临界区

3.4.3管理事件

3.4.4信号灯与互斥

3.5信号量

3.5.1信号量和等待函数

3.5.2信号量应用程序

3.5.3创建信号量

3.5.4返回信号量控制的资源

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

界区

3.7使用作业对象

3.7.1控制作业对象属性

3.7.2作业对象实例

3.8小结

第4章 文件

4.1使用Windows2000文件系统

4.2执行通用文件操作

4.2.1收集卷信息

4.2.2文件系统标志

4.2.3例子

4.2.4打开、关闭和删除文件

4.2.5写文件

4.2.6读文件

4.3查找文件

4.3.1使用FindFirstFile、FindNextFile

和FindC1ose

4.3.2即将面世的FindFirstFileEx

4.3.3使用FILETIME结构

4.4执行其他文件操作

4.4.1使用CopyFile

4.4.2使用MoveFile

4.4.3使用SetFilePointer

4.4.4使用GetFileSize

4.5使用异步输入输出

4.5.1使用重叠的输入和输出

4.5.2使用文件完成例程

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

4.6利用加密文件系统

4.7使用文件通知函数

4.8小结

第5章 结构化异常处理

5.1异常处理的基础知识

5.2SEH工作原理

5.3使用终止处理程序

5.3.1使用__leave来离开__try块

5.3.2使用正常和反常终止

5.4使用异常处理程序

5.4.1使用异常过滤器

5.4.2处理浮点异常

5.5C++异常处理

5.5.1使用异常来检测错误

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

5.5.3使用标准异常库

5.5.4使用运行异常

5.5.5使用逻辑异常

5.5.6检测构造时的错误

5.6把Win32SEH与C++异常处理集成

起来

5.7小结

第6章 动态链接库

6.1理解库

6.1.1静态链接库

6.1.2动态链接库

6.1.3使用DLL的好处

6.1.4使用DLL的不利之处

6.2创建和使用动态链接库

6.2.1DLL初始化

6.2.2导出和导入DLL函数和数据

6.2.3在装入期间装入DLL

6.2.4在运行时装入DLL

6.2.5DLL版本控制

6.2.6创建DLL共享内存

6.2.7简单的DLL实例

6.2.8使用C++和DLL

6.2.9使用MFC和DLL

6.3通用替换程序

6.3.1通用替换程序的结构

6.3.2通用替换程序函数

6.3.3通用替换程序实例

6.3.4通用替换程序的调试

6.4 小结

第7章 分布式安全性

7.1Windows2000安全性概述

7.2基本安全性数据结构

7.2.1进程和线程安全性令牌

7.2.2安全标识符

7.2.3ACE、DACL和SACL结构

7.2.4判断ACL所需的大小

7.2.5给DACL添加允许访问的ACE

7.2.6安全描述符

7.2.7获取安全描述符

7.2.8使用安全属性结构

7.3基于委托的访问控制

7.3.1TRUSTEE结构

7.3.2ACTRL_ACCESS_ENTRY

结构

7.3.3ACTRL_ACCESS_ENTRY_LIST

结构

7.3.4ACTRL_PROPERTY_ENTRY

结构

7.3.5ACTRL_ACCESS结构

7.4模仿客户程序

7.5小结

第8章 Wind0ws2000调试技术

8.1Windows调试策略

8.2使代码易于调试

8.2.1Windows2000的调试支持

8.2.2MFC调试支持

8.3Windows2000调试技术概述

8.3.1符号调试信息

8.3.2Microsoft调试工具

8.3.3第三方调试工具

8.4VisualC++集成的调试工具

8.4.1VisualC++调试工具的基本知识

8.4.2窗口中的内容

8.4.3VisualC++调试工具技巧

8.5Windows调试工具WINDBG

8.6使用Softlce调试程序

8.7使用Dr.WAtson

8.8使用BugTrapper

8.9第三方工具的来源

8.9.1CompuwareNuMegaLab

8.9.2MutekSolutions有限公司

8.9.3Rational

8.10小结

第9章 Wind0ws2000服务

9.1服务

9.1.1与Windows2000服务相交互

9.1.2Windows2000服务和系统安全

9.2编程实现Windows2000服务

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

9.2.2Windows2000服务的生存周期

9.2.3停止Windows2000服务

9.2.4往Windows2000事件日志中写

数据

9.3Windows2000服务的例子

9.4小结

第10章 控制Windows2000服务

10.1编写服务控制程序

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

10.1.2取消注册服务

10.1.3自动重启出错的服务

10.2编写控制面板小程序

10.2.1控制面板小程序接口

10.2.2CtlFileSpy:FileSpy的控制面板

小程序

10.3小结

第二部分 用户交互/桌面

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

11.1GDI基础

11.2设备描述表

11.2.1GDI映射模式

11.2.2GDI对象及其用法

11.3位图

11.3.1DDB与DIB

11.3.216色DIB

11.3.3256色DIB

11.4DIB例子

11.4.1CDIBitmap类

11.4.2CBmpPalette类

11.4.3CDibDoc类的修改

11.4.4主窗体类的修改

11.4.5CDibView类的修改

11.5路径

11.6元文件

11.7元文件的例子

11.7.1CMetaView类声明的修改

11.7.2CMetaView类析构函数的修改

11.7.3对CMetaView:OnInitialUpdate

的修改

11.7.4鼠标左击

11.7.5对CMetaView:OnDraw的修改

11.8小结

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

12.1使用所有者作图控件

12.2实现所有者作图控件

12.2.1处理WM_DRAWITEM消息

12.2.2处理WMMEASUREITEM

消息

12.2.3处理WM_COMPAREITEM消息

12.2.4处理WM_DELETEITEM消息

12.3所有者作图实例:OWnDraw

12.3.1创建CListItem结构

12.3.2处理所有者作图消息

12.3.3向列表框中加入项目

12.3.4处理WM_MEASUREITEM消息

12.3.5处理WM_DRAWITEM消息

12.3.6处理WM_DELETEITEM消息

12.4使用定制作图

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

12.4.2CustDraw:使用MFC的定制作

图实例

12.5小结

第三部分 COM和Active

第13章 COM和OLE

13.1COM和OLE概述

13.2常用COM和OLE技术

13.2.1复合文档

13.2.2可视化编辑

13.2.3自动化

13.2.4OLE数据传输

13.2.5拖放

13.2.6与其他应用程序集成

13.3使用COM和OLE编程

13.3.1使用COM接口

13.3.2标识COM接口和对象

13.3.3处理GUID

13.3.4处理版本问题

13.3.5使用IUnknown接口

13.3.6创建对象

13.4COM组件的一个例子

13.4.1使用Shell扩展机制

13.4.2理解快捷菜单扩展

13.4.3创建实例

13.5小结

第14章 自动化

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

14.2IDispatch接口

14.2.1IDispatch使用的数据类型

14.2.2IDispatch中的函数

14.2.3IDispatch接口与虚函数表

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

14.3.1修改自动化选项

14.3.2修改文档类

14.3.3为AutoBub创建对话框

14.3.4为AutoBub画泡泡对象

14.3.5往AutoBub中加入自动化支持

14.4使用VisualBasic创建自动化控制

程序

14.5在VBScript中使用自动化

14.6小结

第15章 OLE拖放

15.1OLE剪贴板

15.1.1使用FORMATETC和

STGMEDIUM结构

15.1.2处理FORMATETC结构

15.1.3使用DVTARGETDEVICE结构

15.1.4使用STGMEDIUM结构

15.1.5使用IDataObject接口

15.2使用OLE拖放

15.2.1OLE拖放来源

15.2.2OLE拖放目标

15.3拖放实例

15.4 小结

第16章 COM线程化模型

16.1COM线程化方案

16.1.1进程内COM服务程序

16.1.2进程外服务程序

16.1.3管理进程间的内存

16.1.4使用住所中的COM

16.2STA 和MTA

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

16.2.2线程的最佳住所

16.2.3为COM对象选择住所

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

的住所

16.3在COM住所间调度

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

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

16.4小结

第17章 COM对象

17.1使用IDL

17.1.1深入MIDL属性

17.1.2编译MIDL源文件

17.1.3使用类型库

17.1.4使用IDL中的结构

17.1.5使用IDL中的枚举类型

17.1.6指针和IDL

17.1.7使用IDL中的方向属性

17.2使用ATL创建定制组件

17.2.1常用的ATL类

17.2.2ATLCOM接口映射

17.2.3使用ATL向导

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

17.2.5一个定制COM对象的示例

17.3使用moniker

17.3.1系统moniker的示例

17.3.2创建moniker实例

17.3.3将moniker转换为文本字符串

17.3.4根据显示名创建moniker

17.4连接点

17.5定制调度

17.5.1深入定制调度

17.5.2深入按值调度

17.5.3实现定制代理

17.5.4在服务器上实现IMarshal

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

的性能

17.6小结

第18章 ActiveX控件

18.1什么是ActiveX控件

18.2ActiveX控件接口

18.3ActiveX控件的属性 事件和

方法

18.3.1属性

18.3.2事件

18.3.3方法

18.4一个ActiveX控件示例

18.4.1创建工程

18.4.2绘制控件

18.4.3定义AxEdit的属性

18.4.4字符输入处理

18.4.5修改控件的位图

18.5测试ActiveX控件

18.5.1选择控件的测试容器

18.5.2使用TSTCON32测试容器

18.5.3测试属性

18.6使用ATL创建ActiveX控件

18.6.1使用ATL实现stock属性

18.6.2使用ATL实现custom属性

18.6.3通过ATL使用ambient属性

18.6.4在ATL工程中实现事件

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

18.7用ATL构建的ActiveX控件

18.7.1PopButton的基本设计思路

18.7.2创建PopBtn工程

18.7.3用VisualBasic测试PopButton

控件

18.8小结

第19章 异步COM

19.1COM中的同步方法和异步方法

19.2Windows2000中对异步方法的

支持

19.2.1IDL中的异步支持

19.2.2Windows2000中其他新的异步

组件

19.2.3使用Fire和Forget模式

19.3一个异步COM的示例

19.3.1IShop接口

19.3.2AsyncTest工程

19.3.3一个同步测试客户

19.3.4IShop接口的第二版

19.3.5一个异步测试客户

19.4小结

第20章 DCOM

20.1位置透明性

20.1.1创建远程对象的实例

20.1.2使用IMultiQI接口

20.1.3确定外部引用是否有效

20.2DCOM中的安全性

20.2.1安全性的类型

20.2.2深入调用安全性

20.2.3深入模仿与伪装

20.2.4设置计算机的安全级别

20.2.5设置进程的安全属性

20.2.6深入安全模块

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

20.2.8管理服务器端的安全性

20.3使用DCOM配置程序

20.3.1使用DCOMConfig设置系统

端属性

20.3.2使用DCOMConfig设置特定

AppID的属性

20.4小结

第四部分 COM+

第21章 COM+服务简介

21.1事务简介

21.1.1ACID:事务处理的四大特性

21.1.2事务的分类

21.1.3两阶段提交协议

21.2深入COM+内的事务

21.3构建一个可支持事务处理的COM+

组件

21.3.1使用VisualBasic构建COM

对象

21.3.2启示

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

21.4小结

第22章 构建COM+服务组件

22.1好的ComponentService组件

22.1.1生命周期/无状态

22.1.2无状态对象

22.1.3活动

22.2编写事务组件

22.2.1创建通用事务组件

22.2.2使用VisualC++创建事务性

COM+对象

22.2.3使用VisualBasic创建事务性

COM+对象

22.3使用COM编译器支持类

22.3.1TLH和TLI:检查输出

22.3.2COM编译器命令属性

22.3.3使用com_error产生和捕捉

错误

22.3.4使用任何数据:_variant_t

22.3.5使用BSTR:_bstr_t

22.4使用多个COM+对象

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

周期

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

22.4.3错误处理

22.4.4传递参数和接口

22.5小结

第23章 使用IIS与COM+

23.1Web应用程序基础

23.1.1ASP概览

23.1.2脚本示例

23.1.3ASP应用程序

23.1.4内置的ASP对象

23.2构建Web应用程序

23.3实现方法

23.3.1对HTML窗体的处理

23.3.2管理cookie

23.3.3创建cookie

23.3.4ServerVariables集合

23.3.5对ASP错误的处理

23.3.6定义全局关键字

23.3.7强制次序

23.3.8用JavaScript简化重定向过程

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

23.3.10使用二进制数据

23.3.11编写动态代码

23.3.12动态地调整内容的大小

23.3.13数据验证

23.3.14下载文件

23.3.15发送email

23.3.16浏览器的功能

23.4组件开发

23.4.1一个简单的ASP组件

23.4.2内容更丰富的ASP组件

23.5事务性的ASP页

23.6小结

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

24.1驻留内存数据库

24.2一个简单的示例

24.2.1创建IMDB

24.2.2创建IMDB数据源

24.2.3引用资源表

24.3IMDB的一些细节问题

24.3.1在OLEDB级支持哪些接口

24.3.2特定条件是如何与OLEDB使用

者模板相关的

24.3.3ADO使用的细节

24.4小结

第25章 高级COM+服务

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

展性

25.1.1实现IObjectControl

25.1.2动态负载平衡

25.2一些高级的事务概念

25.2.1避免死锁和阻塞

25.2.2IObjectConstruct接口

25.2.3特定情况下的事务控制

25.2.4由客户控制事务

25.3排队组件

25.3.1什么是排队组件

25.3.2排队组件是如何工作的

25.3.3编写排队组件

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

25.4异步分发信息

25.4.1出版者/订户结构简介

25.4.2构建出版者/订户工程

25.5小结

第五部分 分布式Wind0ws2000服务

第26章 管道

26.1管道的类型

26.2无名管道

26.2.1创建和关闭无名管道

26.2.2管道的读和写

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

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

26.3有名管道

26.3.1有名管道的类型

26.3.2创建和关闭有名管道

26.3.3连接和使用有名管道

26.3.4使用有名管道的示例

26.4小结

第27章 活动目录

27.1活动目录概览

27.1.1名字空间组织

27.1.2树和森林

27.2使用ADSI管理活动目录

27.2.1在VisualBasic和VisualC++中

使用ADSI

27.2.2ADSI绑定字符串

27.2.3ADSI辅助函数

27.2.4无服务的绑定和ADSI

27.2.5ADSI所提供的COM接口

27.3其他资源

27.4小结

第28章 MSMQ

28.1MicrosoftMessageQueueServer

简介

28.1.1MSMQ和有名管道

28.1.2安装MSMQ

28.1.3消息队列的类型

28.1.4公用队列和专用队列

28.2MSMQ对象属性

28.2.1队列属性

28.2.2消息属性

28.2.3机器属性

28.2.4内存分配

28.3使用Win32API创建和管理消息

队列

28.3.1创建消息队列

28.3.2打开已有的队列

28.3.3向消息队列发送消息

28.3.4从消息队列中接收消息

28.3.5关闭消息队列句柄

28.3.6删除消息队列

28.4用VisualBasic编写的消息队列客户

程序

28.5小结

第29章 集群服务器

29.1集群服务器的结构

29.1.1集群服务器的硬件

29.1.2MSCS软件组件

29.1.3集群的启动和恢复

29.2集群API

29.2.1集群对象管理API

29.2.2资源DLLAPI

29.2.3集群管理扩展API

29.3一个可感知集群的示例

29.3.1ClusterQuote工程

29.3.2QuoteClient工程

29.3.3HighAvailabilityQuotes集群资源

类型

29.4小结