2014-10-28 3 views
0

Как я могу просто определить, загружен ли простой или расширенный MAPI. Потому что я хочу, чтобы мой текст был добавлен в wenn, просто загружен MAPI. Я работаю с надстройкой Express и Redemption.dll.Лучший способ определить, был ли загружен простой или расширенный MAPI

+0

Можете уточнить? SMAPI и Extended MAPI - это библиотеки, на которые нужно ссылаться, чтобы писать код, поэтому они не загружаются в вашу надстройку, если вы явно не ссылаетесь на какие-либо объекты в этих API. Для расширенного MAPI требуется C++ для работы, а SMAPI - не имеет значения для использования в проекте Add-in Express. –

+0

Когда вы используете правую кнопку мыши для отправки файла по электронной почте из Windows, используется простой mapi. Когда пользователь хочет использовать мой добавочный элемент, я хочу вызвать сообщение. – aDoubleSo

ответ

2

Использование команды «Отправить на» Windows фактически интегрируется с SendMail.dll. AFAIK вы не можете перехватить эти вызовы, чтобы сделать что-то обычай, но вы можете добавить свои собственные ярлыки в контекстном меню:

http://www.slipstick.com/outlook/create-a-custom-send-to-shortcut/

+0

Все, что я хочу, это изменить поведение моего аддона, если используется простой mapi. if (simplemapi) else. Мне нужно только определить, какие карты используются. – aDoubleSo

+0

Проблема с электронной почтой, созданной с помощью SendMail, заключается в том, что событие Application.NewInspector не получается. Нет никакого события, которое срабатывает при создании этих писем. SendMail ломает много вещей. –

+0

Каков наилучший способ определить, используется ли SendMail? – aDoubleSo

0

Что об этом решении? Может ли это привести к проблемам?

Outlook.Application outlookApp = null; 
Outlook.Explorer outExp = null; 

try 
{ 
    outlookApp = (Outlook.Application)AddinModule.CurrentInstance.OutlookApp; 
    outExp = outlookApp.ActiveExplorer() as Outlook.Explorer; 

    if (outExp != null) 
    { 
     // extended stuff 
    } else { 
     // simple stuff 
    } 
} 
+0

Это очень простой код, который на самом деле ничего не делает, поэтому я не уверен, как он относится к этому сценарию. Однако есть еще одна возможность: использовать таймер в классе где-то, который постоянно обследует Inspectors.Count и сравнивает его с другим счетчиком, который увеличивается при запуске NewInspector. Когда срабатывает таймер, он может сравнить два счета, и когда они будут отличаться, вы узнаете, что новое окно было создано из SendMail. –

+0

Наверняка это просто и решает мою проблему. Когда открыт только инспектор (SendMail), его простые карты и я отключу свой добавочный файл. Когда открыт и проводник, расширенный mapi активен. – aDoubleSo

Смежные вопросы