我试图使用this excellent example实现将虚拟文件放入Windows资源管理器。但是,我受到这个错误的阻碍。在第一次拨打((System.Runtime.InteropServices.ComTypes.IDataObject)this).GetDataHere(ref formatetc, ref medium);
时,向内部拨打void System.Runtime.InteropServices.ComTypes.IDataObject.GetData(ref System.Runtime.InteropServices.ComTypes.FORMATETC formatetc, out System.Runtime.InteropServices.ComTypes.STGMEDIUM medium)
,我收到一个DV_E_FORMATETC
错误。据我所知,所有传入的FORMATETC结构元素都是有效的:cfFormat是“Shell IDList Array”(-16141),ptd是0,dwAspect是DVASPECT_CONTENT,lindex是-1,tymed是TYMED_HGLOBAL。无论如何,我有点困惑,因为这是由探险家产生的。拖放到资源管理器导致无效FORMATETC(DV_E_FORMATETC)错误
我对COM交互知之甚少,所以任何帮助都将不胜感激。