2010-05-27 7 views
1

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 상호 작용에 대해 거의 알고 있지 않으므로 도움을 주시면 대단히 감사하겠습니다.

답변

3

IDataObject의 약 절반을 다시 구현 한 후 GetDataPresent()에서 "Shell IDList Array"를 지원하지 않아서 오류 코드가 발생한 것으로 나타났습니다.