《Windows 95编程指南》PDF下载

  • 购买积分:22 如何计算积分?
  • 作  者:(美)(塔穆拉)(Randall A.Tamura)等著;姚国清等译
  • 出 版 社:清华大学出版社;西蒙与舒斯特国际出版公司
  • 出版年份:1997
  • ISBN:7302023905
  • 页数:838 页
图书介绍:

目录 1

第一部分WindoWs95结构中的新内容 1

第1章Windows95体系结构 1

1.1Windows95中的特权级 2

1.2Windows95的组件 2

1.2.1虚拟机管理程序 2

1.2.2分页和虚拟内存 4

1.2.3DOS保护模式接口服务程序 4

1.2.4虚拟设备驱动程序 5

1.2.5调度和多线程 5

1.3.2虚拟高速缓存(VCACHE) 6

1.3.1可安装的文件系统管理程序 6

1.3文件管理子系统 6

1.3.3虚拟文件分配表(VFAT) 7

1.3.4网络重定向程序 7

1.3.5CD-ROM文件系统(CDFS) 7

1.3.6长文件名 8

1.4块输入/输出子系统 8

1.4.1端口驱动程序 9

1.4.2SCSI层 9

1.4.3实模式映射程序 10

1.5注册表 10

1.7配置管理程序 11

1.6即插即用 11

1.8第3级保护环 12

1.8.1虚拟机 12

1.8.2DOS虚拟机 12

1.8.3系统虚拟机 13

1.9内存管理 13

1.10多线程和输入队列 14

1.10.1系统虚拟机内核组件 15

1.10.2转换 16

1.10.3USER、GDI和KERNEL 16

1.10.5GDI组件的16位和32位版本 17

1.10.4USER组件的16位和32位版本 17

1.10.6KERNEL组件的16位和32位版本 18

1.10.7同步 18

1.10.8外壳 18

1.11Windows95结构小结 19

第2章内存管理和Windows95的32位环境 20

2.1告别段地址,迎接线性地址 20

2.232位编程基础 22

2.2.1整型数大小 22

2.2.2类型修饰符和宏 23

2.2.3地址计算 23

2.332位数据不是32位代码 24

2.2.6选择器函数 24

2.2.4库函数 24

2.2.5内存模式 24

2.3.1USER模块限制 25

2.3.2GDI的限制 26

2.4简单内存管理 26

2.4.1通过malloc分配内存 26

2.4.2用C++的new和delete运算符 27

2.4.3杂散指针问题 27

2.4.4应用程序间共享内存 28

2.5虚拟内存和高级内存管理 28

2.5.2虚拟内存函数 29

2.5.1Windows95虚拟内存管理 29

2.5.3堆函数 33

2.5.4WindowsAPI和C运行库内存管理函数 34

2.5.5其它函数和过时的函数 34

2.5.6内存映像文件和共享内存 34

2.6小结 36

第3章多任务、进程和线程 38

3.1协同多任务和抢先多任务 38

3.1.1Windows中的协同多任务 38

3.1.2抢先多任务 40

3.1.3重入和进程同步 40

3.1.4线程 42

3.2.1Windows95和WindowsNT 43

3.2.2Windows3.1中的抢先多任务 43

3.2.332位进程和16位进程 43

3.2Windows95中的多任务 43

3.2.4消息队列和线程 45

3.2.532位程序是否不再需要放弃 45

3.3用进程、线程和同步对象编程 45

3.3.1管理进程 46

3.3.2使用线程 47

3.3.3同步对象 49

3.4多线程和Microsoft基础类 50

3.3.4重叠式输入 50

3.4.1用户界面线程 51

3.4.2工作者线程 51

3.5工作实例:一个简单的通讯程序 51

3.5.1生成一个项目 52

3.5.2对话框和资源 52

3.5.3视图和文档类 55

3.5.4建立CTTYView类 56

3.5.5CTTYDoc类 62

3.5.6设置对话框的实现 72

3.6小结 73

4.1FAT和VFAT 74

第4章文件管理和长文件名 74

4.2Windows3.1兼容模式 75

4.316位应用程序的长文件名支持 75

4.432位应用程序的长文件名支持 76

4.5新的文件API 76

4.6应用程序实例 77

第5章Windows95注册表 78

