Вопрос

Мне нужно разработать расширение Outlook, способное расширять существующие формы вкладками, загруженными с удаленного сервера.Например, в форме записи на прием должна появиться дополнительная вкладка.Определение формы на этой вкладке загружается из веб-службы и визуализируется, скажем, с помощью WPF.Данные для этой вкладки также поступают с сервера и привязываются к полям формы.И последнее - когда форма сохранена, она также должна быть отправлена на этот удаленный сервер.

Это должно работать в Outlook 2003 и 2007.

Основными вопросами являются:

  1. Возможно ли это вообще?
  2. Что почитать, чтобы быстрее это усвоить?MSDN большое, даже в его разделе для разработчиков Outlook.
  3. Есть ли какие-нибудь образцы?

Обновить

Большое спасибо за ответы!Определенно, слишком много разных вопросов, поэтому мне придется разбить их на несколько частей.Прочитав ответы и сделав домашнее задание, я хочу возобновить:

  1. Да, это возможно.Хотя, может быть, позже я найду какие-нибудь подводные камни.
  2. Лучший способ - взять VS 2008 и попытаться создать расширение.
Это было полезно?

Решение

Хорошо, в вашем посте много вопросов, я думаю, у меня есть ответы на некоторые из них, но не на все.В любом случае, в вашем вопросе слишком много всего, чтобы охватить все это в одном посте.

Первое, что нужно знать, это то, что Outlook 2007 работает по-другому, чем в предыдущих версиях.Таким образом, вам, вероятно, придется делать что-то дважды, чтобы использовать как Outlook 2003, так и 2007.

Первое, что нужно знать, - это словарный запас, который поможет найти то, что вам нужно.В Outlook 2003 вы будете использовать пользовательские формы для создания или расширения форм.В Outlook 2007 вы будете использовать новые Области формы.Хотя они схожи по концепции, это две разные вещи.

Поскольку я работал только в Outlook 2007, то, что я скажу дальше, применимо только к нему.Вам потребуется либо Visual Studio 2005 и загрузить VSTO (Visual Studio Tools для Office), либо Visual Studio 2008.

Область формы имеет один из 4 типов :Смежный, Отдельный, Заменяющий или Замещающий - Все.Смежный означает, что он отображается в нижней части формы по умолчанию.Отдельное означает, что это новая "страница" внутри формы.Заменить означает, что он заменяет первую страницу формы по умолчанию, а Заменить все означает, что он заменяет всю страницу формы по умолчанию.

Ты сказал, что хочешь использовать вкладки.В Outlook 2007 этого делать не следует.Вы должны использовать отдельные страницы, чтобы соблюдать принципы пользовательского интерфейса в Outlook 2007.Вы можете создавать вкладки, но вы увидите, что они будут выглядеть довольно уродливо.С другой стороны, на ленте отображаются отдельные страницы, что позволяет вам легко переключаться с одной страницы на другую.

У вас есть два способа создания областей формы.Первый, рекомендуемый способ - это конструктор внутри Outlook 2007 :что-то вроде "Инструменты> Формы> Создать форму региона".Вы создаете дизайн внутри этой штуки, сохраняете форму в виде файла .ofs, а затем импортируете ее в Visual Studio.

Преимущества :

  • Рекомендован Корпорацией Майкрософт, поэтому почти все ресурсы по настройке Outlook 2007 используют этот метод.
  • Готовые элементы управления для Outlook (например, поля, предназначенные для хранения адресов электронной почты).
  • Автоматическая привязка к свойствам пользователя в вашей почте.

Недостатки :

  • Грубый дизайнер (трудно все выровнять должным образом).
  • Всякий раз, когда вы захотите обновить свою форму, вам придется изменять ее в Outlook и снова загружать в Visual Studio, что приведет к удалению вашего предыдущего кода.
  • Старые COM-элементы управления, с которыми ужасно работать.

Другой способ - создать новую форму региона в Visual Studio.

Преимущества :

  • У вас есть все новейшие, мощные средства управления winforms, которые вам нужны.
  • Лучший дизайнер.
  • Легко обновляется.

Недостатки :

  • Вы не найдете много информации об этом, поскольку большинство авторов книг используют только Outlook designer.
  • Вам придется самостоятельно кодировать многие действия, которые вы считаете само собой разумеющимися в Outlook (например, создание текстового поля, которое может содержать и проверять несколько почтовых адресов), что довольно болезненно и может быть трудно выполнимо.

Я думаю, вы можете отправлять свои пользовательские формы (по крайней мере, те, что разработаны в Outlook) по электронной почте, но я не уверен, поскольку сам никогда этого не пробовал.

Что касается привязки, вы, вероятно, сможете сделать это с помощью event .Например, существуют события, которые запускаются перед сохранением или отправкой сообщения.

На данный момент это все, я надеюсь, что своим длинным ответом я не отклонился от темы и что это поможет вам точно определить, что вы хотите делать.Вы должны получить некоторое представление о том, что Outlook позволяет вам делать, а затем задать более конкретные вопросы по каждому пункту.

Другие советы

Это невозможно в том виде, в каком вы описываете, но вы можете пройти часть пути к этому.Также Ksempac указал много хорошего на плюсы и минусы того, как что-то делать в Outlook 2007.

Чтобы запустить это в 2003 и 2007 годах, я думаю, что лучшим способом было бы разработать вашу собственную форму для записи на прием.Вы можете расширить одну из вкладок, чтобы иметь элемент управления браузером, который отображает динамическую форму из вашего веб-сервиса.Результаты которого могут быть отправлены обратно или сохранены вместе с новой формой outlook для последующего отображения / обработки.

примеры :

Пример оформления формы:http://www.msexchange.org/articles/Designing-Outlook-Forms-Part1.html

Перезаписать формы по умолчанию:http://support.microsoft.com/?kbid=241235

Здесь и в сети есть много хорошего о разработке форм Outlook, и вы можете любыми способами задать вопрос здесь.Есть также пара хороших книг о формах:

Книги и сайт Сью Мошер - хорошее место для начала.Outlookcode.com

Программирование в Microsoft Outlook:Руководство для администраторов, разработчиков и опытных пользователей (ISBN 1-555-58286-9, Digital Press)

Программирование в Microsoft Outlook 2007:Руководство для опытных пользователей и администраторов (ISBN 1-55558-346-6, Digital Press)

Как Ksempac , вам , вероятно , нужно сформулировать свой вопрос и задавать его по ходу дела ..

Обновить Если у вас есть какая-то бюджетная Надстройка Express http://www.add-in-express.com/ это избавит вас от необходимости развертывать Outlook во 2 версиях, и вы сможете повысить производительность быстрее, чем если бы делали это вручную.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top