Здравствуйте Edward, Вы писали:
C>>Можно ли прочитать имена файлов помещенных в КлипБорд?
E>DragQueryFile
А поподробнее можно? Не очень понятно что передавать в первый параметр функции...
Если передать ClipBoard(), то ничего не получается... :(
int maxp=100;
char fName[100];
DragQueryFile(Clipboard(),0,fName,maxp);
Не возвращает fName :(
Why?
Здравствуйте Chaos, Вы писали:
[skip]
C>C>int maxp=100;
C>char fName[100];
C>DragQueryFile(Clipboard(),0,fName,maxp);
C>
C>Не возвращает fName
C>Why?
Пример: (при условии, что "имена файлов помещенных в КлипБорд" помещены туда сомандой Copy\Cut в Explorere, т.е. в формате CF_HDROP)
BOOL res = ::OpenClipboard();
if(res) {
HDROP drop = reinterpret_cast<HDROP>(::GetClipboardData(CF_HDROP));
const int file_count = ::DragQueryFile(drop, 0xFFFFFFFF, NULL, 0);
for (int i = 0; i < count; i++) {
const int buf_size = ::DragQueryFile(drop, i, NULL, 0);
char* file_name = new char[buf_size + 1]; // +1 - include null character
::DragQueryFile(drop, i, file_name, buf_size);
//Do something with file_name
delete [] file_name;
}
::CloseClipboard();
}
ЗЫ. По идее для корректности нуна еще проверку IsClipboardFormatAvailable вставить... Ну да авось и так покатит