Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.10.2024, 21:32   #1
LUN2
Пользователь
 
Регистрация: 14.08.2021
Сообщений: 23
По умолчанию Как получить сообщение outlook, перетаскиваемо на мое окно ?

Добрый вечер!
Я хочу реализовать получение письма и его составных частей (файлы-вложения, реквизиты - From, To, subject и т.п.), которое посредством механизма drag-and-drop перетаскивается на мое окно.
Сейчас я реализовал метод HRESULT __stdcall Drop(IDataObject* pDataObj, DWORD grfKeyState, POINTL pt, DWORD* pdwEffect), перебираю форматы, когда получаю IStream читаю его (через GetData).

Однако я не совсем понимаю, каким образом через полученные из потока данные мне выйти на компоненты письма.

Для наглядности на скриншоте показаны все форматы (структуры FORMATETC), которые мне дает система, когда письмо outlook перетащено на мое окно.
Скажем (см. сначал скриншота), получил я что-то с кодом формата 49814, получил IStream с данными этого формата, прочитал из него 302 байта, а как из них выудить что-либо связанное с outlook-ом ?

К слову, RegisterClipboardFormat не вызвал.
может быть это нужно ? Пока, честно говоря, не совсем понял, зачем получателю OLE-объекта его регистрировать.
Ну да ладно, вызвать регистрацию нетрудно, но какой формат регистрировать ?

Кто мог бы прояснить ситуацию, чтобы можно было двинуться дальше ?
(материалы msdn почитал, не ясности сильно не прибавилось...).
Изображения
Тип файла: png _что_прочитано.PNG (26.0 Кб, 0 просмотров)
LUN2 вне форума Ответить с цитированием
Старый 08.10.2024, 23:17   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,358
По умолчанию

Цитата:
Сообщение от LUN2 Посмотреть сообщение
получил я что-то с кодом формата 49814
Так надо знать что в этом формате.
Начните с GetClipboardFormatName чтоб получить читаемое имя из этого кода.
Потом, если повезет, можно будет нагуглить описание формата.
Так же можно попробовать CoUnmarshalInterface из полученого IStream, для начала с IUnknown.

Edit:
Вот полезная утилитка.
https://www.nirsoft.net/utils/inside_clipboard.html

Последний раз редактировалось waleri; 09.10.2024 в 00:26.
waleri вне форума Ответить с цитированием
Старый 09.10.2024, 21:35   #3
LUN2
Пользователь
 
Регистрация: 14.08.2021
Сообщений: 23
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
адо знать что в этом формате.
waleri, да, действительно удалось получить имена для кодов.
Вот некоторые из них:
49968 - RenPrivateLatestMessages,
49735 - RenPrivateMessages,
49708 - RenPrivateItem.

Их как-то можно использовать для вытаскивания сообщения ?
LUN2 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
VBA Outlook: сделать в инспекторе "Сообщение - Действия - Изменить сообщение" vamosss Фриланс 1 13.02.2017 14:02
Вставка подписи в сообщение Outlook макросом Gum_bad Microsoft Office Excel 1 27.05.2016 08:10
Что означает сообщение Outlook? Olya1985 Софт 1 26.04.2013 18:07
Добавление подписи в сообщение Outlook Unreal Blonde Microsoft Office Excel 4 12.10.2009 11:58
Как отправить Access-ом сообщение по Outlook? ИгнатАлт Microsoft Office Access 2 23.11.2007 18:47