当 Zip 存档的内容可以从 Windows 资源管理器的 Zip 文件夹拖放到我的窗口时,我正在尝试实现一项功能。我实现了 IDropTarget 的所有必要方法,当我从 Windows 资源管理器中拖放常规文件时一切正常。
当我尝试从 Zip 文件夹中拖入文件时,以下方法会出现此问题:
HRESULT DragEnter(IDataObject* pDataObject, DWORD grfKeyState, POINTL pt, DWORD* pdwEffect)
{
static FORMATETC fmtetc_file = {CF_HDROP, 0, DVASPECT_CONTENT, -1, TYMED_HGLOBAL};
HRESULT hr = pDataObject->QueryGetData(&fmtetc_file);
if(hr == S_OK)
{
//Format supported
}
...
}
我从 QueryGetData() 返回 S_FALSE。
有谁知道我错过了什么吗?
最佳答案
我无法想象 Explorer 的 zip 文件处理程序会实现 CF_HDROP,因为这会要求它在开始拖动之前提取文件。我打赌它使用 CFSTR_FILEDESCRIPTOR and CFSTR_FILECONTENTS .
关于c++ - 将 Zip 文件夹中的文件拖放到我的窗口中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5990019/