Как настроить приложение на окнах для ответа на вызовы 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: