我試圖在Zip存檔的內容可以從Windows資源管理器的Zip文件夾拖放到我的窗口時實現該功能。我實現了IDropTarget的所有必要的方法,並且當我從Windows資源管理器拖放常規文件時,一切正常。將Zip文件夾中的文件拖放到我的窗口
問題發生在下面的方法,當我試圖從一個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
}
...
}
我得到S_FALSE從的QueryGetData()返回。
有沒有人有任何想法我錯過了什麼?
非常感謝,使用下面的代碼線的dragenter()工作: 'FORMATETC fmtetc_file = {的RegisterClipboardFormat(CFSTR_FILEDESCRIPTOR) ,0,DVASPECT_CONTENT,-1,TYMED_HGLOBAL}; 如果(pDataObject->的QueryGetData(fmtetc_file)== S_OK){ } ' 但現在我有點進退兩難是如何獲得的通道連接到一個zip壓縮文件(其文件被拖進我的窗口)或臨時路徑到文件本身,如果殼牌恰好爲我解壓縮? – ahmd0 2011-05-13 23:58:46
拖放的重點是抽象出zip文件等實現細節;如果你能弄明白的話,我會有點驚訝。 – Luke 2011-05-14 02:33:23
對不起,盧克,但我仍然無法弄清楚。那麼我該如何獲得拖到我窗口中的文件呢? – ahmd0 2011-05-14 08:29:16