2016-09-26 32 views
0

我有一些代碼在VC + +創建Windows資源管理器外殼集成並顯示在Windows資源管理器中的一些遠程數據庫文件夾作爲本機文件夾。當我從資源管理器菜單中使用「移動到文件夾...」並將某個文件移動到該虛擬文件夾時,窗口給我提示錯誤消息「目標無法處理這種類型的文檔」,即使shell集成成功移動文件到數據庫。「目標不能處理這種類型的文件」移動到自定義虛擬文件夾

我無法找出導致該錯誤的原因,以及如何從我的代碼中禁用相同的功能,需要進行哪些配置。

有沒有人有同樣的想法。

+1

如何實現複製/移動操作?通過IDropTarget或通過ITranserDestination?我用IDropTarget創建了簡單的NSE,當我在移動到(從Ribbon窗格)中選擇我的NSE作爲目標時,shell只是調用我的IDropTarget.Drop方法,並且不顯示任何消息。 –

+0

我還沒有編寫原始代碼,只是在修復bug。但是在代碼中查找IDropTarget實現。 –

+1

你可以顯示IDropTarget :: DragEnter和IDropTarget :: Drop方法嗎?我對pdwEffect值的處理邏輯很感興趣。 –

回答

0

我終於明白了,Drop是返回hr而不是S_OK。 hr值來自其他方法調用,並被錯誤地返回爲其他值而不是S_OK。 它只是在if條件之一中,原始開發人員已經忘記正確設置hr值。通常不使用hr值,它只是用於存儲方法調用的結果並在結尾處返回相同結果,所以很難判斷出錯,因爲所有方法都正常工作。 這些愚蠢的錯誤很難找到,雖然很容易修復。 非常感謝Denis指點的地方。

相關問題