Я пытаюсь использовать этот отличный пример для реализации перетаскивания виртуальных файлов в 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 — это «Shell IDList Array» (-16141), ptd — 0, dwAspect — DVASPECT_CONTENT, lindex — -1, а tymed — TYMED_HGLOBAL. Я немного смущен тем, что в любом случае может возникнуть проблема, поскольку это было сгенерировано проводником.
Я очень мало знаю о COM-взаимодействии, поэтому любая помощь будет принята с благодарностью.