5.从Windows3.x升级到Windows95 78

5.2注册表编辑器的启动和浏览注册表 79

5.3INI文件和注册表 80

5.4使用注册表编辑器 81

5.4.3添加关键字或有值登录项 82

5.4.1输出注册表 82

5.4.2输入注册表 82

5.4.4删除关键字或有值登录项 83

5.4.5关键字或有值登录项改名 83

5.5修改关键字或有值登录项 83

5.6Windows95与注册表的相互作用 83

5.6.1应用程序软件 84

5.6.2即插即用设备 84

5.6.3传统设备与注册表 84

5.7预定义注册表关键字综述 85

5.9为Windows95开发的软件 86

5.8有值登录项内容综述 86

5.10把应用程序加入注册表 87

5.11为应用程序保留的子关键字 87

5.11.1应用程序启动 87

5.11.2路径信息 88

5.11.3注册新的文件扩展名 88

5.11.4注册图标 89

5.12注册表和初始化函数 90

5.13与Windows3.1兼容的函数 91

5.13.1GetPrivateProfileInt 92

5.13.2GetPrivateProfileSection 92

5.13.3WritePrivateProfileSection 93

5.13.4GetPrivateProfileString 94

5.13.5WritePrivateProfileString 94

5.13.6GetProfileInt 95

5.13.7GetProfileSection 95

5.13.8WriteProfileSection 96

5.13.9GetProfileString 96

5.13.10WriteProfileString 97

5.13.11RegOpenKey 98

5.13.12RegCreateKey 98

5.13.13RegEnumKey 99

5.13.15RegSetValue 100

5.13.14RegQueryValue 100

5.14支持Win32的函数 101

5.14.1RegOpenKeyEx 101

5.14.2RegCloseKey 102

5.14.3RegCreateKeyEx 102

5.14.4RegDeleteValue 103

5.14.5RegDeleteKey 103

5.14.6RegEnumKeyEx 104

5.14.7EnumValue 105

5.14.8QueryInfoKey 105

5.14.9RegQueryValueEx 106

5.14.11RegFlushKey 107

5.14.10RegSetValueEx 107

5.15Windows95函数 108

5.15.1实模式VxD注册表函数 108

5.15.2保护模式VxD注册表函数 108

5.16更为容易的编程 109

5.17小结 110

第6章为即插即用设备编程 111

6.1Windows95配置管理程序 114

6.1.1配置管理程序服务综述 116

6.1.2专门的配置管理程序函数 119

6.2注册表仓库 122

6.2.1总线、节点和枚举 124

6.2.2类、安装程序和设备管理程序 130

6.3支持即插即用硬件 138

6.3.1设备信息文件 139

6.3.2设备驱动程序的要求 143

6.4Windows95中ISA即插即用实例 146

6.4.1使用该代码实例的硬件概述 146

6.4.2代码实例 148

第7章Windows3.1程序员可用的Win32API:把Windows3.1应用程序移植到Windows95 156

7.1必须的改变 156

7.1.1长文件名 157

7.1.232位类型 158

7.1.4即插即用 161

7.1.3共享内存 161

7.1.5如果你用 162

7.1.6Make文件 162

7.2细微的改变 162

7.2.1OLE 162

7.2.2注册表 163

7.2.3检索注册表信息 164

7.2.4用户界面 165

7.2.5安装指南 166

7.2.6帮助 166

7.2.7公共对话框 167

7.2.10保持兼容 168

7.2.9Windows95徽标 168

7.2.8鼠标右键 168

7.3改善性能 169

7.3.1线性内存模存 169

7.3.2多线程 170

7.3.3重叠式I/O 171

7.3.4结构化异常处理 171

7.3.5Unicode 171

7.3.6内存资源 172

7.3.7内存利用优化工具 172

7.3.8全局变量分配 172

8.1.1对象级安全 174

第8章WindowsNT程序员可用的Win32API 174

8.1Win32API中NT专用的函数 174

8.1.2Unicode支持 175

8.1.3OpenGL 175

8.1.4NTFS 175

8.1.5磁带备份函数 175

8.2Windows95的新增功能 175

8.2.1窗口管理 175

8.2.2公共对话框 176

8.2.3公共控制 176

8.2.5即插即用 179

