Visual C++ 技術內幕(第四版)

《VisualC++技術內幕(第四版)》是1999年清華大學出版社出版的圖書,作者是DavidJ.Kruglinski。

內容介紹

在前三版的基礎上,本書向讀者詳盡地介紹了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資源編輯器――WorkspaceResourceView
1.2.3C/C++編譯器
1.2.4資源編譯器
1.2.5連線器
1.2.6調試器
1.2.7AppWizard
1.2.8ClassWizard
1.2.9源程式瀏覽器
1.2.10在線上幫助
1.2.11Windows診斷工具
1.2.12原始碼控制
1.2.13Gallery
1.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!”著手學習AppWizard
3.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使用ClassWizard
4.3.1同時使用AppWizard 和Clas sWizard
4.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和CWindowDC
5.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示例程式――再次使用CScrollView
5.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指針和控制項ID
6.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無模式對話框的例子――EX07A
7.2CFormView類――另外一種可供選擇的無模式對話框
7.3Windows通用對話框
7.3.1直接使用CFileDialog類
7.3.2從通用對話框類進行派生
7.3.3嵌套對話框
7.3.4使用CFileDialog的一個例子――EX07B
7.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操作符,_heapmin
9.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進一步使用DIB
10.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.3CStudentDoc
15.10.4CStudentView
15.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.1CStudent
16.3.2CEx16aApp
16.3.3CFrameWnd
16.3.4CStudentDoc
16.3.5cStudentView
16.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.1CEx17aApp
17.2.2CMainFrame
17.2.3CChildFrame
17.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.2CMainFrame
19.4.3測試EX19A應用程式
19.5EX19B示例程式――雙視圖類SDI靜態切分
19.5.1CHexView
19.5.2CMainFrame
19.5.3測試EX19B應用程式
19.6EX19C示例程式――切換沒有切分的視圖類
19.6.1資源要求
19.6.2CMainFrame
19.6.3測試Ex19C應用程式
19.7Ex19D示例程式――多視圖類MDI應用程式
19.7.1資源要求
19.7.2CEx19dApp
19.7.3CMainFrame
19.7.4測試EX19D應用程式
第二十章 上下文相關幫助
20.1Windows 的WinHe lp程式
20.1.1復文本格式(RTF)
20.1.2編寫簡單的幫助檔案
20.1.3改進的TableOfContents
20.2應用程式框架與WinHelp
20.2.1調用WinHelp
20.2.2使用搜尋字元串
20.2.3從應用程式的選單調用WinHelp
20.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 B
20.6.1頭檔案要求
20.6.2CStringView
20.6.3CHexView
20.6.4資源要求
20.6.5幫助檔案要求
20.6.6測試EX20B應用程式
第二十一章 動態連線庫
21.1基本DLL理論
21.1.1導人如何與導出相匹配
21.1.2隱式連線和顯式連線
21.1.3符號連線和序號連線
21.1.4DLL人口點――DllMain
21.1.5實例句柄――裝載資源
21.1.6客戶程式如何找到DLL
21.1.7調試DLL
21.2MFcDLL――擴展的和正規的
21.2.1共享的MFCDLL和WindowsDLL
21.2.2MFC擴展DLL――導出類
21.2.3MFC擴展DLL資源搜尋的順序
21.2.4EX21A示例程式――MFC擴展DLL
21.2.5EX21B示例程式――DLL測試客戶程式
21.2.6MFC正規DLL――CWinApp派生類
21.2.7使用AFX_MANAGE_STATE宏
21.2.8MFC正規DLL資源搜尋順序
21.2.9EX21C示例程式――MFC正規DLL
21.2.10修改EX21B示例程式――加入代碼以測試ex21c.dll
21.3自定義控制項DLL
21.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示例程式――一個模擬的COM
23.3MFC庫中實際的COM
23.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還好的VisualBasic
24.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.1FORMATETC
25.3.2STGMEDTUM
25.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和CDatabase
28.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和VBA
29.3DAO和MFC
29.4利用DAO可以打開什麼樣的資料庫
29.5按ODBC模式使用DAO――快照和動態集
29.6DAO表類型記錄集
29.7DAOQue ryDef和TableDef
29.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.1CEx29aApp
29.11.2CMainFrame和CChildFrame
29.11.3CEx29aDoc
29.11.4CEx29aView
29.11.5CTableSelect
29.11.6CIsamSelect
29.12EX29A資源檔案
29.13運行EX29A程式
第六部分 Interne t程式設計
第三十章 TCP/IP、Winsock和WinInet
30.1既針對COM也可以不需要COM
30.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和Intranet
30.3建立自己的價值$99的Intranet
30.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.4Winsock
30.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編譯和測試EX30A
30.5.5使用Telnet
30.6用CHttpBlockingSocket創建一個Web客戶端程式
30.6.1EX30AWinsock客戶
30.6.2EX30A對代理伺服器的支持
30.6.3測試EX30AWinsock客戶
30.7WinInet
30.7.1WinInet相對於Winsock的優勢
30.7.2MFCWinInet類
30.7.3Intenet會話狀態回調
30.7.4一個簡化了的WinInet客戶程式
30.8用MFcWinInet類創建一個Web客戶
30.8.1Ex30AWinInetClient #1――使用CHttpConnection
30.8.2測試WinInetClient#1
30.8.3EX3 OAWinInetClient #2――使用OpenURL
30.8.4測試WinInetClient#2
30.9異步Moniker檔案
30.9.1Moniker
30.9.2MFCCAsyncMonikerFile類
30.9.3在程式中使用CAsyncMonikerFile類
30.9.4 異步moniker檔案和WinInet編程
第三十一章 MicrosoftInternetInformationServer編程
31.1IIs的替代產品
31.2MicrosoftIIS
31.2.1安裝和控制IIS
31.2.2運行InternetServiceManager
31.2.3IIS的安全性
31.2.4IIS目錄
31.2.5IIS日誌記錄
31.2.6測試IIS
31.3ISAPI伺服器擴展
31.3.1通用網關接口和ISAPI
31.3.2一個簡單的ISSAPI伺服器擴展GET請求
31.3.3HTML窗體――GEt和POST
31.3.4編寫ISAPI伺服器擴展DLL
31.3.5MFCISAPI伺服器擴展類
31.4一個實際的ISAPI伺服器擴展――ex31a.dll
31.4.1第一步――獲取定單
31.4.2第二步――處理確認窗體
31.4.3編譯並測試ex31a.dll
31.4.4調試EX31ADLL
31.5ISAPI資料庫訪問
31.6使用HTTPCookie來連線事務
31.6.1Cookie如何工作
31.6.2ISAPI伺服器擴展如何處理Cookie
31.6.3使用cookie的一些問題
31.7WWW鑑定
31.7.1基本鑑定
31.7.2WindowsNT問訊/應答鑑定
31.7.3安全套接字層(SSL)
31.8ISAPI過濾器
31.8.1編寫ISAPI過濾器DLL
31.8.2MFCISAPI過濾器類
31.9ISAPI過濾器示例――ex3lb.dll、ex3lc.exe
31.9.1選擇通知
31.9.2把事務數據傳送到顯示程式
31.9.3顯示程式
31.9.4 編譯並測試EX31BISAPI過濾器
第三十二章 ActiveX文檔伺服器和Internet
32.1ActiveX文檔理論
32.1.1ActiveX文檔伺服器和OLE嵌入伺服器
32.1.2從IE3中運行ActiveX文檔伺服器
32.1.3ActiveX文檔伺服器和ActiveX控制項
32.1.4ActiveX文檔伺服器和包容器的OLE接口
32.1.5MFC對ActiveX文檔伺服器的支持
32.2ActiveX文檔伺服器示例程式EX32A
32.2.1EX32A第一階段――簡單的伺服器
32.2.2調試ActiveX文檔伺服器
32.2.3Ex32A第二階段――加入WinInet調用
32.3ActiveX文檔伺服器示例程式EX32B
32.3.1在程式控制下產生POST請求
32.3.2EX32B視圖類
32.3.3編譯並測試EX32B
32.3.4ActiveX文檔伺服器和VBScript
32.4進一步使用ActiveX文檔伺服器
附錄A Microsoft基本類(MFc)庫中的訊息映射函式
附錄B MFC庫運行時類識型和動態對象創建

相關詞條

熱門詞條

聯絡我們