目 錄
譯者序
前言
第一部分 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小結
· · · · · · (
收起)