2016-09-26 1 views
0

VC++にWindowsエクスプローラシェル統合を作成し、Windowsエクスプローラの一部のリモートデータベースフォルダをネイティブフォルダとして表示するコードがあります。エクスプローラメニューから "フォルダに移動..."を使用して、その仮想フォルダにファイルを移動すると、ウィンドウはシェル統合によって正常に移動してもエラーメッセージ "このタイプのドキュメントは処理できません"が表示されますファイルをデータベースに追加します。"ターゲットはこのタイプのドキュメントを処理できません"カスタム仮想フォルダに移動

エラーの原因と、コードから無効にする方法を知ることができません。どのような構成が必要ですか。

誰も同じ考えを持っていますか?

+1

コピー/移動操作はどのように実装しますか? IDropTarget経由またはITranserDestination経由でですか?私はIDropTargetを使って単純なNSEを作成しました。そして、(Ribbonペインから)移動先のターゲットとしてNSEを選択すると、シェルはIDropTarget.Dropメソッドを呼び出してメッセージを表示しません。 –

+0

私は元のコードを書いておらず、ただバグを修正しています。しかし、私はIDropTargetの実装を参照してコードを検索します。 –

+1

IDropTarget :: DragEnterとIDropTarget :: Dropメソッドを表示できますか?私はpdwEffect値の処理のロジックに興味があります。 –

答えて

0

私は結局それを理解した、ドロップはS_OKの代わりにhrを返していた。 hr値は他のメソッド呼び出しから来て、S_OKではなく別のものとして間違って返されました。 if条件の1つで、元の開発者はhr値を正しく設定するのを忘れていました。通常はhrの値は使用されず、メソッド呼び出しの結果を格納して最後に返すため、すべてのメソッドが正常に動作しているため、何が間違っているかを判断するのが非常に難しくなります。 これらの愚かな間違いは見つけにくいですが、修正しやすいです。 ありがとうございました。

関連する問題