8.2.4用多字符集支持国际性 179

8.2.7新的MAP1 180

8.2.8自动运行CD-ROM 180

8.2.9压缩卷 180

8.2.10其他扩充 180

8.2.6新的帮助系统 180

8.3其他差异 181

8.3.1窗口管理 181

8.3.2图形设备接口 182

8.3.3内核 182

8.3.4内存需求说明 183

8.4.3异常 184

8.4.4支持长文件名 184

8.4共同的特性 184

8.4.232位寻址 184

8.4.1抢先多任务和线程 184

8.4.5支持MS-DOS和控制台 185

8.5把NT的应用程序移植到Windows95 185

8.5.1移植是必须的吗 185

8.5.2使用一个公共的可执行程序 186

8.5.3新的GUI 187

9.1.1数据库:ISAM和关系型/SQL 188

9.1.2数据库:基于文件和服务器 188

9.1在应用程序中访问数据库:从头开始 188

第9章数据库支持和ODBC 188

9.2ODBC 190

9.2.1SQL是什么 190

9.2.2ODBC是什么 190

9.2.3应该使用ODBC吗 191

9.2.4ODBC有前途吗 192

9.2.5最低公共标准 193

9.2.6使用ODBC的方法 193

9.3MFC数据库类 194

9.3.1JET/Access/VB范例 194

9.3.2数据库类层次结构 195

9.3.3ClassWizard出来解围 196

9.3.4其他 197

9.4何处寻求帮助 203

第二部分Windows95用户界面 205

第10章Windows95用户界面基础 205

10.1Windows95界面的新内容 205

10.2什么是Windows95用户界面的设计 207

10.2.1面向任务设计 208

10.2.2以用户为中心的设计 210

10.3以文档为中心的计算 213

10.4能力和功能 214

10.6在目录之间浏览 215

10.5.1什么是对象 215

10.5面向对象设计 215

10.7集体设计:用户、程序员和界面设计人员 216

10.7.1用户 217

10.7.2程序员 217

10.7.3设计人员 218

10.8小结 218

第11章基本用户界面设计入门 219

11.1Windows95环境 219

11.2桌面 220

11.3窗口 221

11.4Windows95界面元素 221

11.4.1按钮 222

11.4.2列表框 223

11.4.3列表视图 224

11.4.4树型视图 224

11.4.5属性表控制 227

11.5让我们回到UI设计 228

11.5.1规格描述 229

11.5.2设计 230

11.5.3原型开发 231

11.5.4适用性测试 232

11.5.5迭代过程 233

11.6最终目标 233

第12章创建Windows95Help系统 234

第三部分用户界面应用程序 234

12.1创建WinHelp4.0标题 237

12.1.1设计考虑 237

12.1.2创建基本文件 238

12.1.3使用HCW和HCRTF 245

12.1.4第三方工具 247

12.2使用上下文相关Help的WinHelp 248

12.3WinHelp4.0提示和技术 249

12.4变换多媒体观察程序(MultimediaViewer)文件为WinHelp4.0 253

12.4.1GID文件 253

12.4.4使用DLL 254

12.4.3使用培训卡片(TrainingCards) 254

12.4.2更新Help系统 254

12.5使用WinHelp作为多媒体工具 255

12.6其他WinHelp资源 256

12.7小结 256

第13章设计灵巧的安装和卸载 258

13.1MicrosoftSetup程序 260

13.1.1安装MicrosoftSetupToolKit 260

13.1.2选择要包含的文件 261

13.1.3编写安装程序 262

13.1.4磁盘编排——什么放在哪儿 268

13.1.5.INF文件 275

13.1.6制作分发盘 276

13.2在Windows95下进行卸载 277

13.3WINSTART.BAT文件 279

13.4Stirling公司的InstallSHIELDSDK 281

13.4.1安装InstallSHIELDSDK 281

13.4.2使用InstallSHIELDSDK 282

13.4.3制作分发盘 294

13.5使用Installigence安装程序 294

13.6CD-ROMAutoplay工具 296

13.6.1使用AUTORUN.INF文件 297

13.6.2提示和建议 299

13.7.2工作演示 300

13.8小结 300

13.7演示和表演 300

13.7.1使用DemoSHIELD 300

