第四版 Visual C++ 技术内幕


第四版 Visual C++ 技术内幕

文章插图
Visual C++ 技术内幕(第四版)【第四版 Visual C++ 技术内幕】《VisualC++技术内幕(第四版)》是1999年清华大学出版社出版的图书,作者是DavidJ.Kruglinski 。
基本介绍作者:David J. Kruglinski
译者:潘爱民/王国印
ISBN:9787302032434
页数:814
定价:96.00元
出版社:清华大学出版社
出版时间:1999-1
装帧:Paperback
内容介绍在前三版的基础上,本书向读者详尽地介绍了Visual C++开发系统和複杂的32位Windows编程技术,全面诠释了Microsoft 的这个强大而複杂的开发工具的功能 。本书从对Windows,Visual C++和应用程式框架的技术性概述入手,讨论了下列课题:基础知识——事件处理,GDI,对话框,记忆体管理,SDI和MDI,列印,以及帮助;高级课题——多执行绪,DIB,ODBC,DLL等等 。作者介绍作者简介DavidKruglinski是一位自学成才的、杰出的程式设计员、作家、教师和户外活动家 。自从1966年加入Purdue大学,他就开始了程式设计生涯;1976年他的一位朋友从垃圾箱中发现了一块8080板,从那以后他就开始针对微机编写应用程式 。《VisualC++技术内幕》是David的第五本书 。1992年他为Microsoft出版社写了该书的第一版 。该书赢得了很大的成功并受到了读者的广泛欢迎 。作为最畅销的书,该书现在已经到第四版了;在为Microsoft出版社写作之前,David编写了四本书,涉及的内容从微机数据库管理系统一直到PC通信 。由于他在写作和程式设计方面的出色表现,1991年中期他与Microsoft基本类库(MFC)1.0版本的文档小组建立了正式契约关係 。在大多数MFC参考材料,特别是对一些基本类如CString等的说明中,我们不难看到David的精闢论述 。当1992年MicrosoftC/C++7.0正式推出时,他离开了Microsoft语言开发小组,专门从事《VisualC++技术内幕》的写作 。David被公认为MFC和VisualC++语言这两方面技术的权威 。他成功地发起组织了软件工具研究小组,併兼作MicrosoftVisualC++的顾问和指导 。他经常驾驶着他的滑翔机,在各地授课、做报告、参加会议等 。David通过与Microsoft的密切合作,紧密跟蹤着最新的软体发展方向 。他经常去拜访VisualC++开发小组的成员,从而得以不断跟蹤新的发展,并深入研究MFC中的一些新技术,如OLE、资料库和Internet等 。作为一个週游世界的旅行家和户外活动爱好者,David经常徒步旅行和爬山,他从不闲着 。从80年代后期他开始滑翔机运动,在过去的几年中,作为一个优秀的飞行员,他赢得了国际级的名誉 。David是一个大胆的、非传统的飞行员,他时而翱翔在高山上,时而低飞在山谷中,充分领略了从欧洲到北美洲的壮观美景 。他不断刷新新的记录,包括空中停留时间、旅行距离、飞行高度 。“顺风去吧,Dave 。”1997年4月17日,Kruglinski在华盛顿州OKanogan 郡Methow峡谷飞行时不幸遇难,终年49岁 。“据说,当藏族人面对危险,或者当他们要穿过雪山和大河时,他们会喊,‘每个活着的人100年后都会死,所以又有什幺可害怕的呢?’Dave就是这样的人,但他没有喊 。”LowellSkoog,滑翔机飞行伙伴作品目录目录前言第一部分 Windows、VisualC++和应用程式框架基础第一章 MicrosoftWindows 和VisualC++1.1Windows的编程模式1.1.1讯息处理1.1.2Windows的图形设备接口(GDI)1.1.3基于资源的程式设计1.1.4记忆体管理1.1.5动态连线库(DLL)1.1.6Win32应用程式编程接口1.2VisualC++的组成1.2.1MicrosoftDeveloperStudio97和创建过程1.2.2资源编辑器――WorkspaceResourceView1.2.3C/C++编译器1.2.4资源编译器1.2.5连线器1.2.6调试器1.2.7AppWizard1.2.8ClassWizard1.2.9源程式浏览器1.2.10在线上帮助1.2.11Windows诊断工具1.2.12原始码控制1.2.13Gallery1.2.14Microsoft基本类库4.21版1.2.15MicrosoftActiveX 模板库第二章 Microsoft基本类库应用程式框架2.1为什幺要使用应用程式框架2.1.1学习曲线2.2什幺是应用程式框架2.2.1应用程式框架和MFC库2.2.2应用程式框架示例2.3MFC库讯息映射2.3.1文档和视图第二部分 MFC 库中的视图类第三章 从“Hello,world!”着手学习AppWizard3.1什幺是视图3.2单文档界面(SDI)和多文档界面(MDI)3.3“不做任何事情”的应用程式3.4CEx03aView视图类3.5在视窗内绘图――Windows的图形设备接口3.5.1OnDraw成员函式3.5.2Windows设备环境3.5.3往EX03A程式中加入绘製代码3.6资源编辑器简介3.6.1ex03a.rc的内容3.6.2运行对话框资源编辑器3.7Win32Debug目标和Win32Release目标3.8允许诊断宏3.9对预编译头档案的理解3.10两种方法运行程式第四章 基本事件处理、映射模式和滚动视图4.1获取用户输入――讯息映射函式4.1.1讯息映射4.1.2保存视图的状态-类数据成员4.1.3初始化视图类数据成员4.1.4使矩形区域无效4.1.5Windows 的客户区域4.1.6CRect,CPoint和CSize类的运算4.1.7一个点是否在矩形内4.1.8CRect的LPRECT操作符4.1.9一个点是否在椭圆内4.2Ex04A示例程式4.3对EX04A使用ClassWizard4.3.1同时使用AppWizard 和Clas sWizard4.4映射模式4.4.1MM_TEXT映射模式4.4.2“固定比例”映射模式4.4.3“可变比例”映射模式4.4.4坐标变换4.4.5EX04B示例程式――转换到MM_HIMETRIC映射模式4.5滚动视窗4.5.1视窗比人们所见到的要大4.5.2滚动条4.5.3滚动方式的选择4.5.4 OnInitialUpdate函式4.5.5接收键盘输入4.5.6EX04C滚动示例程式4.6其他Windows讯息4.6.1WM_CREATE讯息4.6.2WM_CLOSE讯息4.6.3WM_QUERYENDSESSION讯息4.6.4WM_DESTROY讯息4.6.5WM_NCDESTROY讯息第五章 图形设备接口(GDI)、颜色及字型5.1设备环境类5.1.1显示设备环境类CClientDC和CWindowDC5.1.2构造和析构CDC对象5.1.3设备环境的状态5.1.4CPaintDC类5.2GDI对象5.2.1GDI对象的构造与析构5.2.2跟蹤GDI对象5.2.3库存的GDI对象5.2.4GDI选择的有效期5.3Windows的颜色映射5.3.1标準视频图形阵列(V以)显示卡5.3.2256色显示卡5.3.316位颜色显示卡5.3.424位颜色显示卡5.4字型5.4.1字型是GDI对象5.4.2选择字型5.4.3列印字型5.4.4 显示字型5.4.5显示器的逻辑英寸和物理英寸5.4.6计算字元高度5.5EXO5A示例程式5.5.1EX05A程式的组成元素5.6EX05B程式5.6.1EX0 5B程式的组成元素5.7EX05C示例程式――再次使用CScrollView5.7.1EX0 5C程式的组成元素5.7.2CScrollView的SetScaleToFitSize模式5.7.3在滚动视图中使用逻辑twips映射模式第六章 模式对话框和Windows通用控制项6.1模式和无模式对话框6.2资源和控制项6.3模式对话框的编程6.4包罗万象的对话框――EX06A示例程式6.4.1创建对话框资源6.4.2ClassWizard和对话框类6.4.3将对话框与视图相连线6.4.4深入理解EX06A应用程式6.5对话框程式的改进6.5.1获得OnOK退出控制6.5.2OnCancel处理6.5.3和滚动条控制项挂上钩6.6控制项的标识:CWnd指针和控制项ID6.7设定对话框的背景色和其中控制项的颜色6.8在对话框视窗内绘图6.9在运行时加入对话框控制项6.10利用其他的控制项特性6.11Windows通用控制项6.11.1进度指示器控制项6.11.2滑桿条(Trackbar)控制项6.11.3微调按钮控制项6.11.4列表控制项6.11.5树状控制项6.11.6WM NOTIFY讯息6.12EX06B示例程式6.13其他Windows 通用控制项第七章 无模式对话框和Windows通用对话框类7.1无模式对话框7.1.1创建无模式对话框7.1.2用户定义的讯息7.1.3对话框的归属7.1.4无模式对话框的例子――EX07A7.2CFormView类――另外一种可供选择的无模式对话框7.3Windows通用对话框7.3.1直接使用CFileDialog类7.3.2从通用对话框类进行派生7.3.3嵌套对话框7.3.4使用CFileDialog的一个例子――EX07B7.3.5CFileDialog的其他可定製特性第八章 使用ActiveX控制项8.1ActiveX控制项和普通的Windows控制项8.1.1普通的Windows 控制项――参考体系8.1.2ActiveX控制项与普通控制项的相同点8.1.3ActiveX控制项与普通控制项的不同点――属性和方法8.2安装ActiveX控制项8.3日曆控制项8.4ActiveX控制项包容器编程8.4.1属性访问8.4.2ClassWizard为ActiveX控制项产生的C++类8.4.3AppWizard对ActiveX控制项的支持8.4.4ClassWizard和包容器对话框8.4.5对话框类数据成员和控制项类的用法8.4.6映射ActiveX控制项事件8.4.7把ActiveX控制项锁定在记忆体里8.5EX08A示例程式――ActiveX控制项对话框包容器8.6ActiveX控制项在HTML档案中的使用8.7在运行时创建ActiveX控制项8.8EX08B示例程式――Web浏览器ActiveX控制项8.9EX08C示例程式――一个完整的双视窗浏览器8.10图形属性8.11约束属性――改变通知8.12其他的ActiveX控制项第九章 Win32记忆体管理9.1进程和记忆体空间9.1.1Windows95进程地址空间9.1.2WindowsNT进程地址空间9.2虚拟记忆体如何工作9.3VirtualAlloc函式――占用和保留记忆体9.4Windows 堆和GlobalAlloc 函式族9.5小记忆体堆,C++的new和delete操作符,_heapmin9.6记忆体映射档案9.7访问资源9.8管理动态记忆体的一些提示9.9常量数据的最佳化存储第十章 点阵图10.1GDI点阵图和与设备无关的点阵图10.2彩色点阵图和单色点阵图10.3使用GDI点阵图10.3.1从资源中装人GDI点阵图10.3.2显示映射模式的作用10.3.3对位进行伸缩处理10.3.4EX10A示例程式10.4利用点阵图改进萤幕显示10.4.1EX10B示例程式10.4.2Windows动画10.5DIB和CDib类10.5.1关于调色板编程的术语10.5.2DIB、象素和颜色表10.5.3BMP档案中DIB的结构10.5.4DIB访问函式10.5.5CDib类10.5.6DIB显示性能10.5.7EX10C示例程式10.6进一步使用DIB10.6.1Load Image函式10.6.2DrawDibDraw函式10.7在按钮上设定点阵图10.7.1EX10D示例程式10.7.2进一步使用点阵图按钮第十一章 Wind0ws讯息处理和多执行绪编程11.1Windows讯息处理11.1.1单执行绪程式处理讯息的过程11.1.2交出控制11.1.3计时器11.1.4EX11A示例程式11.2空状态处理11.3多执行绪编程11.3.1编写辅助执行绪函式和启动执行绪11.3.2主执行绪如何和辅助执行绪通话11.3.3辅助执行绪如何和主执行绪通话11.3.4EX11B示例程式11.3.5用事件使执行绪同步11.3.6EX11C示例程式11.3.7执行绪阻塞11.3.8排斥区11.3.9互斥体(mutex)和信号11.3.10用户界面执行绪(UI执行绪)第三部分 文档-视图结构第十二章 选单、键盘加速键、复文本编辑控制项和属性表12.1主框架视窗和文档类12.2Windows的选单12.3键盘加速键12.4命令处理12.4.1派生类中的命令讯息控制12.4.2更新命令用户界面讯息控制函式12.4.3对话框传送的命令12.5应用程式框架的内含选单项12.6选单项的允许/禁用12.7MFC文本编辑选择12.7.1CE出tView类12.7.2CRichEditView类12.7.3CRichEditCtrl类12.8ex12A示例程式12.9属性表12.9.1创建属性表12.9.2属性表数据交换12.10改进EX12A示例程式12.11Apply按钮的处理过程12.12CMenu类12.13创建浮动的弹出式选单12.14扩展命令处理第十三章 工具列和状态栏13.1控制栏和应用程式框架13.2工具列13.2.1工具列点阵图13.2.2按钮的状态13.2.3工具列和命令讯息13.2.4工具列更新命令UI讯息控制函式13.3工具提示13.4寻找主框架视窗13.5EX13A工具列示例程式13.6状态栏13.6.1状态栏的定义13.6.2信息行13.6.3状态指示器13.6.4获得对状态栏的控制13.7EX13B状态栏示例程式第十四章 可重用框架视窗基类14.1为什幺可重用基类难以设计14.2CPersistentFrame类14.3CFrameWnd类和ActivateFrame成员函式14.4PreCreateWindow成员函式14.5Windows注册表14.6使用CString类14.7最大化视窗的位置14.8控制栏状态和注册表14.9静态数据成员14.10默认视窗矩形14.11EX14A示例程式14.12MDI应用程式中的持续框架第十五章 文档与视图的分离15.1文档-视图之间的相互作用函式15.1.1CView∷GetDocument函式15.1.2CDocumeat∷UpdateAllViews 函式15.1.3CView∷OnUpdate函式15.1.4CView∷OnInitialUpdate函式15.1.5CDocument∷OnNewDocument函式15.2最简单的文档-视图应用程式15.3CFormViiew类15.4CObject类15.5诊断信息转储15.5.1TRACE宏15.5.2atxDump对象15.5.3信息转储环境及CObjct类15.5.4未被删除对象的自动信息转储15.6EX15A示例程式15.7更加高级的文档-视图之间的相互作用15.8CDocument∷DeleteContents函式15.9CObList集合类15.9.1对先人先出列表使用CObList类15.9.2在COblIst中进行叠代――POSITION变数15.9.3CTypedPtrList模板集合类15.9.4信息转储环境及集合类15.10 EX15B示例程式15.10.1资源要求15.10.2代码要求15.10.3CStudentDoc15.10.4CStudentView15.10.5测试EX15B应用程式15.11留给读者的两个练习第十六章 读和写文档――SDI应用程式16.1什幺是序列化16.1.1磁碟档案和归档(Archives)16.1.2使类可序列化16.1.3编写Serialize函式16.1.4 从归档中载人――内嵌对象和指针16.1.5使集合序列化16.1.6Serialize函式和应用程式框架16.2SDI应用程式16.2.1Windows应用程式对象16.2.2文档模板类16.2.3文档模板资源16.2.4SDI文档的多视图16.2.5创建空文档――CWinApp∷OnFileNew函式16.2.6文档类的OnNewDocument函式16.2.7连线FileOpe n与序列化代码――OnFileOpen函式16.2.8文档类的DeleteContents函式16.2.9将FileSave和FileSaveAs与序列化代码相连线16.2.10 文档的“髒”标誌16.3EX16A――序列化SDI示例程式16.3.1CStudent16.3.2CEx16aApp16.3.3CFrameWnd16.3.4CStudentDoc16.3.5cStudentView16.3.6测试EX16A应用程式16.4从Explorer启动及拖放16.4.1程式注册16.4.2在文档上双击滑鼠16.4.3允许拖放16.4.4程式启动参数16.4.5试验用Explorer启动程式及拖放功能第十七章 读和写文档――MDI应用程式17.1MDI应用程式17.1.1一个典型的具有MFC库风格的MDI应用程式17.1.2MDI应用程式对象17.1.3MDI文档模板类17.1.4MDI框架视窗和MDI子视窗17.1.5主框架和文档模板资源17.1.6创建空文档――CWinApp OnFileNew函式17.1.7为现有文档创建新的视图17.1.8载人和存储文档17.1.9多文档模板17.1.10Explorer启动及拖放17.2EX17A示例程式17.2.1CEx17aApp17.2.2CMainFrame17.2.3CChildFrame17.2.4 测试EX17A应用程式第十八章 列印和列印预览18.1Windows的列印18.1.1标準列印对话框18.1.2互动选择列印页码18.1.3显示页和列印页18.2列印预览18.3有关印表机的程式设计18.3.1印表机设备环境和CViewOnDraw函式18.3.2CView OnPrint函式18.3.3準备设备环境――CView OnPrePareDC函式18.3.4列印任务的开始和结束18.4EX18A示例程式――一个所见即所得的列印程式18.5读取印表机矩形框18.6再看模板集合类――CArray类18.7EX18B示例程式――多页列印程式第十九章 切分视窗和多视图19.1切分视窗19.2多视图选择19.3动态和静态切分视窗19.4EX19A示例程式――具有单个视图类的SDI动态切分19.4.1与切分有关的资源19.4.2CMainFrame19.4.3测试EX19A应用程式19.5EX19B示例程式――双视图类SDI静态切分19.5.1CHexView19.5.2CMainFrame19.5.3测试EX19B应用程式19.6EX19C示例程式――切换没有切分的视图类19.6.1资源要求19.6.2CMainFrame19.6.3测试Ex19C应用程式19.7Ex19D示例程式――多视图类MDI应用程式19.7.1资源要求19.7.2CEx19dApp19.7.3CMainFrame19.7.4测试EX19D应用程式第二十章 上下文相关帮助20.1Windows 的WinHe lp程式20.1.1复文本格式(RTF)20.1.2编写简单的帮助档案20.1.3改进的TableOfContents20.2应用程式框架与WinHelp20.2.1调用WinHelp20.2.2使用搜寻字元串20.2.3从应用程式的选单调用WinHelp20.2.4帮助上下文别名20.2.5确定帮助上下文20.2.6F1帮助20.2.7Shift-F1帮助20.2.8讯息框帮助――AfxMessageBox 函式20.2.9一般的帮助20.3帮助示例――不需要任何编程20.4MAKEHEL处理20.5帮助命令处理20.5.1F1处理过程2.5.2Shift-F1处理过程20.6帮助命令处理示例程式――EX20 B20.6.1头档案要求20.6.2CStringView20.6.3CHexView20.6.4资源要求20.6.5帮助档案要求20.6.6测试EX20B应用程式第二十一章 动态连线库21.1基本DLL理论21.1.1导人如何与导出相匹配21.1.2隐式连线和显式连线21.1.3符号连线和序号连线21.1.4DLL人口点――DllMain21.1.5实例句柄――装载资源21.1.6客户程式如何找到DLL21.1.7调试DLL21.2MFcDLL――扩展的和正规的21.2.1共享的MFCDLL和WindowsDLL21.2.2MFC扩展DLL――导出类21.2.3MFC扩展DLL资源搜寻的顺序21.2.4EX21A示例程式――MFC扩展DLL21.2.5EX21B示例程式――DLL测试客户程式21.2.6MFC正规DLL――CWinApp派生类21.2.7使用AFX_MANAGE_STATE宏21.2.8MFC正规DLL资源搜寻顺序21.2.9EX21C示例程式――MFC正规DLL21.2.10修改EX21B示例程式――加入代码以测试ex21c.dll21.3自定义控制项DLL21.3.1什幺是自定义控制项21.3.2自定义控制项的视窗类21.3.3MFC库和WndProc函式21.3.4自定义控制项通知讯息21.3.5传送给控制项的用户定义讯息21.3.6EX2 1D示例程式――自定义控制项21.3.7再修改EX2 1B示例程式――加入代码以测试ex21d.dll第二十二章 不带文档或视图类的MFC程式22.1EX22A示例程式――一个基于对话框的应用程式22.1.1应用程式类InitInstance函式22.1.2对话框类和程式图示22.2EX22B示例――一个SDI应用程式22.2.1应用程式类InitInstance函式22.2.2CMainFrame类22.3EX22C示例程式――一个MDI应用程式22.3.1套用类程式InitInstance函式22.3.2CMainFrame类22.3.3CChildFrame类22.3.4资源要求22.4定製(Custom)AppWizard第四部分 ActiveX:组件对象模型、自动化和OLE第二十三章 组件对象模型23.1ActiveX技术背景23.2组件对象模型(COM)23.2.1COM所解决的问题23.2.2COM的本质23.2.3什幺是COM接口23.2.4IUnknown接口和QueryInterface成员函式23.2.5引用计数:AddRdf和Release函式23.2.6类厂(classfactory)23.2.7CCmdTarget类23.2.8EX23A示例程式――一个模拟的COM23.3MFC库中实际的COM23.3.1COM的CoGetClassObject函式23.3.2COM和Windows注册表23.3.3运行时对象注册23.3.4COM客户程式如何调用进程内组件23.3.5COM客户程式如何调用进程外组件23.3.6MFC接口宏23.3.7MFC的COleObjectFactory类23.3.8AppWizard/ClassWizard对COM进程内组件的支持23.3.9MFCCOM客户程式23.3.10EX23B示例程式――MFCCOM进程内组件23.3.11EX23C示例程式――MFCCOM客户23.4包容、集合和继承第二十四章 自动化24.1C++与VisualBasicforApplications(VBA)之间的连线24.2自动化客户和自动化组件24.3MicrosoftExcel――一种比VisualBasic还好的VisualBasic24.4属性(property)、方法(method)和集合24.5自动化所解决的问题24.6IDispatch接口24.7自动化程式设计的选择24.8MFCIDispatch的实现24.9一个MFC自动化组件24.10一个MFC自动化客户程式24.11使用编译器#import指令的自动化客户程式24.12VARIANT类型24.13COleVariant类24.14Invoke的参数和返回值的类型转换24.15自动化示例24.15.1EX24A自动化组件EXE示例――不带任何用户界面24.15.2EX24B自动化组件DLL示例程式24.15.3EX24CSDI自动化组件EXE示例――带用户界面24.15.4EX24D自动化客户示例程式24.15.5EX24E自动化客户示例程式24.16VBA早绑定24.16.1注册类型库24.16.2组件如何注册自己的类型库24.16.3ODL档案24.16.4Excel如何使用类型库24.16.5为什幺使用早绑定24.16.6客户-组件的快速连线第二十五章 统一数据传输――剪贴簿传输以及OL拖放25.1IDataO bject接口25.2IDataObject如何增强标準剪贴簿的支持25.3FORMATETC和STGMEDIUM结构25.3.1FORMATETC25.3.2STGMEDTUM25.3.3IDataObject接口成员函式25.4MFC统一数据传输支持25.4.1COleDataSource类25.4.2COleDataObject类25.4.3MFC数据对象剪贴簿传输25.5MFCCRectTracker类25.5.1CRectTracker类成员函式25.5.2CRectTracker类矩形坐标转换25.6EX25A示例程式――数据对象剪贴簿25.6.1CMainFrame类25.6.2CE25aDoc类25.6.3CEx25aView类25.7MFC拖放25.7.1传输的源方25.7.2传输的目标方25.7.3拖放的顺序25.8EX25B示例程式――OLE拖放25.8.1CEx25bDoc类25.8.2CEx25bView类25.9Windows应用程式和拖放――Dobjview第二十六章 结构化存储26.1複合档案26.2存储(Storage)和IStorage接口26.2.1获取IStorage指针26.2.2释放STATSTG记忆体26.2.3对存储对象的元素进行枚举26.2.4进程间共享存储26.3流(Stream)和IStream接口26.3.1IStream接口成员函式26.3.2IStream编程26.4ILockBytes接口26.5EX26A示例程式――结构化存储26.5.1选单26.5.2CEx26aView类26.5.3辅助执行绪26.6结构化存储和持久COM对象26.6.1IPersistStorage 接口26.6.2IPersistStream接口26.6.3IpersistStream编程26.7EX2 6B示例程式――一个持久DLL组件26.8EX26C示例程式――一个持久存储客户程式26.9複合档案碎片的处理26.10複合档案的其他优点第二十七章 OLE嵌入组件和包容器27.1嵌入和实地激活(可视编辑)27.2最小伺服器和完备伺服器(组件)――连结27.3可视编辑前景暗淡的一面27.4Windows 图元档案和内嵌对象27.5组件程式的MFCOLE结构27.6EX27A示例程式――MFC实地激活最小伺服器27.6.1MDI嵌入组件27.6.2实地组件调整大小的思路27.7包容器-组件相互作用27.7.1使用组件的IOleObject接口27.7.2装人和保存组件自身的数据――组件文档27.7.3剪贴簿数据传输27.7.4获得组件的图元档案27.7.5进程内控制器的角色27.8组件状态27.8.1包容器接口27.8.2通报连线27.8.3剪贴簿图元档案27.9接口简要说明27.9.1IOleObject接口27.9.2IViewObject2接口27.9.3IOleClientSite接口27.9.4IAdviseSink接口27.10OLE辅助函式27.11OLE嵌入包容器应用程式27.11.1MFC对OLE包容器的支持27.11.2一些包容器限制27.11.3包容器特性27.12EX27B示例程式――嵌入包容器27.12.1CEx27bView类27.12.2CEx27bDoc类27.13 EX27C示例程式――OLE嵌入组件27.13.1CEx27cView类27.13.2CEx27cDoc类第五部分 资料库管理第二十八章 MicrosoftODBC资料库管理28.1资料库管理的优势28.2结构化查询语言28.3ODBC标準28.3.1ODBC结构28.3.2ODBCDK编程28.4MFCODBC类――CRecordset和CDatabase28.4.1记录集中关于行的计数28.4.2处理odbc异常28.5学生注册资料库28.6EX28A记录集示例程式28.7Ex28A示例程式中的元素28.7.1记录集类与应用程式之间的连线28.7.2CEx28aView类的OnInitialUpdate成员函式28.7.3CEx28aView类的OnDraw成员函式28.8筛选器和排序字元串28.9连线两个资料库表28.10MFCCRecordView类28.11EX28B记录查看示例程式28.12多记录集28.12.1EX28C多记录集示例程式28.12.2参数化查询28.13ODBC多执行绪28.14大批行数据获取(bulkrow fetch)28.15使用不带绑定的记录集第二十九章 MicrosoftDataAccessObjbjects资料库管理29.1DAO、COM和MicrosoftJet资料库引擎29.2DAO和VBA29.3DAO和MFC29.4利用DAO可以打开什幺样的资料库29.5按ODBC模式使用DAO――快照和动态集29.6DAO表类型记录集29.7DAOQue ryDef和TableDef29.8DAO多执行绪情况29.9在滚动视窗中显示资料库的行29.9.1滚动显示方法29.9.2一个行-视图类29.9.3基类和派生类的分工处理29.9.4CRowView的纯虚成员函式29.9.5其他的CRowView函式29.10 动态记录集的编程29.11EX29A示例程式29.11.1CEx29aApp29.11.2CMainFrame和CChildFrame29.11.3CEx29aDoc29.11.4CEx29aView29.11.5CTableSelect29.11.6CIsamSelect29.12EX29A资源档案29.13运行EX29A程式第六部分 Interne t程式设计第三十章 TCP/IP、Winsock和WinInet30.1既针对COM也可以不需要COM30.2Internet基础30.2.1网路协定――层30.2.2Internet协定30.2.3用户报文协定30.2.4IP位址格式――网路位元组顺序30.2.5传输控制协定30.2.6域名系统30.2.7HTTP基础30.2.8FTP基础30.2.9Internet和Intranet30.3建立自己的价值$99的Intranet30.3.1NT档案系统和档案分配表30.3.2网路硬体30.3.3对Windows进行网路配置30.3.4Intranet的主机名――HOSTS档案30.3.5测试Intranet――Ping程式30.3.6只有一台计算机的Intranet――TCP/IP环形地址30.4Winsock30.4.1同步和异步Winsock编程30.4.2MFCWinsock类30.4.3BlockingSocket类30.4.4一个简化了的HrTP伺服器程式30.4.5一个简化了的HTTP客户端程式30.5用CHttpBlockingSocket创建一个Web伺服器程式30.5.1EX30A伺服器限制30.5.2Ex30A伺服器结构30.5.3使用Win32TransmitFile函式30.5.4编译和测试EX30A30.5.5使用Telnet30.6用CHttpBlockingSocket创建一个Web客户端程式30.6.1EX30AWinsock客户30.6.2EX30A对代理伺服器的支持30.6.3测试EX30AWinsock客户30.7WinInet30.7.1WinInet相对于Winsock的优势30.7.2MFCWinInet类30.7.3Intenet会话状态回调30.7.4一个简化了的WinInet客户程式30.8用MFcWinInet类创建一个Web客户30.8.1Ex30AWinInetClient #1――使用CHttpConnection30.8.2测试WinInetClient#130.8.3EX3 OAWinInetClient #2――使用OpenURL30.8.4测试WinInetClient#230.9异步Moniker档案30.9.1Moniker30.9.2MFCCAsyncMonikerFile类30.9.3在程式中使用CAsyncMonikerFile类30.9.4 异步moniker档案和WinInet编程第三十一章 MicrosoftInternetInformationServer编程31.1IIs的替代产品31.2MicrosoftIIS31.2.1安装和控制IIS31.2.2运行InternetServiceManager31.2.3IIS的安全性31.2.4IIS目录31.2.5IIS日誌记录31.2.6测试IIS31.3ISAPI伺服器扩展31.3.1通用网关接口和ISAPI31.3.2一个简单的ISSAPI伺服器扩展GET请求31.3.3HTML窗体――GEt和POST31.3.4编写ISAPI伺服器扩展DLL31.3.5MFCISAPI伺服器扩展类31.4一个实际的ISAPI伺服器扩展――ex31a.dll31.4.1第一步――获取定单31.4.2第二步――处理确认窗体31.4.3编译并测试ex31a.dll31.4.4调试EX31ADLL31.5ISAPI资料库访问31.6使用HTTPCookie来连线事务31.6.1Cookie如何工作31.6.2ISAPI伺服器扩展如何处理Cookie31.6.3使用cookie的一些问题31.7WWW鉴定31.7.1基本鉴定31.7.2WindowsNT问讯/应答鉴定31.7.3安全套接字层(SSL)31.8ISAPI过滤器31.8.1编写ISAPI过滤器DLL31.8.2MFCISAPI过滤器类31.9ISAPI过滤器示例――ex3lb.dll、ex3lc.exe31.9.1选择通知31.9.2把事务数据传送到显示程式31.9.3显示程式31.9.4 编译并测试EX31BISAPI过滤器第三十二章 ActiveX文档伺服器和Internet32.1ActiveX文档理论32.1.1ActiveX文档伺服器和OLE嵌入伺服器32.1.2从IE3中运行ActiveX文档伺服器32.1.3ActiveX文档伺服器和ActiveX控制项32.1.4ActiveX文档伺服器和包容器的OLE接口32.1.5MFC对ActiveX文档伺服器的支持32.2ActiveX文档伺服器示例程式EX32A32.2.1EX32A第一阶段――简单的伺服器32.2.2调试ActiveX文档伺服器32.2.3Ex32A第二阶段――加入WinInet调用32.3ActiveX文档伺服器示例程式EX32B32.3.1在程式控制下产生POST请求32.3.2EX32B视图类32.3.3编译并测试EX32B32.3.4ActiveX文档伺服器和VBScript32.4进一步使用ActiveX文档伺服器附录A Microsoft基本类(MFc)库中的讯息映射函式附录B MFC库运行时类识型和动态对象创建