本书全面、深入地介绍了Visual C++5.0和各种功能和新增特性。包括数据库、多媒体以及网络等各个方面。可以说包括了Windows编程域内的所有高级特性。\r\n 本书共分为七大部分:第一部分主要讲基本的 Visual C++5.0环境;第二部分主要讲MFC编程技术;第三部分主要讲ActiveX编程讲述;第四部分主要廛Win32网络编程技术;第一部分主要讲数据库编程技术;第六部分主要讲多媒体编程技术;第七部分主要讲高级Win 32编程技术。最后创建一个完整的应用程序及所要做的具体工作。\r\n 本书既可以作为具备C++基础并且有一定Windows编程经验的读者的学习教材,又可以作为软件开发人员的技术参考。\r\n
译者序\r\n前者\r\n\r\n第一部分 Visual C++5.0环境\r\n\r\n第一章 Visual C++环境\r\n\r\n1.1 开发平台\r\n1.1.1 观察窗口\r\n1.1.2 工具条\r\n1.2 项目工作区\r\n1.3 工作区窗口\r\n1.3.1 File View\r\n1.3.2 ClassView\r\n1.4 项目配置\r\n1.5 转换旧的项目\r\n1.6 同时进行我个项目\r\n1.7 资源管理\r\n1.7.1 资源浏览\r\n1.7.2 导入资源\r\n1.7.3 管理资源ID\r\n1.7.4 资源模板\r\n1.8 编辑资源\r\n1.8.1 对话框\r\n1.8.2 编辑菜单\r\n1.8.3 其他资源\r\n1.9 应用程序向导\r\n1.9.1 AppWizard的作用\r\n1.9.2 启动AppWizard\r\n1.9.3 项目类型\r\n1.10 ClassWizard\r\n1.10.1 消息映射\r\n1.10.2 成员变量\r\n1.10.3 自动化\r\n1.10.4 ActiveX事件\r\n1.10.5 类信息\r\n1.10.6 增加一个类\r\n1.11 组件廊\r\n1.12 集成调试器\r\n1.12.1 观察数据\r\n1.12.2 出现异常后的调试\r\n1.13 命令行工具\r\n1.14 其他工具\r\n1.14.1 Spy++\r\n1.14.2 MFC Tracer\r\n1.14.3 Register Control\r\n1.14.4 ActiveX Control Test Container\r\n1.14.5 OLE/COM Object Viewer\r\n1.14.6 Error Lookup\r\n1.14.7 WinDiff\r\n1.14.8 Help Workshop\r\n1.15 小结\r\n\r\n第二部分 通用MFC编程\r\n\r\n第2章 MFC概览\r\n\r\n2.1 应用程序框架\r\n2.2 用AppWizard创建MFC\r\n2.2.1 启动AppWizard\r\n2.2.2 了解你的应用程序\r\n2.2.3 AppWizard创建的类\r\n2.2.4 CDocument,CView及Frame类\r\n2.3 CWinApp类\r\n2.4 CWinThread类\r\n2.5 CCmdTarget类\r\n2.6 CObject类\r\n2.7 运行时类型信息\r\n2.8 调试支持\r\n2.8.1 AssertValid()\r\n2.8.2 ASSERT宏\r\n2.8.3 dUMP()\r\n2.8.4 trace()\r\n2.9 完整的应用程序\r\n2.9.1 WinMain()宏\r\n2.9.2 InitApplication()和InitInstance()\r\n2.9.3 LoadStdProfileSettings()\r\n2.9.4 用命令行工作\r\n2.9.5 创建主窗口\r\n2.10 消息循环\r\n2.11 小结\r\n\r\n第3章 MFC消息和命令\r\n\r\n3.1 消息的种类\r\n3.2 MFC中的消息处理\r\n3.3 消息发送\r\n3.4 用ClassWizard进行消息处理\r\n3.5 创建消息映射\r\n3.5.1 填充消息映射\r\n3.5.2 消息映射的内部\r\n3.5.3 实现处理函数\r\n3.5.4 PreTranslate Message()\r\n3.6 小结\r\n\r\n第4章 框架、文档和视体系\r\n\r\n4.1 文档/视体系\r\n4.1.1 单文档与多文档应用程序\r\n4.1.2 文档类\r\n4.1.3 视类\r\n4.1.4 框架\r\n4.1.5 文档模板\r\n4.2 创建应用程序\r\n4.2.1 创建文档类\r\n4.2.2 文档数据\r\n4.2.3 Serialize()\r\n4.2.4 OnNewDocument()\r\n4.2.5 DeleteCocument()\r\n4.2.6 OnOpenDocument()\r\n4.2.7 OnSaveDocument()\r\n4.2.8 OnCloseDocument()\r\n4.2.9 ReportSaveLoadException()\r\n4.2.10 “脏”标志\r\n4.2.11 访问文档\r\n4.3 视\r\n4.4 视类\r\n4.4.1 CScrollView类\r\n4.4.2 CFormView和CRecordView类\r\n4.4.3 控件视\r\n4.4.4 CEditView\r\n4.4.5 使用CRichEditView\r\n4.4.6 CListView和CTreeView\r\n4.5 文档模板\r\n4.5.1 为文档创建另一个视\r\n4.5.2 CDocument::OnChangeViewList\r\n4.5.3 UpdateAllViews()\r\n4.5.4 从文档访问视\r\n4.6 处理框架\r\n4.6.1 状态条\r\n4.6.2 增加一个工具条\r\n4.6.3 浮动式和固定式工具条\r\n4.7 再谈菜单\r\n4.7.1 更新用户界面\r\n4.7.2 弹出式菜单\r\n4.7.3 动态创建菜单\r\n4.8 在应用程序中加入分割线\r\n4.8.1 动态分割线\r\n4.8.2 创建不同的视\r\n4.8.3 静态分割线\r\n4.9 在应用程序中加入拖放功能\r\n4.9.1 便拖放有效\r\n4.9.2 处理WM-DROPFILES消息\r\n4.10 小结\r\n\r\n第5章 对话框和控件\r\n\r\n5.1 使用自己的对话框\r\n5.1.1 构造对话框对象\r\n5.1.2 显示对话框\r\n5.1.3 无模式对话框\r\n5.2 用ClassWizard创建对话框类\r\n5.3 在对话框中使用控件\r\n5.4 Windows控件类\r\n5.4.1 CEdit\r\n5.4.2 静态控件\r\n5.4.3 按钮控件\r\n5.4.4 列表框控件\r\n5.4.5 组合框\r\n5.5 对话框数据交换\r\n5.5.1 创建自己的DDX函数\r\n5.5.2 数据有效化\r\n5.6 Windows通用对话框\r\n5.6.1 CFileDialog\r\n5.6.2 CPrintDialog\r\n5.6.3 CPageSetupDialog\r\n5.6.4 CColorDialog\r\n5.6.5 CFontDialog\r\n5.6.6 CFindAndReplace\r\n5.7 OLE通用对话框\r\n5.7.1 建立属性页\r\n5.7.2 创建属性表\r\n5.7.3 用属性表进行对话框数据交换\r\n5.7.4 加入应用按钮\r\n5.7.5 创建自己的向导\r\n5.8 对话条\r\n5.9 小结\r\n\r\n第6章 用MFC进行绘图和打印\r\n\r\n6.1 绘制窗口\r\n6.2 CDC类\r\n6.2.1 GDI封装的类\r\n6.2.2 映像模式\r\n6.2.3 使用GDI对象\r\n6.2.4 用CDC绘图\r\n6.2.5 其他热门绘图话题\r\n6.3 打印\r\n6.3.1 打印过程\r\n6.3.2 打印循环\r\n6.4 打印预览\r\n6.5 小结\r\n\r\n第7章 通用类\r\n\r\n7.1 CString\r\n7.1.1 CString和C字符串\r\n7.1.2 CString和Unicode\r\n7.1.3 CString的内存分配问题\r\n7.1.4 创建CString对象\r\n7.1.5 CString表达式\r\n7.1.6 处理单个的字符\r\n7.1.7 比较CString的值\r\n7.1.8 格式化CString\r\n7.1.9 其他CString函数\r\n7.1.10 什么时候不用CString类\r\n7.2 CTime类和CTimeSpan类\r\n7.2.1 构造CTime对象\r\n7.2.2 CTime和时区\r\n7.2.3 GetCurrentTime()\r\n7.2.4 格式化时间\r\n7.2.5 提取时间值\r\n7.2.6 CTime运算\r\n7.2.7 CTimeSpan类\r\n7.3 COleDateTime和COleDateTimeSpan\r\n7.4 MFC的文件类\r\n7.4.1 打开文件\r\n7.4.2 使用CFile类进行读写\r\n7.4.3 使用CStdioFile类进行读写\r\n7.4.4 得至有关文件的信息\r\n7.4.5 关闭文件\r\n7.4.6 CMemFile类\r\n7.4.7 CSaredFile类\r\n7.5 CArchive类\r\n7.6 MFC的集合类\r\n7.6.1 MFC非模板集合类\r\n7.6.2 MFC的模板集合类\r\n7.6.3 声明简单集合类\r\n7.6.4 模板数组\r\n7.6.5 模板基集合类的帮助函数\r\n7.6.6 使用CList类\r\n7.6.7 使用映像类\r\n7.7 异常处理\r\n7.7.1 用C++进行异常处理\r\n7.7.2 发出异常\r\n7.8 MFC异常类\r\n7.8.1 CMemoryException\r\n7.8.2 CNotSupportedException\r\n7.8.3 CFileException\r\n7.8.4 CArchiveException\r\n7.8.5 CResourceException\r\n7.8.6 COleException\r\n7.8.7 CUserException\r\n7.8.8 CDBException\r\n7.8.9 CDaoException\r\n7.8.10 CInternetException\r\n7.9 Win32系统级异常\r\n7.10 小结\r\n\r\n第8章 内存管理\r\n\r\n8.1 Win32内存模式\r\n8.1.1 Win32内存地址空间\r\n8.1.2 Win32保留地址\r\n8.1.3 16位与32位的区别\r\n8.2 简单内存分配\r\n8.2.1 栈结构分配\r\n8.2.2 堆内分配\r\n8.2.3 GlobaMenoryStatus()\r\n8.3 虚拟内存\r\n8.4 共享内存\r\n8.5 小结\r\n\r\n第9章 用MFC进行多线程编程\r\n\r\n9.1 在应用程序中使用多线程\r\n9.1.1 MFC对象和线程\r\n9.1.2 线程的类型\r\n9.2 使用工作线程\r\n9.2.1 开始线程\r\n9.2.2 编写线程函数\r\n9.2.3 访问线程的返回码\r\n9.3 用户界面线程\r\n9.3.1 创建线程\r\n9.3.2 创建线程类\r\n9.3.3 在线程中处理消息\r\n9.3.4 中止线程\r\n9.3.5 线程避部存储区\r\n9.4 线程同步\r\n9.4.1 潜在的错误\r\n9.4.2 发送事件\r\n9.5 创建一个新进程\r\n9.6 小结\r\n\r\n第10章 动态链接库\r\n\r\n10.1 使用动态链接库\r\n10.1.1 输入库\r\n10.1.2 调用约定\r\n10.1.3 加载DLL\r\n10.1.4 动态加载DLL\r\n10.2 创建自己的DLL\r\n10.2.1 从DLL中输出函数\r\n10.2.2 DLL内存\r\n10.2.3 建立DLL\r\n10.3 DLL和MFC\r\n10.3.1 普通型MFC DLL\r\n10.3.2 扩展MFC DLL\r\n10.3.3 调试DLL\r\n10.3.4 Dumpbin.exe\r\n10.4 小结\r\n\r\n第三部分 ActiveX编程\r\n\r\n第11章 ActiveX概览\r\n\r\n11.1 OLE历史的简要回顾\r\n11.2 最终用户对OLE的见解\r\n11.3 程序开发人员对OLE的看法\r\n11.3.1 组件对象模型\r\n11.3.2 结构化存储\r\n11.3.3 Moniders\r\n11.3.4 统一数据传输\r\n11.3.5 OLE文档\r\n11.3.6 OLE自动化\r\n11.3.7 OLE控件\r\n11.4 OLE技术扩展到ActiveX\r\n11.4.1 ActiveX文档\r\n11.4.2 ActiveX控件\r\n11.4.3 COM\r\n11.4.4 Internet Moniders\r\n11.5 ActiveX技术\r\n11.5.1 ActiveX超级链接\r\n11.5.2 ActiveX协议\r\n11.5.3 ActiveX服务器扩展\r\n11.5.4 ActiveX Script\r\n11.5.5 代码签名\r\n11.5.6 HTML扩展\r\n11.5.7 ActiveMovie\r\n11.6 小结\r\n\r\n第12章 ActiveX文档\r\n\r\n12.1 什么是ActiveX文档\r\n12.2 MFC有些什么新内容\r\n12.3 有关ActiveX文档的一些细节\r\n12.4 COM接口\r\n12.4.1 IOleObject\r\n12.4.2 IDataObject\r\n12.4.3 IPersisStorage\r\n12.4.4 IPersisFile\r\n12.4.5 IOleDocumment\r\n12.4.6 IOlePlaceObject\r\n12.4.7 IOle InPlaceActiveObject\r\n12.4.8 IOleDovument Vies\r\n12.4.9 Iprint\r\n12.4.10 IOleCommandTarget\r\n12.5 Active模板库(ATL)\r\n12.6 ACTIVEDOC\r\n12.6.1 activect1.h\r\n12.6.2 oledocument.h\r\n12.6.3 activedoc.htm\r\n12.7 小结\r\n\r\n第13章 ActiveX容器\r\n\r\n13.1 ActiveX容器\r\n13.2 MFC中新加入了些什么\r\n13.3 ActiveX关于容器的细节\r\n13.3.1 结构化存储\r\n13.3.2 Monikers\r\n13.3.3 统一数据传输\r\n13.3.4 嵌入式对象\r\n13.3.5 链接式对象\r\n13.3.6 拖放\r\n13.3.7 在位激活\r\n13.3.8 ActiveX文档\r\n13.4 COM接口\r\n13.4.1 IOlePalceFrame\r\n13.4.2 IOleCommandTarget\r\n13.4.3 IOlePlaceUIWindow\r\n13.4.4 IOleContainer\r\n13.4.5 IOleClientSite\r\n13.4.6 IAdviseSink\r\n13.4.7 IOleDocumentSite\r\n13.4.8 IOlePlaceSite\r\n13.4.9 IContainueCallback\r\n13.5 建立一个ActiveX容器\r\n13.5.1 XContainer程序\r\n13.5.2 生成XContainer\r\n13.5.3 回顾代码\r\n13.5.4 加入新的接口\r\n13.6 小结\r\n\r\n第14章 ActiveX服务器\r\n\r\n14.1 ActiveX服务器\r\n14.2 用服务器组件进行三层开发\r\n14.3 MFC对ActiveX模板库\r\n14.4 设计一个MFC小型服务器\r\n14.4.1 AppWizard的操作步骤\r\n14.4.2 详细了解GLServer类\r\n14.4.3 在激活过程中合并容器和服务器的菜单\r\n14.4.4 测试GLServer框架\r\n14.4.5 往GLServer框架定制部分\r\n14.4.6 制度GLServer的例子\r\n14.5 设计MFC自动化服务器\r\n14.5.1 使用AppWizard\r\n14.5.2 细看MFCAuto\r\n14.5.3 在 MFCAuto样例框架程序中加入自己的代码\r\n14.5.4 测试MFCAuto例子\r\n14.6 使用ActiveX模板库来设计自动化服务器\r\n14.6.1 使用ATL COM AppWizard\r\n14.6.2 定制ATLCAuto\r\n14.6.3 测试ATLCAuto\r\n14.7 小结\r\n\r\n第15章 ActiveX控件\r\n\r\n15.1 简要回顾\r\n15.2 什么是ActiveX/OLE控件\r\n15.3 ActiveX/OLE控件结构体系\r\n15.3.1 属性\r\n15.3.2 事件\r\n15.3.3 方法\r\n15.4 OLE控件接口\r\n15.5 ActiveX控件\r\n15.5.1 支持IUnknwn接口\r\n15.5.2 ActiveX必须自注册\r\n15.5.3 组件类型\r\n15.5.4 组件类型以及互操作性\r\n15.5.5 代码签名\r\n15.5.6 性能考虑\r\n15.6 重用代码\r\n15.6.1 VisualC++ActiveX控件\r\n15.6.2 Internet Explorer 库存控件\r\n15.7 测试ActiveX/OLE控件\r\n15.7.1 在网页上显示控件\r\n15.7.2 ActiveX Control Pad\r\n15.7.3 ActiveX/OLE\r\n15.7.4 开发工具中的/OLEActiveX控件\r\n15.8 创建ActiveX/OLE控件的方法\r\n15.9 ActiveX模板库(ATL)\r\n15.10 ActiveX开发人员工具箱(BasicCtl Framework)\r\n15.10.1 获得BasicCtl Framework \r\n15.10.2 建立BasicCtl Framework\r\n15.11 用Visual C++和MFC创建一个ActiveX/OLE控件\r\n15.11.1 获得ActiveXSDK\r\n15.11.2 使用Visual C++和MFC版本\r\n15.11.3 使用Visual C++和MFC开发ActiveX和OLE控件\r\n15.11.4 MFC对ActiveX和OLE控件的封装\r\n15.11.5 OLE Control Wizard\r\n15.12 小结\r\n\r\n第四部分 Win 32网络编程\r\n\r\n第16章 Windows套接字\r\n\r\n16.1 什么时候使用套接字\r\n16.2 什么是套接字\r\n16.2.1 数据报套接字\r\n16.2.2 流式套接字\r\n16.3 使用WinSock API\r\n16.3.1 初始化WinSock \r\n16.3.2 创建套按字\r\n16.4 使用数据报套接字\r\n16.4.1 bind\r\n16.4.2 创建服务器套接字\r\n16.4.3 字节顺序转换\r\n16.4.4 从数据报套按字接收数据\r\n16.4.5 向数据报套接字发送数据\r\n16.5 使用流式套按字\r\n16.5.1 流式套近字和服务器\r\n16.5.2 侦听连接\r\n16.5.3 接受连接\r\n16.5.4 请求连接\r\n16.5.5 使用流式套接字来发送和接收数据\r\n16.6 德行事件\r\n16.6.1 使用Select()函数\r\n16.6.2 使用WSAAsyncSelect()\r\n16.6.3 接受连接\r\n16.7 请求连接\r\n16.7.1 创建CAsyncSelect\r\n16.7.2 CAsyncSelect对象的错误处理\r\n16.7.3 套接字选项和CAsyncSelect\r\n16.7.4 发送和接收数据报\r\n16.7.5 套接字与服务器连接\r\n16.7.6 接受与服务器的连接\r\n16.7.7 发送并接收流式数据\r\n16.7.8 关闭套接字\r\n16.8 使用CSocket对象\r\n16.8.1 创建CSocket对象\r\n16.8.2 建立连接\r\n16.8.3 发送和接收数据\r\n16.8.4 与CSocket一起使用CArchive对象\r\n16.8.5 利用CArchive对象来发送和接收数据\r\n16.8.6 消除对象\r\n16.9 Windows Sockets2\r\n16.9.1 WinSodk 2的新函数\r\n16.9.2 使用多种协议\r\n16.9.3 多协议名分辨\r\n16.9.4 重叠和分散/聚集I/O\r\n16.9.5 服务质量\r\n16.9.6 多点套接字\r\n16.9.7 共享的套接字\r\n16.9.8 扩展的连接操作\r\n16.9.9 具体协议扩展\r\n16.10 小结\r\n\r\n第17章 管道和邮槽\r\n\r\n17.1 匿名管道\r\n17.1.1 创建一个匿名管道\r\n17.1.2 继承的名柄\r\n17.1.3 使用管道改变标准输入和输出\r\n17.1.4 向管道写入数据\r\n17.1.5 由管道读出数据\r\n17.1.6 为标准输出使用匿名管道\r\n17.2 命名管道\r\n17.2.1 创建一个命名管道\r\n17.2.2 创建额外的实例\r\n17.2.3 侦听连接\r\n17.2.4 重叠I/O\r\n17.2.5 与命名管道相连接\r\n17.2.6 向命管道相连接\r\n17.2.7 由命名管道写入\r\n17.2.8 命名管道的操作\r\n17.2.9 关闭管道\r\n17.3 邮槽\r\n17.3.1 创建邮槽\r\n17.3.2 从邮槽读数据\r\n17.3.3 向邮槽写入数据\r\n17.3.4 关闭邮槽\r\n17.4 关闭邮槽\r\n\r\n第18章 远程调用(RPC)\r\n\r\n18.1 开发RPC应用程序\r\n18.2 定义接口\r\n18.2.1通用唯一标识符(UUD) \r\n18.2.2 端点\r\n18.2.3 接口正文\r\n18.2.4 IDL属性\r\n18.2.5 应用程序配置文件(ACF)\r\n18.2.6 使用MIDL编译器\r\n18.2.7 MIDL编译器和Visual C++\r\n18.3 开发RPC服务器\r\n18.3.1 基础函数\r\n18.3.2 RPC服务器实体\r\n18.3.3 协议序列\r\n18.3.4 注册接口\r\n18.3.5 将捆绑输出到名称服务程序\r\n18.3.6 侦听请求\r\n18.3.7 建立服务器\r\n18.4 RPC客户机\r\n18.5 RPC中的参数传递\r\n18.5.1 数组和字符串\r\n18.5.2 联合\r\n18.5.3 指针\r\n18.5.4 存储分配\r\n18.6 捆绑到RPC服务器\r\n18.6.1 自动捆绑\r\n18.6.2 手工捆绑\r\n18.7 RPC的异常处理\r\n18.8 小结\r\n\r\n第19章 信报API\r\n\r\n19.1 MAPI结构\r\n19.1.1 客户应用程序\r\n19.1.2 服务提供程序\r\n19.1.3 MAPI假脱机程序\r\n19.1.4 MAPI API\r\n19.1.5 MAPI接口的可用性\r\n19.2 在MFC中支持MAPI\r\n19.3 通用信报调用\r\n19.3.1 开始对话\r\n19.3.2 用CMC发送信报\r\n19.3.3 用CMC分辨信报的地址\r\n19.3.4 用CMC接收信报\r\n19.3.5 CMC数据扩展\r\n19.4 简单MAPI\r\n19.5 扩展\r\n19.6 OLE信报库\r\n19.7 小结\r\n\r\n第20章 电话API(TAPI)\r\n\r\n20.1 辅助电话服务提供程序\r\n20.1.1 发出一次呼叫\r\n20.1.2 获取位置信息\r\n20.2 基本电话程序\r\n20.2.1 初始化TAPI\r\n20.2.2 异步TAPI函数\r\n20.2.3 协商API版本\r\n20.2.4 设备功能\r\n20.2.5 发出出站呼叫\r\n20.2.6 接收站呼叫\r\n20.2.7 结束一次呼叫\r\n20.2.8 接收入站呼叫\r\n20.2.9 媒体流设备\r\n20.2.10 TAPI地址处理\r\n20.2.11 以辅助TAPI服务提供程序的形式注册\r\n20.3 增补电话API\r\n20.3.1 附加行设备函数\r\n20.3.2 电话设备\r\n20.4 扩展电话API\r\n20.5 小结\r\n\r\n第21章 加密API(CAPI)\r\n\r\n21.1 加密101\r\n21.1.1 数据加密\r\n21.1.2 数字签名\r\n21.1.3 对话密钥\r\n21.1.4 公共和私人密钥\r\n21.1.5 编码类型\r\n21.2 CryptoAPI体系结构\r\n21.2.1 密钥库\r\n21.2.2 CryptoAPI配置\r\n21.3 与提供程序连接\r\n21.4 密钥处理\r\n21.4.1 创建一个密钥\r\n21.4.2 从口令中派生出密钥\r\n21.4.3 密钥参数\r\n21.5 密钥交换\r\n21.5.1 输出一个密钥\r\n21.5.2 输入一个密钥\r\n21.6 数据加密\r\n21.6.1 多块数据加密\r\n21.6.2 加密和时进行散列编码\r\n21.6.3 数据解密\r\n21.7 数字签名\r\n21.7.1 创建数字签名\r\n21.7.2 验证数字签名\r\n21.8 小结\r\n\r\n第22章 WinInet API\r\n\r\n22.1 WinInet C API\r\n22.1.1 句柄\r\n22.1.2 错误处理\r\n22.1.3 传送缓冲区参数\r\n22.1.4 异步I/O\r\n22.2 普通Internet函数\r\n22.2.1 开始一个Internet对话\r\n22.2.2 设置句柄选项\r\n22.2.3 查询句柄选项\r\n22.2.4 确认Internet的连接\r\n22.2.5 与服务器连接\r\n22.2.6 增加一个回调函数\r\n22.2.7 URL处理\r\n22.2.8 基本文件操作\r\n22.2.9 查询数据可用性\r\n22.2.10 数据读取\r\n22.2.11 移动文件指针\r\n22.2.12 向Internet文件写数据\r\n22.3 FTP客户机函数\r\n22.3.1 当前目录\r\n22.3.2 创建和更换目录\r\n22.3.3 查找文件\r\n22.3.4 获取文件\r\n22.3.5 发送文件\r\n22.3.6 在FTP服务器上打开一个文件\r\n22.3.7 其他FTP文件操作\r\n22.4 HTTP客户机函数\r\n22.4.1 HTTP请求\r\n22.4.2 HttpSendRequest()错误处理\r\n22.4.3 获取响应信息\r\n22.4.4 对Cookie Jar初步了解\r\n22.4.5 使用高速缓存\r\n22.5 Gopher客户机函数\r\n22.6 MFC WinInet类\r\n22.6.1 CInternetSession\r\n22.6.2 连接类\r\n22.6.3 文件类\r\n22.6.4 CInternetException\r\n22.6.5 使用CInternetSession\r\n22.6.6 FTP处理\r\n22.6.7 HTTP处理\r\n22.6.8 Gopher处理\r\n22.7 小结\r\n\r\n第23章 Internet Server API(ISAPI)\r\n\r\n23.1 开发服务器扩展应用程序\r\n23.1.1 ISA入口点\r\n23.1.2 扩展控制块\r\n23.1.3 文件发送\r\n23.1.4 异步操作\r\n23.1.5 写服务器日志\r\n23.1.6 ISA异常处理\r\n23.1.7 调试ISA\r\n23.1.8 从CGI到ISAPI的转换\r\n23.2 ISAPI过滤程序\r\n23.2.1 安装过滤程序\r\n23.2.2 ISAPI过滤程序\r\n23.2.3 HTTP-FILTER-CONTEXT结构\r\n23.2.4 过滤程序通知处理\r\n23.3 MFC对ISAPI的支持\r\n23.4 Internet服务管理器API\r\n23.5 小结\r\n\r\n第五部分\r\n\r\n第24章 数据库概览\r\n\r\n24.1 ODBC3.0\r\n24.2 MFC的数据库类\r\n24.3 OLE DB\r\n24.4 ActiveX数据对象(ADO)\r\n24.5 结构化查询\r\n24.6 语言数据定义(DDL)\r\n24.6.1 表\r\n24.6.2 索引\r\n24.6.3 视\r\n24.7 数据控制(DCL)\r\n24.7.1 授与优选权\r\n24.7.2 取消优选权\r\n24.8 数据处理语言(DML)\r\n24.8.1 SELECT语句\r\n24.8.2 INSERT语句\r\n24.8.3 DELETE语句\r\n24.8.4 UPDATE语句\r\n24.8.5 调用过程\r\n24.9 小结\r\n\r\n第25章 开放数据库连接(ODBC)\r\n\r\n25.1 ODBC体系结构\r\n25.1.1ODBC驱动程序\r\n25.1.2 ODBC驱动管理器\r\n25.1.3 数据源\r\n25.1.4 ODBC数据源管理器\r\n25.1.5 ODBC安装和设置编程\r\n25.2 ODBC API基础\r\n25.2.1 ODBC句柄\r\n25.2.2 ODBC数据类型\r\n25.2.3 ODBC诊断\r\n25.3 创建ODBC应用程序\r\n25.3.1 分配ODBC环境\r\n25.3.2 分配连接句柄\r\n25.3.3 连接选项\r\n25.4 与一个数据资源连接\r\n25.4.1 CQLConnect()\r\n25.4.2 CQLDataSources()\r\n25.4.3 CQLDrverConnect()\r\n25.4.4 CQLBrowseConnect()\r\n25.4.5 获取连接信息\r\n25.4.6 切断连接\r\n25.5 执行CQL语句\r\n25.5.1 语句句柄\r\n25.5.2 CQLExecDirect()\r\n25.5.3 准备CQL语句\r\n25.5.4 CQLExecrte()\r\n25.5.5 参数处理\r\n25.6 处理结果集\r\n25.6.1 捆绑列\r\n25.6.2 CQLBindCol()\r\n25.6.3 CQLFetch()\r\n25.6.4 关闭光标\r\n25.6.5 重复使用语句句柄\r\n26.6.6 CQLGetData()\r\n25.6.7 列的信息\r\n25.7 一次取回多个行\r\n25.7.1 块光标\r\n25.7.2 可滚动光标\r\n25.7.3 ODBC光标库\r\n25.7.4 使用块光标\r\n25.7.5 用可滚动光标\r\n25.8 插入、更新和删除行\r\n25.9 异步操作\r\n25.10 事务处理\r\n25.10.1 ODBC提交模式\r\n25.10.2 事务隔离层次\r\n25.10.3 光标并发类型\r\n25.11 函数目录\r\n25.12 小结\r\n\r\n第26章 MFC数据库类\r\n\r\n26.1 CDatabase类\r\n26.1.1 打开一个数据库连接\r\n26.1.2 连接信息\r\n26.1.3 用CDatabase执行SQL语句\r\n26.1.4 用CDatabase进行事务处理\r\n26.1.5 直接使用ODBC API\r\n26.2 CRecordset类\r\n26.2.1 从CRecordset中派生类\r\n26.2.2 记录字段交换(RFX)\r\n26.2.3 打开记录集\r\n26.2.4 刷新记录集\r\n26.2.5 关闭记录集\r\n26.2.6 在记录集中移动\r\n26.2.7 成批取回行\r\n26.2.8 改变记录集中的数据\r\n26.2.9 事务处理\r\n26.2.10 使用语句参数\r\n2.2.11 记录集错误处理\r\n26.3 CRecordViewod \r\n26.3.1 创建一个CRecordView\r\n26.3.2 用CRecordView进行对话框数据交换\r\n26.3.3 OnGetRecordset()\r\n26.3.4 CRecordView::OnMove()\r\n26.4 用AppWizard创建数据应用程序\r\n26.5 小结\r\n\r\n第27章 使用OLE DB\r\n\r\n27.1 OLE DB组件\r\n27.1.1 数据源\r\n27.1.2 会话\r\n27.1.3 事务对象\r\n27.1.4 命令\r\n27.1.5 行集\r\n27.1.6 枚举器\r\n27.1.7 错误\r\n27.2 OLE DB数据使用者应用程序\r\n27.2.1 应用程序结构\r\n27.2.2 初始化COM\r\n27.3 连接数据提供程序\r\n27.3.1 创建一个提供程序实例\r\n27.3.2 设置提供程序属性\r\n27.3.3 使用IDBInitialize\r\n27.4 创建会话\r\n27.5 打开行集\r\n27.6 执行命令\r\n27.6.1 创建命令\r\n27.6.2 设置命令文本\r\n27.6.3 执行命令\r\n27.6.4 准备命令\r\n27.6.5 使用带参数的命令\r\n27.7 操作行集\r\n27.7.1 获得列信息\r\n27.7.2 操作访问器\r\n27.7.3 获取行\r\n27.7.4 使用IRowsetChange\r\n27.8 更新数据源\r\n27.8.1 IRowset\r\n27.8.2 IRowset\r\n27.9 事务\r\n27.9.1 开始一个事务\r\n27.9.2 提交一个事务\r\n27.9.3 终止一个事务\r\n27.10 使用枚举器\r\n27.10.1 实例化根枚举器\r\n27.10.2 ISourcesRowset::GetSources Rowset()\r\n27.10.3 从源行集中实例化对象\r\n27.11 扩展的OLE DB错误处理\r\n27.12 小结\r\n\r\n第28章 使用ActiveX数据对象\r\n\r\n28.1 ADO数据源\r\n28.2 ADO对象\r\n28.3 Connection对象\r\n28.3.1 Connection属性\r\n28.3.2 Connection方法\r\n28.4 Connecand对象\r\n28.4.1 Connecand属性\r\n28.4.2 Connecand方法\r\n28.5 Recordset对象\r\n28.5.1 Recordset属性\r\n28.5.2 Recordset方法\r\n28.6 Fields集合和Fields对象\r\n28.6.1 Fields集合成员\r\n28.6.2 Fields对象属性\r\n28.6.3 Fields对象方法\r\n28.7 Parameter对象Parameter集合\r\n28.7.1 Parameter集合成员\r\n28.7.2 Parameter对象属性\r\n28.7.3 Parameter对象方法\r\n28.8 Property对象和Proprties集合\r\n28.8.1 Proprties集合成员\r\n28.8.2 Property对象属性\r\n28.9 Errors对象Errors集合\r\n28.9.1 Errors集合成员\r\n28.9.2 Errors对象属性\r\n28.10 在VC++中使用ADO对象\r\n28.10.1 初始化COM \r\n28.10.2 使用#import\r\n28.10.3 COM支持类\r\n28.10.4 智能指针和ADO\r\n28.11 处理ADO错误\r\n28.11.1 ADO C++异常\r\n28.11.2 ADO HRESULT的值\r\n28.11.3 Errors集合\r\n28.12 打开一个连接\r\n28.12.1 连接超时\r\n28.12.2 连接访问模式\r\n28.12.3 缺省数据库\r\n28.12.4 关闭连接\r\n28.13 使用记录集\r\n28.13.1 特性支持\r\n28.13.2 打开记录集\r\n28.13.3 限制记录集中的行\r\n28.13.4 过滤记录集中的行\r\n28.13.5 刷新记录集\r\n28.13.6 获取记录集中的数据\r\n28.13.7 遍历记录集\r\n28.13.8 插入新行\r\n28.13.9 更新行\r\n28.13.10 批量更新\r\n28.13.11 删除行\r\n28.14 执行命令\r\n28.14.1 执行连接的命令\r\n28.14.2 使用Command对象\r\n28.15 事务\r\n28.16 小结\r\n\r\n第六部分 媒体、OpenGI和DirectX\r\n\r\n第29章 多媒体编程与Active-Movie1.0\r\n\r\n29.1 多媒体和图形概览\r\n29.2 术语和思想\r\n29.2.1 GDI\r\n29.2.2 MCI\r\n29.2.3 MMX\r\n29.2.4 DVD\r\n29.3 ActiveMoive概览\r\n29.4 Movie Play例子\r\n29.4.1 设置\r\n29.4.2 播放电影\r\n29.4.3 清除对象\r\n29.5 小结\r\n\r\n第30章 DirectX3.0\r\n\r\n30.1 从DOS到DirectX\r\n30.2 DirectX\r\n30.2.1 设置\r\n30.2.2 使用调色板和颜色\r\n30.2.3 使用字体\r\n30.2.4 位图和特殊效果\r\n30.2.5 轻松结束\r\n30.2.6 清除DirectDraw\r\n30.3 Direct3D\r\n30.3.1 过渡模式与OpenGL比较\r\n30.3.2 使用3D Studio\r\n30.3.3 设置\r\n30.3.4 创建图景\r\n30.3.5 清除Direct3D\r\n30.4 DirectInput\r\n30.4.1 控制操纵杆\r\n30.4.2 鼠标和键盘设置\r\n30.4.3 窗口消息与DirectInput\r\n30.4.4 控制输入设备\r\n30.4.5 清除DirectInput\r\n30.5 DirectSound\r\n30.5.1 设置\r\n30.5.2 播放声音效果\r\n30.5.3 清除DirectSound\r\n30.5.4 播放MIDI音乐\r\n30.6 DirectPlay\r\n30.6.1 考虑的事情\r\n30.6.2 术语\r\n30.6.3 其他源\r\n30.7 小结\r\n\r\n第七部分 高级Win32编程\r\n\r\n第31章 使用注册表\r\n\r\n31.1 注册表键\r\n31.2 注册表值\r\n31.3 手工编辑注册表\r\n31.4 注册表结构\r\n31.4.1 HKEY-LOCAL_MACHINE\r\n31.4.2 HKEY-CURRENT_CONFIG\r\n31.4.3 HKEY-USERS\r\n31.4.4 HKEY-CURRENT_USER\r\n31.4.5 HKEY-CLASSES_ROOT\r\n31.4.6 HKEY-DNY_DATA\r\n31.4.7 HKEY-PERFORMAN_CE-DATA\r\n31.5 INI文件映像\r\n31.6 注册表API\r\n31.6.1 打开键\r\n31.6.2 从注册表中读数据\r\n31.6.3 创建键\r\n31.6.4 写入注册表\r\n31.6.5 注册表的安全性\r\n31.6.6 将注册表键保存到文件中\r\n31.6.7 远程注册表访问\r\n31.6.8 注册表更改通知\r\n31.7 小结\r\n\r\n第32章 扩展Windows外壳\r\n\r\n32.1 使用任务栏\r\n32.1.1 任务栏按钮\r\n32.1.2 系统信息区\r\n32.2 应用程序桌面工具条\r\n32.2.1 Appbar消息\r\n32.2.2 注册一个Appbar\r\n32.2.3 定位Appbar\r\n32.2.4 处理Appbar通知\r\n32.2.5 自动隐藏Appbar\r\n32.3 删除一个Appbar\r\n32.4 长文件名\r\n32.4.1 外壳文件操作\r\n32.4.2 进度对话框\r\n32.4.3 操作成功\r\n32.4.4 文件映射\r\n32.4.5 外壳名空间\r\n32.4.6 开始研究\r\n32.4.7 遍历树\r\n32.4.8 其他信息\r\n32.4.9 清除\r\n32.4.10 工作中的外壳API\r\n32.5 外壳扩展\r\n32.6 小结\r\n\r\n第33章 定制AppWizard\r\n\r\n33.1 AppWizard的工作原理\r\n33.2 创建定制的AppWizard\r\n33.3 一个定制AppWizard项目中的组件\r\n33.4 模板文件\r\n33.4.1 NEWPROJ.INF\r\n33.4.2 模板文件中的宏\r\n33.4.3 模板文件中的指示\r\n33.4.4 CONFIRM.INF\r\n33.4.5 文本模板\r\n33.4.6 二进制资源模板\r\n33.5 设计你的AppWizard DLL\r\n33.5.1 定义宏\r\n33.5.2 创建步骤对话框\r\n33.6 编置之不理个定制AppWizard\r\n33.7 调试一个定制AppWizard\r\n33.8 小结\r\n\r\n第八部分 最后一击\r\n\r\n第34章 开发完整的应用程序\r\n\r\n34.1 Microsoft Logo程序\r\n34.2 Windows NT和Windows 95 Logo要求\r\n34.3 用户接口指南\r\n34.4 应用程序的安装\r\n34.4.1 安装指南\r\n34.4.2 拷贝文件\r\n34.4.3 提醒更换介质\r\n34.4.4 覆盖文件\r\n34.4.5 使用计数\r\n34.4.6 替换使用中的文件\r\n34.4.7 增加注册表入口\r\n34.4.8 使用AutoPlay\r\n34.4.9 InstallShield\r\n34.4.10 SetupAPI\r\n34.5 卸载程序\r\n34.6 小结\r\n\r\n第35章 加入Windows帮助\r\n\r\n35.1 WinHelp基础\r\n35.2 AppWizard中的帮助选项\r\n35.3 Help项目组件\r\n35.4 编辑帮助主题\r\n35.4.1 创建帮助主题\r\n35.4.2 增中热点\r\n35.4.3 在Help文件中包含图形\r\n35.5 管理Help项目\r\n35.5.1 帮助项目文件\r\n35.5.2 目录文件\r\n35.5.3 编辑帮助项目\r\n35.5.4 测试帮助项目\r\n35.6 从你的应用程序调用WinHelp\r\n35.6.1 ::WinHelp()\r\n35.6.2 通过MFC使用帮助\r\n35.7 增加环境敏感帮助\r\n35.8 小结\r\n\r\n第九部分 附录\r\n\r\n附录A 其他资源\r\n\r\nA.1 Visual C++资源\r\nA.1.1 Microsoft开发人员的网络\r\nA.1.2 硬拷贝Visual C++\r\nA.1.3 杂志和期刊\r\nA.1.4 会议\r\nA.1.5 软件\r\nA.1.6 论文和文章\r\nA.1.7 有关Visual C++和Windows程序设计的书\r\nA.1.8 Internet\r\nA.1.9 新闻组和FAQ\r\nA.2 小结\r\n
无封面