2013-10-04 40 views
0

背景上市: 我已經實現(通過專有的API提取到),列出文件夾和文件從服務器命名空間擴展。它顯示在「我的電腦」下,我可以瀏覽文件夾和子文件夾。我的命名空間擴展並沒有在文件打開的對話框

問題: 當我打開任何應用程序的文件對話框,說Visual Studio中,或記事本等未列出我的命名空間擴展節點

問: 什麼工作要做,以使命名空間文件對話框中可用的擴展名。什麼是相關的註冊表項,是否有任何特殊的接口需要實施?

感謝, Madhusudhana

+0

WTH你的意思是_'namespace extension'_?你是否意指**文件擴展名**? –

+1

@ g-makulik他意思是一個Shell命名空間擴展。這是存在的事情。 – Medinoc

+1

我假設你已經檢查過沒有位錯問題?另外,也許你應該用* Dependency Walker *的分析模式檢查這些程序中的一個:如果只檢查客戶端代碼是否實際加載,或者試圖加載你的DLL。 – Medinoc

回答

2

你必須標記你的擴展爲SFGAO_FILESYSANCESTOR。如果shell不相信你的文件夾包含真實的文件/文件夾,那麼它不會在公用文件對話框中將它顯示給用戶,因爲用戶將無法將其用作保存/加載文檔的目標。

+0

這取決於正在使用哪個對話框。較早的'GetOpenFileName()'對話框只能顯示錶示爲文件系統路徑的項目(虛擬或其他)。較新的'IFileOpenDialog'對話框可以顯示由'IShellItem'(可用於表示PIDL)表示的項目。 –

+0

我嘗試設置標誌SFGAO_FILESYSANCESTOR,同時設置註冊表值ShellFolder \ Attributes。沒有太多的運氣:(我有指定此標誌的任何其他接口調用嗎?任何特殊的接口來實現? –

+0

@MadhusudanNarayan:'IShellFolder :: GetAttributesOf()'需要返回它 –

相關問題