第14章Win32的国际化支持 302

14.1术语和定义 303

14.2Win32国际化概述 304

14.3Win32字符集 305

14.3.1Unicode 305

14.3.2代码页 308

14.4字符转换 311

14.4.1Unicode变换 311

14.4.2从多字节字符到宽字符的转换 312

14.4.3从宽字符到多字节字符的转换 314

14.4.4Unicode内部转换 314

14.4.5代码页变换 315

14.4.6隐式转换 317

14.4.7字符宽度无关性 318

14.4.8数据交换 319

14.5Win32的地点 319

14.5.1地点和语言标识符(ID) 320

14.5.2Win32地点类型 323

14.6地点和语言 327

14.5.3得到地点和设置地点 327

14.6.1字符测试 328

14.6.2整理 330

14.6.3大小写单一化 334

14.7资源管理 335

14.7.1格式 336

14.7.2层次 336

14.7.3新的资源类型 338

14.7.4新的资源函数 339

14.7.5资源枚举 342

14.8Win32的键盘 342

14.8.2编排 343

14.8.1硬件 343

14.8.3改变编排 346

14.8.4观察注册表里的编排信息 347

14.8.5改变DOS键盘编排 349

14.8.6程序控制 349

14.8.7其他键盘API 351

14.9Windows95里的TrueType字体 351

14.10WGL4信息:程序实例 353

14.11参考资料 360

14.12程序实例 361

15.1DOS:占优势的操作系统 363

第15章DIB:Windows95的高性能位图 363

第四部分WindoWs95多媒体编程 363

15.2Windows3.x 364

15.3Windows95 364

15.4DIB:设备无关位图 364

15.4.1主要组件 364

15.4.2DIB文件格式 365

15.4.3读DIB到内存中 366

15.5调色板 370

15.5.1原理 370

15.5.2Windows调色板管理器 370

15.5.3所有这些对你意味着什么 370

15.6.1应用程序体系结构 371

15.6ShowDIB演示 371

15.6.2CDibDoc类 372

15.6.3CDibView类 374

15.7动画技术 377

15.7.1动画的类型 377

15.7.2基于子画面的动画 378

15.7.3缓冲输出 379

15.7.4透明 379

15.8AnimDIB演示 381

15.8.1应用程序体系结构 381

15.8.2CSprite类 382

15.8.3CAnimWindow类 383

15.8.4CAnimDoc类 385

15.9最后的一些细节 388

15.9.1消息转寄 388

15.9.2子画面调色板 389

15.10硬件辅助的图形 390

15.11要求更多的信息 391

第16章多媒体扩展 392

16.1多媒体魔力 392

16.2什么是多媒体 392

16.3多媒体’95 393

16.5制造一些噪音 395

16.4Windows95的多媒体编程 395

16.5.1MessageBeep 396

16.5.2PlaySound 397

16.5.3sndPlaySound 398

16.6MCIWnd 401

16.6.1MCIWndCreate 401

16.6.2改变MCIWnd的窗口样式 404

16.6.3移动MCI窗口并改变其大小 404

16.6.4打开MCI窗口的文件和设备 405

16.6.5控制MCI窗口 406

16.6.7MCIWndGet和MCIWndSet命令 408

16.6.6MCIWndCan做些什么 408

16.6.8显示配置窗口 410

16.6.9用MCIWnd记录 411

16.7使用MCIWnd和C++时要注意避免的失误 413

16.8MCIWnd应用程序实例 414

16.9Windows95里附加的CD-ROM能力 414

16.10不再需要鼠标四处移动 415

16.11游戏杆应用程序实例 418

16.12结束MCIWnd 418

第五部分WindoWs95公共控制 419

第17章公共控制,属性表,MFC和VisualC++2.x 419

17.1CToolBar,CStatusBar 420

17.2CSpinButtonCtrl 421

17.3CSlideCtrl和CProgressCtrl 422

17.4CAnimateCtrl 424

17.5CHotKeyCtrl 424

17.6CToolTipCtrl 424

17.7CListCtrl,CTreeCtrl,CImageList和CHeaderCtrl 425

17.8属性表和属性页 425

17.9小结 426

第18章工具栏和状态栏 427

18.1MFC工具栏和CToolBarCtrl工具栏 427

