Re[2]: Drag-drop into the shell
От: Андрей Тимошенков Россия  
Дата: 21.10.02 13:20
Оценка:
Здравствуйте Patalog, Вы писали:

P>Посмотри http://www.rsdn.ru/Forum/Message.aspx?mid=27889&only=1
Автор: Patalog
Дата: 11.02.02

P>В Dropping data положи полный путь. Ето к тому как можно сделать по-другому.
Нет, это не подходит. Может, я неясно объяснил, но через HDROP можно передать имена существующих файлов, а в моем случае файлов нет, а есть некие данные в приложении, которые должны быть превращены в файлы (и каталоги) при затаскивании в оболочку.

P>Относительно твоей проблемы, хотелось бы помотреть код, ибо не совсем понятно.

Код воспроизвести довольно сложно, т.к. его много. Вот некоторые куски:

// здесь строим блок памяти для CFSTR_FILEDESCRIPTOR
HGLOBAL hg = GlobalAlloc( GMEM_MOVEABLE, sizeof( FILEGROUPDESCRIPTOR ) );
FILEGROUPDESCRIPTOR * fgd = (FILEGROUPDESCRIPTOR*)GlobalLock( hg );
fgd->cItems = 1;
FILEDESCRIPTOR* fd = fgd->fgd;
fd->dwFlags = FD_ATTRIBUTES;
fd->dwFileAttributes = FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_NORMAL;
strcpy( fd->cFileName, "Dir\\Subdir\\Filename.ext" );
GlobalUnlock( hg );

// здесь строим блок памяти для CFSTR_FILECONTENTS
HGLOBAL hg = GlobalAlloc( DATA_SIZE );
void* data = GlobalLock( hg );
CopyData( data ); // какие-то данные для файла
GlobalUnlock( hg );


Best regards,
Andrey
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.