關(guān)鍵詞 磁盤(pán)清理工具、ATL庫(kù)、COM接口。
引言
Windows磁盤(pán)清理工具(Disk CleanUp)是一個(gè)實(shí)用快捷并擁有簡(jiǎn)單易用界面的系統(tǒng)清理軟件,更值得系統(tǒng)開(kāi)發(fā)管理人員注意的是,此系統(tǒng)清理軟件是建立在以COM技術(shù)為基礎(chǔ)發(fā)展的,支持第三方插件,并且可以根據(jù)需要自制定義功能二次開(kāi)發(fā)的平臺(tái)。在這里,我們對(duì)于Windows磁盤(pán)清理工具的開(kāi)發(fā)接口做深入地研究,在此基礎(chǔ)上舉例示范添加一個(gè)查找“*.tmp”臨時(shí)文件的功能。
技術(shù)討論
微軟的COM技術(shù)廣泛地運(yùn)用在Windows的模塊化設(shè)計(jì)中,致使支持二次開(kāi)發(fā)。關(guān)于COM技術(shù)基礎(chǔ)與應(yīng)用,可參考。在此,我們只為Windows磁盤(pán)清理工具,簡(jiǎn)稱清理工具的擴(kuò)展接口加以分解。清理工具首次出現(xiàn)在Windows 98操作系統(tǒng)中,并在后來(lái)推出的Windows版本中予以改進(jìn),添加了新的功能。比如說(shuō),在NTFS的文件系統(tǒng)下,自動(dòng)壓縮不經(jīng)常訪問(wèn)的文件。這些新功能通過(guò)COM模塊實(shí)現(xiàn),在清理工具中作為插件調(diào)用。早期的版本是通過(guò)IEmptyVolumeCache接口調(diào)用,在Windows 2000以后的版本中,還加入了IEmptyVolumeCache2接口,加入了較小的更新。
IEmptyVolumeCache接口由五個(gè)函數(shù)組成,根據(jù)呼叫的順序,分別是:
以下為引用的內(nèi)容: virtual /* [local] */ HRESULT STDMETHODCALLTYPE initialize( |
清理工具在正常執(zhí)行時(shí),首先調(diào)用Initialize初始化插件,隨后執(zhí)行GetSpaceUsed來(lái)掃描可清除的文件大小。掃描完畢后,清理工具的主界面就出現(xiàn)了如圖1所示,在此,我們加入了清理TMP文件的功能可以瀏覽不同的清理文件種類。列表中的每一個(gè)文件種類均由一個(gè)COM插件實(shí)現(xiàn)。除了閱覽可清理文件大小以外,用戶在可以點(diǎn)擊一個(gè)可自定義的按鈕,調(diào)用插件的ShowProperties功能,以顯示更詳細(xì)的資料。如用戶選擇OK,清理工具就調(diào)用Purge函數(shù),清理掃描出來(lái)的文件。最后,Deactivate函數(shù)被調(diào)用,終止插件的應(yīng)用。