ahm*_*md0 5 c++ zip windows-explorer
我正在尝试实现一项功能,可以将 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
}
...
}
Run Code Online (Sandbox Code Playgroud)
我从 QueryGetData() 返回 S_FALSE。
有谁知道我错过了什么?
我无法想象 Explorer 的 zip 文件处理程序实现 CF_HDROP,因为这需要它在启动拖动之前提取文件。我打赌它使用CFSTR_FILEDESCRIPTOR 和 CFSTR_FILECONTENTS。