Из документации для DragQueryFileW :
Индекс файла для запроса.Если значение этого параметра равно 0xFFFFFFFF, DragQueryFile возвращает количество удаленных файлов.Если значение этого параметра находится между нулем и общим количеством удаленных файлов, DragQueryFile копирует имя файла с соответствующим значением в буфер, на который указывает параметр lpszFile.
Во втором вызовеDragQueryFile
, второй параметр должен быть между 0
и nCount
.Проверьте значение nCount
, чтобы убедиться, что оно больше нуля, и передайте ноль, если вас интересует только первый файл.
Предполагается, что удаляется только один файл.Если файлов больше, добавьте цикл.
int nCount = DragQueryFile(hDropInfo, -1, NULL, 0);
if (nCount > 0)
{
//(add a loop to get multiple files)
DragQueryFile(hDropInfo, 0, lpFilePath, _countof(lpFilePath));
GetDlgItem(IDC_EDIT_FILE)->SetWindowText(lpFilePath);
m_FilePath.Format(L"%s", lpFilePath);
}
DragFinish(hDropInfo);