Теперь мне нужно включить копирование/вставку для этих файлов, что позволяет Проводник Windows. После копирования файла в буфер обмена мне нужно вставить его на реальный диск, например C:.
Следующий код возвращает, есть ли в буфере обмена что-то для вставки. Если я копирую обычный файл в проводнике Windows, с помощью этого кода я могу определить, что у меня есть что-то, что можно вставить: hDrop имеет значение not NULL. Однако когда файл портативного устройства копируется в проводнике Windows, hDrop имеет значение NULL. Это говорит мне о том, что это «псевдо»-копия, а в Проводнике Windows есть какой-то внутренний обходной путь, который не работает во внешних приложениях. Я надеялся, что существует какой-то GUID для определения путей устройства, но на основании этого я вижу, что это может быть не так.
Код: Выделить всё
OpenClipboard(NULL);
HDROP hDrop = (HDROP)GetClipboardData(CF_HDROP);
CloseClipboard();
if (hDrop != 0) {
return true; // Pasteable file(s) exist
}
else {
return false; // Pasteable file(s) do not exist
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... copy-paste
Мобильная версия