1

我正在尝试实现从网页到 C++ 应用程序的拖放功能。

我正在设置拖动文本到 dataTransfer 对象,现在尝试从 IDataObject 在 DropTarget 上访问它。要从 IDataObject 获取数据,我们需要指定 FORMATETC,我想我遇到了问题。

这是代码: 在 HTML 端,我在 Drag 上执行了下面的 javascript。

function drag(ev) {
    ev.dataTransfer.setData("text", ev.target.id);
}

在 C++ 方面:我有 DropTarget,实现 IDropTarget 并在 ::Drop 方法中接收 IDataObject。

为了从中获取数据,我使用以下代码:

   FORMATETC fre;
   fre.cfFormat = CF_TEXT;
   fre.dwAspect = DVASPECT_CONTENT;
   fre.ptd = nullptr;
   fre.tymed = TYMED_HGLOBAL;
   fre.lindex = -1;

   STGMEDIUM stg;
   stg.hGlobal = nullptr;
   stg.pUnkForRelease = nullptr;

   bool result = false;

   if (NOERROR == pDataObj->GetData(&fre, &stg))
   {
       result = true;
   }

但我无法在这里检索数据。有人可以帮我吗?

谢谢,凯拉斯

4

0 回答 0