.net VSTO自定义文件夹类型

.net VSTO自定义文件夹类型,.net,vsto,outlook-2007,.net,Vsto,Outlook 2007,是否可以使用VSTO for Outlook 2007创建自定义文件夹类型?(即类似于olFolderContacts等的新文件夹类型) 理想情况下,我想做的是拥有一个文件夹,选中该文件夹后,将在Outlook主窗口(收件箱和预览窗格所在的位置)中创建一个新的表单区域,并显示WPF用户控件 谢谢 比如: 我在试图解决这个问题的同时发现了这张图片:我能做的最接近的事情是: 在outlook上创建文件夹(我将其命名为登录): 然后右键单击并设置其主页: 然后,当我选择该文件夹或“代码隐藏”

是否可以使用VSTO for Outlook 2007创建自定义文件夹类型?(即类似于olFolderContacts等的新文件夹类型)

理想情况下,我想做的是拥有一个文件夹,选中该文件夹后,将在Outlook主窗口(收件箱和预览窗格所在的位置)中创建一个新的表单区域,并显示WPF用户控件

谢谢

比如:


我在试图解决这个问题的同时发现了这张图片:

我能做的最接近的事情是:

  • 在outlook上创建文件夹(我将其命名为登录):

  • 然后右键单击并设置其主页:

  • 然后,当我选择该文件夹或“代码隐藏”时,我可以选择它,我的outlook如下所示:


如果我能用wpf表单或自定义区域做同样的事情,那就太好了。现在,我必须使用WebSocket或其他机制与该控件通信事件。

由于Outlook使用Internet Explorer作为浏览器,因此您可以获得对SilverLight的本机支持。您是否有可能将内容嵌入SilverLight网页,然后将其设置为文件夹的主页?WPF和SL有很多共同点,所以这可能是您的解决方案。

找到了解决方案。唯一需要注意的是,我需要购买,它花了我100美元。如果您购买了该产品,您可以这样做:

1。在vistualstudio上创建一个新项目,类型为(Outlook 2010加载项),我将我的项目命名为
OutlookAddIn1

2。向项目中添加新项目(我需要购买的产品)

3。选择该项目时,将显示一个向导,选择以下选项:

4。遵循所有默认设置,直到向导完成(单击下一步、下一步等。完成)

5。这里有一个windows窗体。为了放置WPF内容,您需要添加
ElementHost
控件。有一个关于如何在windows窗体上托管wpf usercontrol的教程日志。为了让这个答案保持不太长时间,我将不展示如何回答。

6。对于这个答案的演示,我只需在表单上放置一个按钮:

7。按下该按钮,我将隐藏该窗体并显示文件夹的deffault视图。下面是该按钮背后的代码:

    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。当我运行该项目时,当我选择任何邮件类型的文件夹时,请注意:

9。如果按下该按钮,我将显示所选文件夹的默认视图


我现在唯一的问题是,视图显示的是MailItem类型的每个文件夹。您可以在第一个wizzard上选择不同的文件夹类型—与Jurnal不同。然后在代码隐藏中,您可以为该表单选择一个要显示的jurnal文件夹

由于某种原因,它没有运行。我也试过运行flash。我甚至确定IE10正在运行,因为我认为这就是问题所在。奥卢克使用IE7。我问了这个问题,希望能使用你的答案:。