拖放资源管理器导致无效的FORMATETC(DV_E_FORMATETC)错误(Drag and D

2019-10-22 07:45发布

我试图用这个很好的例子,来实现虚拟下探文件到Windows资源管理器。 然而,我被这个错误阻碍。 朝向底部,内部void System.Runtime.InteropServices.ComTypes.IDataObject.GetData(ref System.Runtime.InteropServices.ComTypes.FORMATETC formatetc, out System.Runtime.InteropServices.ComTypes.STGMEDIUM medium)在第一次调用到((System.Runtime.InteropServices.ComTypes.IDataObject)this).GetDataHere(ref formatetc, ref medium); 我取回一个DV_E_FORMATETC错误。 据我所知,即在正在传递的所述FORMATETC结构中的所有元素是有效的:cfFormat是“壳牌IDList表阵列”(-16141),PTD是0,dwAspect是DVASPECT_CONTENT,LINDEX为-1,和TYMED是TYMED_HGLOBAL。 我有点困惑如何有会是一个问题,无论如何,因为这是由资源管理器生成的。

我不是很了解COM的互动,所以任何帮助将不胜感激。

Answer 1:

重新实现大约IDataObject的一半后,事实证明,错误代码是通过在GetDataPresent不支持“壳牌IDList表阵列”引起的()。



文章来源: Drag and Drop to explorer causing invalid FORMATETC (DV_E_FORMATETC) error