如何在命名空间扩展名之间拖放多个文件



我正在进行一个命名空间扩展项目,我需要在命名空间扩展之间实现多个文件的拖放。我已经使用DragQueryFile API来查找文件的数量。但是这个函数总是崩溃。

有人能帮我解释一下我们如何实现多个文件的拖放吗。

谢谢,Robin

以下是我如何使用它

void yourclass::OnDropFiles(HDROP hDropInfo)
{

    TCHAR lpszFile[MAX_PATH] = { 0 };
    UINT uFile = 0;
    uFile = DragQueryFile(hDropInfo, 0xFFFFFFFF, NULL, NULL);
    if (uFile != 0)
    {
        for (int i = 0; i < uFile; i++)
        {
            lpszFile[0] = '';
            if (DragQueryFile(hDropInfo, i, lpszFile, MAX_PATH))
            {
                std::wstring directory;
                std::wstring filename;
                LVITEM lvi = { 0 };
                lvi.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM;
                SplitPath(lpszFile, directory, filename);
                lvi.iSubItem = 0;
                lvi.pszText = LPSTR_TEXTCALLBACK;
                lvi.cchTextMax = MAX_PATH;
                int n = m_wndFileList.InsertItem(&lvi);
                m_wndFileList.SetItemText(n, 0, filename.c_str());
                m_wndFileList.SetItemText(n, 1, directory.c_str());
            }
        }
    }
    DragFinish(hDropInfo);
    return;
    CDialogEx::OnDropFiles(hDropInfo);
}

最新更新