18.2CToolBarCtrl类 429

18.2.1实现CToolBarCtrl工具栏 444

18.2.2把CComboBox控制加进工具拦 447

18.2.3增加工具提示支持 448

18.2.4给工具栏添加定制能力 450

18.3MFC状态栏和CStatusBarCtrl状态栏 454

18.4CStatusBarCtrl类 455

18.4.l实现CStatusBarCtrl状态栏 460

18.4.2创建CStatusBarCtrl状态栏 460

18.4.3设定窗格文本 462

18.4.4改变状态栏的显示 463

18.4.5单模式和多部件模式间的切换 463

18.5小结 464

19.1CSliderCtrl类 465

第19章轨道条,进度栏,旋转按钮和热键控制 465

19.2CSliderCtrl轨道条控制的实现 467

19.2.1对话框中的CSliderCtrl类 471

19.2.2在非对话框窗口中创建CSliderCtrl对象 472

19.2.3CSliderCtrl的选项 473

19.2.4使用CSliderCtrl轨道条对象 473

19.3CProgressCtrl类 474

19.4实现CProgtessCtrl进度栏控制 475

19.4.1对话框中的CProgressCtrl类 478

19.4.3使用CProgressCtrl进度栏对象 479

19.5CSpinButtonCtrl类 479

19.4.2在非对话框窗口中创建CProgressCtrl对象 479

19.6实现CSpinButtonCtrl旋转按钮控制 481

19.6.1对话框中的CSpinButtonCtrl类 484

19.6.2在非对话框窗口中创建CSpinButtonCtrl对象 485

19.6.3CSpinButtonCtrl选项 486

19.6.4使用CSpinButtonCtrl旋转按钮对象 486

19.7CHotKeyCtrl类 487

19.8实现CHotKeyCtrl热键控制 488

19.8.1对话框中的CHotKeyCtrl类 493

19.8.2在非对话框窗口中创建CHotKeyCtrl对象 494

19.8.3CHotKeyCtrl选项 494

19.8.4使用CHotKeyCtrl热键对象 494

19.9小结 495

第20章列表视图和树形视图控制 496

20.1CListCtrl类 496

20.2实现CListCtrl列表视图控制 499

20.2.1对话框中的CListCtrl类 506

20.2.2在非对话框窗口中创建CListCtrl对象 508

20.2.3列表视图的状态 510

20.2.4使用列表视图的状态图像 510

20.2.5使用CListCtrl列表视图对象 514

20.3CTreeCtrl类 516

20.4实现CTreeCtrl树形视图控制 518

20.4.1对话框中的CTreeCtrl类 521

20.4.2在非对话框窗口中创建CTreeCtrl对象 523

20.4.3树形视图的状态 523

20.4.4使用树形视图的状态图像 524

20.4.5使用CTreeCtrl树形视图对象 525

20.4.6CTreeCtrl树形视图的交互作用 525

20.5小结 526

第21章属性表和标签控制 527

21.1MFC属性表和CPropertySheet属性表 528

21.2CPropertySheet对话框 529

21.3CTabCtrl类 531

21.3.1CTabCtrl标签控制的实现 536

21.3.2创建CTabCtrl对象 537

21.3.3定义标签 538

21.3.4设定标签属性 539

21.4小结 541

第22章RTF文本控制和动画控制 542

22.1RTF文本编辑控制 542

22.2RTF文本编辑控制的实现 544

22.2.1在对话框中的CRTFEditCtrl类 549

22.2.2使用CRTFEditCtrlRTF文本编辑控制对象 551

22.2.3RTF文本编辑控制和正规文本编辑控制的区别 553

22.2.4RTF文本编辑控制的输入和输出 553

22.2.5RTF文本编辑控制的交互作用 554

22.3CRTFEditCtrl类 555

22.3.1什么是CRTFEditCtrl类对象 555

22.3.2CRTFEditCtrl成员 555

22.3.3CRTFEditCtrl揭秘 570

22.3.4还能增加些什么 583

22.3.5OLE支持 583

22.4动画控制 583

22.5CAnimateCtrl动画控制的实现 586

22.5.1对话框中的CAnimateCtrl类 588

22.5.2在非对话框窗口中创建CAnimateCtrl对象 589

