Здравствуйте 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