Russian Qt Forum

Qt => ActiveX => Тема начата: Caduceus от Ноябрь 13, 2009, 10:46



Название: Как соотносятся QMimeData и IDataObject?
Отправлено: Caduceus от Ноябрь 13, 2009, 10:46
Делаю драг-н-дроп из Qt-шного виджета в нативное окно. То есть при старте драга в источнике заворачиваю все в QByteArray и сую в QDrag через setMimeData, а вот в нативном окное мне приходит IDataObject.

Сую просто строчку и один указатель на структуру (не qt-шные вещи). Как мне эти данные получить в нативном окне из IDataObject?


Название: Re: Как соотносятся QMimeData и IDataObject?
Отправлено: Caduceus от Ноябрь 16, 2009, 15:39
Никто не сталкивался с такой проблемой?


Название: Re: Как соотносятся QMimeData и IDataObject?
Отправлено: Caduceus от Ноябрь 20, 2009, 15:39
Ура, я сделал это!!! Вопрос решен.

В помощь идущим после меня:
в недрах исходников Qt выкапываем класс QOleDataObject. Переносим несоклько строк кода этого класса в свой проект. И.... тадааа!!!! О чудо. Можно привести указатель на IDataObject в указатель на этот ваш QOleDataObject. А потом все просто:
QOleDataObject* oleDO = (QOleDataObject*)pDataObj;
const QMimeData * md = oleDO->mimeData();

и вытаскивайте из этой QMimeData все, что вы туда запихнули.

Я гений :) Всем спасибо :)


Название: Re: Как соотносятся QMimeData и IDataObject?
Отправлено: zenden от Ноябрь 22, 2009, 00:03
Я гений

к тому ж еще и скромный. Пожалуйста!