Не открываются файлы с юникод путями, которые с иероглифами и т. п. Нужно на wchar_t перейти.
Ещё можно добавить поддержку длинных путей, хотя программа с ними работает, потому что происходит преобразование в короткий путь, но вроде это только если не отключена поддержка коротких путей (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem - NtfsDisable8dot3NameCreation). Я недавно проверял поддержку длинных путей в winapi, через диалог - правильно, через перетаскивание из Проводника - нет поддержки, возвращается короткий путь, который можно превратить в полный через GetLongPathName(), и не смог понять, я сделал что-то не так или просто нет поддержки. Проводник до сих пор только отображает файлы с длинными путями, но не может создать файл и изменить имя.
UPD: Проверил wxPython (GUI для Python), как и у меня через перетаскивание короткий путь, а также узнал, что перетаскивание на скрипт (1-й аргумент командной строки) тоже короткий. В 7zip не используется GetLongPathName(), но имя файла из длинного пути правильное, значит преобразование по-другому, ещё там не используется WM_DROPFILES, а OLE (RegisterDragDrop(), IDropTarget, ...) и не понял может ли это API возвращать длинный путь.