2011-04-28 56 views
4

嗨,我是新的shell擴展。 我閱讀http://www.codeproject.com/KB/shell/overlayicon.aspx 文章,並且能夠在名稱中包含字符串「sample」的文件上顯示覆蓋圖標。 現在我的問題是,我有一個應用程序,根據文件狀態顯示不同文件的不同疊加,如上傳,上傳,沒有上傳等。 請幫我如何設置特定路徑中的特定文件/文件夾的疊加層在系統中。 謝謝根據狀態在不同的文件上疊加圖標

回答

2

只是應用你在那篇文章中學到的東西。你現在想做的事情幾乎是一回事。 shell調用你的處理程序並要求重疊圖標。您的代碼檢查項目的狀態,並返回正確的覆蓋圖標。如果你不擁有這個物品,你告訴外殼根本不要畫覆蓋層。

您可以在MSDN上閱讀有關Creating Icon Overlay Handlers的更多信息。

或者,作爲David suggests hereRichard suggests here,你可以瀏覽TortoiseSVN的源代碼(因爲它是在GPL下),看看他們是怎麼做的,如果你喜歡通過例子來學習。

但請記住,外殼強加a hard limit on the number of overlay icons可以註冊。目前,該數字爲15.如果您的應用程序嘗試註冊過多,或者您的用戶安裝了其他已註冊覆蓋的應用程序(如TortoiseSVN),則會遇到問題。您可能想要認真重新考慮這是否真的是顯示信息的適當方式。

+0

感謝科迪格雷。我嘗試然後會請求幫助 – Asghar 2011-04-28 11:32:08

+0

這是代碼,請告訴我如何在這裏更改條件,如我從shell獲得文件路徑,如果路徑mathches那麼這應該返回OK'IFACEMETHODIMP CFileIconOverlayExt :: IsMemberOf( LPCWSTR pwszPath, \t \t \t \t \t \t \t \t \t \t \t DWORD dwAttrib) { \t \t 如果(wcsstr(pwszPath,L 「樣品」)!= 0) \t \t \t \t返回S_OK; \t \t else \t \t return S_FALSE; }' – Asghar 2011-04-28 13:30:41

相關問題