Нужно дропать в ричэдит файлы из самых разных источников. Для этого до сих пор использовался IRichEditOleCallback. Проблема в том, что IRichEditOleCallback::QueryAcceptData не вызывается ричэдитом, если он read-only.
1. Есть ли какой-нибудь хитрый способ заставить ричэдит всегда вызвать колбэк? А если нет, то
2. Нет ли какого-нибудь (возможно, не менее хитрого:) способа получить IDropTarget, зарегистрированный для конкретного hwnd? (Чтобы кастомизировать ричэдитовый IDropTarget.)
Здравствуйте hoodoo, Вы писали:
H>Беда с dnd в ричэдите...
H>Нужно дропать в ричэдит файлы из самых разных источников. Для этого до сих пор использовался IRichEditOleCallback. Проблема в том, что IRichEditOleCallback::QueryAcceptData не вызывается ричэдитом, если он read-only.
H>1. Есть ли какой-нибудь хитрый способ заставить ричэдит всегда вызвать колбэк? А если нет, то
H>2. Нет ли какого-нибудь (возможно, не менее хитрого способа получить IDropTarget, зарегистрированный для конкретного hwnd? (Чтобы кастомизировать ричэдитовый IDropTarget.)
Попробуй так реализуй интерфейс IDropTarger (сделай просто класс, c методами интерфейса)
и зарегестрировать его для окна используя RegisterDragDrop
Здравствуйте OlegO, Вы писали:
OO>Попробуй так реализуй интерфейс IDropTarger (сделай просто класс, c методами интерфейса) OO> и зарегестрировать его для окна используя RegisterDragDrop
Чтобы зарегистрировать свой IDropTarget, надо сначала убить уже зарегистрированный, то бишь ричэдитовый. "Родной" DnD при этом перестанет работать, а эмулировать его в своем IDropTarget, имхо, тот еще геморрой...
Здравствуйте hoodoo, Вы писали:
H>Чтобы зарегистрировать свой IDropTarget, надо сначала убить уже зарегистрированный, то бишь ричэдитовый. "Родной" DnD при этом перестанет работать, а эмулировать его в своем IDropTarget, имхо, тот еще геморрой...
какой геморрой... :???:
по-моему, все наооборот ясно, конкретное число случаев, только бери и делай.
Хотя если чесно, то немного не логично, получать данные если RichEdit read-only, может проще
самому эмулировать read-only.