22.5.3CAnimateCtrl的交互作用 589

22.6小结 590

22.5.4使用CAnimateCtrl动画对象 590

第六部分OLE程序设计 591

第23章OLE初步 591

23.1OLE体系结构 592

23.1.1对象 593

23.1.2接口 593

23.1.3结构化存储 593

23.1.4OLE自动化 594

23.1.5一致格式数据传输 594

23.1.6链接与嵌入 594

23.2OLE初始化 596

23.3多线程OLE 602

23.4Windows95OLE与16位WindowsOLE的区别 603

23.5小结 604

第24章组件对象模型(COM) 605

24.1接口 605

24.2IUnknown 606

24.2.1QueryInterface 606

24.2.2AddRef和Release 608

24.2.3IUnknown的实现 608

24.3GUID 609

24.4IClassFactory 610

24.5再访接口 610

24.6Marshaling 611

24.7IShellLink 612

24.8小结 617

第25章窗口对象和复合文档 618

25.1窗口对象 618

25.2复合文档 618

25.2.容器 618

25.2.2建立容器 623

25.3小结 632

第26章可视编辑 633

26.1现场激活 633

26.2.2IOleWindow接口 635

26.2.1容器的可视编辑接口 635

26.2MFL,OWL,OCF和可视编辑 635

26.2.3IOleInPlaceUIWindow接口 636

26.2.4IOleInPlaceFrame接口 636

26.2.5IOleInPlaceSite接口 637

26.3RTF文本编辑现场激活容器的实现 638

第27章拖放 643

27.1拖放 643

27.2IDropSource 643

27.3IDropTarget 645

27.4RegisterDragDrop 645

27.4.1CoLockObjectExternal 645

27.4.2RevokeDragDrop 646

27.5小结 649

第28章OLE自动化 650

28.1IClassFactory 650

28.2IDispatch 652

28.3ITypeLib和ITypelnfo 655

28.4注册数据库 656

28.5命令行选项 658

28.6启动OLE自动化服务器 660

28.7属性和方法 660

28.8小结 663

29.1DDE与OLE的对比 664

第29章OLE代替DDE 664

29.2IDataObject 665

29.3FORMATETC 666

29.4STGMEDIUM 667

29.5EnumFormatEtc 668

29.6GetCanonicalFormatEtc 668

29.7GetData 669

29.8GetDataHere 669

29.9QueryGetData 669

29.10SetData 669

29.11DAdvise 669

29.12DUnadvise 670

29.13EnumDAdvise 671

29.14实现DDE,还是实现OLE 671

29.15IDataAdviseHolder 671

29.15.1SendOnDataChange 671

29.16IAdviseSink 672

29.16.1OnDataChange 672

29.17小结 672

第30章OLE控制开发工具包 673

30.1VisualBasic控制 673

30.2OLE控制 673

30.3OLE控制接口 674

30.4为何应该创建OLE控制 675

30.5使用CDK 675

30.6介绍VBX到OLE控制的转换 683

30.7VBX和OLE控制的对比 683

30.8转换VBX为OLE控制 684

30.8.1转换之前检查VBX 684

30.8.2ControlWizard和ClassWizard 685

30.8.3转换VBX源代码 685

30.9小结 686

第31章为Windows95资源管理器提供文件观察器 687

31.1外壳和OLE 687

31.2OLE进程内服务器 688

31.2.1注册 690

31.3外壳扩展 695

31.3.1类制造厂 696

31.3.2IShellExtInit 698

31.3.3上下文菜单 700

31.3.4拖放外壳扩展 703

31.3.5属性表 707

31.3.6复制夹 710

31.3.7图标处理程序 711

31.4文件观察器 714

31.4.2IPersist和IPersistFile 715

31.4.1快速查看 715

31.4.3IFileViewer 716

31.5小结 716

第七部分Windows95的网络与通讯 717

第32章网络环境下的Windows95编程 717

32.1Windows95网络体系结构 717

32.1.1多协议支持 719

32.1.2NDIS3.1和多协议支持 720

32.1.3网络提供者接口和并行网络服务器 720

32.1.4可安装的文件系统接口 720

32.2.1NETRESOURCE结构 721

32.2Windows95网络API 721

32.2.2AddConnection:网络资源入口点(EntryPoint) 722

