Re[5]: Как засунуть кое-что в Clipboard? (новичок)
От: Андрей Россия  
Дата: 16.01.02 14:25
Оценка:
Здравствуйте kl, Вы писали:

kl>Здравствуйте Андрей, Вы писали:


А>>Здравствуйте kl, Вы писали:


kl>>>Насчет регистрирования то все прозрачно...

kl>>>Кстати, а зачем COleDataSource, чем SetClipboardData хуже? И то и то принимает HGLOBAL, а никакие drag & drop мне не нужны.
А>>COleDataSource нужен, чтобы использовать IStream — его же можно будет в Clipboard потом запихать и HGLOBAL тебе нафиг не нужен будет, а drag&drop здесь ни при чем.

kl>>>А вот про CMemFile я и забыл, но ты уверен что он нормально себя чуствует с блоком, выделенным GlobalAlloc?

А>>Очень даже нормально, если правильно использовать. А лучше даже CSharedFile использовать — создаешь его, пишешь как в обычный файл, затем делаешь Detach — и получаешь готовый HGLOBAL, то есть GlobalAlloc тебе явно использовать не надо.

kl>>>Спасибо за ответ!

А>>Всегда пожалуйста.

kl>Насчет CSharedFile ясно, но чего то я не догоняю насчет того, что "HGLOBAL нафиг не нужен".

kl>Stream то я создаю через CreateStreamOnHGlobal (может не так надо??) , поэтому хэндл все равно у меня есть. Поэтому вместо COleDataObject::Attach, COleDataSource::SetClipboard, я использую SetClipboardData. Мне кажется так эффективнее, может я чего то не понимаю?

Я могу ошибаться, но по-моему, CreateStreamOnHGlobal нужна, чтобы получить IStream, который можно передать в Clipboard, а не наоборот.
IStream в Clipboard ты с помощью Win32API не передашь. Хотя, может быть и будет работать с HGLOBAL — я не проверял. Но как-то это все вычурно получается, проще через CSharedFile.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.