我正在尝试实现从网页到 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;
}
但我无法在这里检索数据。有人可以帮我吗?
谢谢,凯拉斯