2009-10-28 20 views
2

我正在討論Windows Shell擴展。如何在FileOpen對話框中禁用Shell擴展

我有一個shell擴展,它可以顯示我的自定義文件類型的具體屬性,比如* .filetype。當然,這會導致我的shell擴展DLL被加載到explorer.exe進程中。但是現在,如果我在任何應用程序中啓動FileOpen對話框並檢查該對話框內的文件屬性(例如記事本),那麼這些外殼擴展DLL將被加載到notepad.exe進程中,這是我想要避免的情況。

那麼有可能在FileOpen對話框中禁用特定的外殼擴展?

謝謝。

回答

2

創建一個shim dll,它除了加載真正的(大)shell擴展dll外什麼都不做。 該shim dll的唯一工作是檢查當前進程是否爲「explorer.exe」。如果是這樣,shim加載真正的dll並在那裏轉發所有的呼叫。如果不是,那麼墊片不會加載您的真實dll,而只是將E_NOTIMPL或類似的東西返回給所有請求。

+1

但我們需要爲每個我們想要的shell擴展做這樣的事情。 – 2009-11-10 04:50:28