VSTO Пользовательский Тип Папки - PullRequest
3 голосов
/ 07 января 2012

Можно ли создать пользовательский тип папки с помощью VSTO для Outlook 2007?(т. е. новый тип папки, похожий на olFolderContacts и т. д.)

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

Спасибо

Что-то вроде:

enter image description here

Я обнаружил, чтоТем временем, пытаясь решить этот вопрос по адресу: http://www.add -in-express.com / add-in-net / outlook-region-basics.php

Ответы [ 3 ]

0 голосов
/ 11 декабря 2013

Поскольку Outlook использует Internet Explorer в качестве браузера, вы получаете встроенную поддержку SilverLight.Есть ли вероятность, что вы сможете встроить свое содержимое в веб-страницу SilverLight, а затем установить ее в качестве домашней страницы своей папки?WPF и SL имеют много общего, поэтому, возможно, это решение для вас.

0 голосов
/ 12 декабря 2013

Нашел решение.Единственное предостережение - мне нужно купить Advanced Outlook регионов для VSTO , и это стоило мне 100 долларов.Если вы покупаете этот продукт, вот как вы это делаете:

1.Создайте новый проект в виртуальной студии типа (надстройка Outlook 2010). Я назвал свой проект OutlookAddIn1

2.Добавить новый элемент в проект (продукт, который мне нужно было купить) enter image description here

3.Когда вы выбираете этот элемент, появляется мастер, выберите следующие параметры: enter image description here

4.Следуйте всем настройкам по умолчанию до завершения работы мастера (нажмите «Далее», «Далее» и «Завершить»)

5.Там у вас есть окна формы.Для размещения содержимого WPF вам необходимо добавить ElementHost элементов управления.Есть журнал уроков о том, как разместить wpf usercontrol в формах Windows.Чтобы этот ответ не продлился так долго, я не покажу, как.

6.Для демонстрации этого ответа я просто помещу кнопку в эту форму: enter image description here

7.нажатием этой кнопки я скрою эту форму и покажу вид папки по умолчанию.Вот код этой кнопки:

    private void button1_Click(object sender, EventArgs e)
    {
        // disable the form that id does not show up
        Globals.ThisAddIn.ADXOlForm1Item.Enabled = false;

        // get the current selected folder
        var thisFOlder = Globals.ThisAddIn.Application.ActiveExplorer().CurrentFolder;

        // remove the webview pane in order to show the main folder view instead
        thisFOlder.WebViewOn = false;
        thisFOlder.WebViewURL = string.Empty;

        // RESET FOLDER BY SELECTING A DIFFERENT ONE THEN THE SAME ONE
        NameSpace nameSpace = Globals.ThisAddIn.Application.GetNamespace("MAPI");
        MAPIFolder outboxFolder = nameSpace.GetDefaultFolder(OlDefaultFolders.olFolderOutbox);
        Globals.ThisAddIn.Application.ActiveExplorer().CurrentFolder = outboxFolder; // CHANGE FOLDER TO A DIFFERNT ONE
        System.Windows.Forms.Application.DoEvents();
        Globals.ThisAddIn.Application.ActiveExplorer().CurrentFolder = thisFOlder; // SET INBOX AGAIN

        // remeember to release objects
        Marshal.ReleaseComObject(nameSpace);
        Marshal.ReleaseComObject(outboxFolder);
        Marshal.ReleaseComObject(thisFOlder);

        this.Close();
    }

8.Когда я запускаю эту заметку проекта, когда вижу при выборе любой папки типа Почта: enter image description here

9.Если я нажму эту кнопку, я покажу вид по умолчанию для выбранной папки

. Единственная проблема, которая у меня сейчас есть, - это то, что вид отображается для каждой папки типа MailItem.Вы можете выбрать другой тип папки на первом wizzard, что не так часто, как Jurnal.Затем в коде позади вы можете выбрать Jurnal папку для этой формы, чтобы показать.

0 голосов
/ 07 декабря 2013

Самое близкое, что я могу сделать, это:

  • Создать папку на Outlook (я назвал ее логин):

  • Тогда правильнощелкните и установите домашнюю страницу:

    enter image description here

  • , затем, когда я выбираю эту папку или код, я могу выбрать ее, мой внешний вид выглядит следующим образом:

    enter image description here

Было бы хорошо, если бы я мог сделать то же самое, но с формой wpf или пользовательским регионом.Теперь я должен использовать веб-сокеты или другой механизм для связи событий с этим элементом управления.

...