Как избежать срабатываний системы безопасности при работе программ для Microsoft® Outlook® на Visual Basic
Компоненты для работы с MAPI
На самом деле, в этом разделе стоило бы рассказать всего об одном компоненте – Redemption Дмитрия Стеблеченко (www.dimastr.com). Других компонентов на сегодняшний день не существует, и даже великий SlipStick не содержит иных ссылок кроме как на Redemption:
http://www.slipstick.com/outlook/esecup.htm
Но по просьбе одного из наших друзей мы сделали ему маленький компонент для легко чтения свойств MAPI из Visual Basic. Компонент MAPIProp занимает на диске всего 25 Кб, и распространяется бесплатно вместе с исходными кодами на Visual C++ 6.0 и примерами на JScript, VBScript, Visual Basic 6 и Visual Basic .NET. Загрузить компонент можно на этой странице:
http://www.mapilab.com/ru/dev/mapiprop/
Компонент помимо функций инициализации MAPI содержит методы для чтения свойств объекта, чтения больших по объему значений свойств (типа PR_BODY) и прозрачного чтения компрессированных свойств (типа PR_RTF_COMPRESSED). Компонент возвращает значения свойств в “родном” для Visual Basic виде, и вам не придется задумываться о преобразовании ANSI-строк в VB-строку.
Однако, что делать, если нужно получить, например, список получателей письма? Этот список нельзя получить через свойства IMessage, так как он представлен отдельной таблицей. Можно попробовать воспользоваться функцией HrGetRecipientList, аналогично тому как это было описано выше, но работа со сложными структурами содержащими указатели является не самой сильной строной Visual Basic. Разумным выходом будет библиотека Redemption.
Эта библиотека, как и OutlookSpy, является условно-бесплатной, но ее возможности многократно перекрывают возможности нашей библиотеки, если их вообще хоть как-то можно сравнивать.
Redemption представляет альтернативные реализации всех объектов Outlook, свойства которых блокируются системой безопасности. Так, для MailItem в Redemption есть SafeMailItem (чьи методы не блокируются системой безопасности), для ContactItem есть SafeContactItem и т.д. Помимо этого, Redemption имеет специальный объект MAPIUtils, содержащий более десятка методов для работы с MAPI, включая и методы для чтения и записи свойств MAPI.
История Redemption насчитывает несколько лет, и он, как и OutlookSpy, является “must have” продуктом для всех, кто собирается создавать серьезные приложения для Microsoft Outlook на Visual Basic.
|
|