Как настроить приложение на окнах для ответа на вызовы MAPISendMail?

Функция MAPISendMail доступна в Windows, поэтому приложение может запросить отправку электронного письма. Windows направит запрос к любому почтовому клиенту, настроенному в качестве поставщика по умолчанию.

Как мне написать приложение, чтобы оно действовало как почтовый клиент для получения писем MAPISendMail? Кто-нибудь может указать мне на документацию MSDN? Или дайте мне знать необходимые интерфейсы и ключи реестра?

2 ответа

Решение

Добавить некоторые вещи в реестр в HKEY_LOCAL_MACHINE\Software\Clients\Mapi

Создайте новый ключ с именем вашего приложения, добавьте REG_EXPAND_SZ и назначьте ему путь к своей dll. Создайте новый ключ с именем shell. Создайте новый ключ с именем open. Создайте новый ключ с именем команды. Присвойте ему имя exe.

PS. Для Vista и Windows 7 используйте HKEY_LOCAL_USER

Реализуйте MAPI-API в вашей DLL. Вам нужно установить значение shell\open\command, иначе клиент не будет отображаться в списке клиентов в ваших настройках Интернета.

Если вы не используете транспортный поставщик Microsoft Exchange, вы можете реализовать MAPI Spooler Hook Provider. В следующем примере базы знаний Microsoft показано, как создать провайдер-ловушку MAPI Spooler:

http://support.microsoft.com/kb/224362

Другие вопросы по тегам