32.2.3WNetCancelConnection:断开连接 723

32.2.4WNetGetConnection:检索远程资源名字 724

32.2.5Enum函数:获得资源列表 725

32.2.6连接和断开资源的用户对话框 726

32.2.7WNetGetUser:用户名字 727

32.2.8错误处理 727

32.3WinSockAPI 728

32.3.1初始化以及关闭套接字 728

32.3.2WSAData和sockaddr 729

32.3.3主机系统信息 730

32.3.4字节顺序和IP地址转换 731

32.3.5发送和接收数据 732

32.3.6错误处理 733

32.4小结 733

第33章远程过程调用(RPC) 734

33.1什么是远程过程调用 734

33.2它是如何工作的 734

33.3RPC可以用于哪些地方 734

33.4定义远程过程调用接口 735

33.4.1联编 735

33.4.2接口定义实例 736

33.5创建服务器 737

33.5.1协议序列 737

33.4.3指针类型 737

33.5.2端点的选取 738

33.5.3注册服务器接口 738

33.5.4用定位器注册服务器 739

33.6创建客户 740

33.6.1寻找服务器 740

33.7代表RPC客户创建窗口 743

33.8小结 744

34.1概述 746

34.1.1TCP/IP 746

第34章WinSock 746

34.2WinSockAPI 747

34.2.1初始化WinSock 748

34.2.2终止WinSock 751

34.2.3创建套接字 751

34.2.4建立会话 752

34.2.5传送数据 757

34.2.6终止会话 760

34.3用于进程间通讯的WinSock 761

34.4WinSock的Windows95实现 761

34.5Windows3.1程序员的WinSock 761

34.7WinSock的未来 762

34.6UNIX程序员的WinSock 762

34.8小结 763

第35章程序员的MicrosoftExchange 764

35.1消息传递 764

35.2什么是MicrosoftExchange 764

35.3MicrosoftExchange服务程序 765

35.4与MicrosoftMail3.x的可互操作性 765

35.5Exchange与开发者 766

35.6MSExchange概述 767

35.6.1通用收件箱 767

35.6.4存储区 768

35.6.3服务提供者 768

35.6.2RTF文本 768

35.6.5地址簿 769

35.6.6传输 769

35.6.7简要表(Profile) 772

35.7Schedule+ 773

35.8小结 773

第36章消息传送系统——扩展的MAPI 774

36.1最新的传输 774

36.2MAPI的简要历史 774

36.3M.API的快速浏览 775

36.4Windows95里的扩展MAPI编程 778

36.5初始化扩展MAPI 778

36.6登录消息传送系统 779

36.7MAPI对象接口 781

36.8MAPI,数据库 782

36.8.1使用消息存储区表格 783

36.8.2理解表格结构 785

36.9打开消息存储区 787

36.10打开文件夹 789

36.10.1创建树 790

36.10.2获得发件箱、被发送的邮件和回收站 791

36.10.3获得收件箱 791

36.10.4打开一个文件夹 792

36.12构造新的消息 794

36.11读收件箱 794

36.13改变新消息的属性 796

36.14使用地址簿 797

36.14.1地址簿属性 798

36.14.2调用地址簿 799

36.14.3设置消息的接收者 800

36.14.4综合 801

36.15结束消息系统 802

第37章TAPI 803

37.1本章的范围 803

37.2什么是TAPI 803

37.3TAPI体系结构 804

37.4一些定义 805

37.5辅助TAPI 806

37.6TAPI概念 807

37.6.1设备ID 807

37.6.2句柄 807

37.6.3长度变化的数据结构 807

37.6.4TAPI消息 809

37.6.5TAPI函数调用 811

37.6.6呼叫信息 814

37.7线路设备 815

37.7.1初始化TAPI 816

37.7.2TAPI关闭 818

37.7.3服务提供者能力 820

37.8电话号码 821

37.8.1拨电话 824

37.8.2呼叫状态监视 826

37.8.3结束电话呼叫 829

37.8.4回答到来的呼叫 831

37.8.5媒体模式与呼叫转交 832

37.8.6呼叫者ID 834

37.8.7处理辅助TAPI请求 835

37.9电话设备 837

37.10关于本书附带的软件 837

37.11小结 838