如何显示指定附件的Outlook电子邮件附件预览

时间:2014-10-22 09:38:00

标签: c# vsto outlook-addin email-attachments outlook-2013

我使用VSTO为Outlook 2013中的电子邮件设置了自定义窗格。它列出了ListView中的附件,并允许对附件执行转换操作:

enter image description here

用户通常可以按附件以获取所选附件的预览窗格。当在 my ListView中选择匹配的附件时,我需要复制该预览操作。这将允许他们选择一个附件,查看预览,然后选择它是哪种类型的文档(ID doc,CV等),而不必在我的自定义面板和通常的附件列表之间来回移动。

我用谷歌搜索了各种术语,但这似乎太难以找到了。我希望有一个Outlook 2013 VSTO专家,知道从哪里开始。 Inspector.AttachmentSelection是一个起点,但这是只读

我的C#选择更改处理程序如下所示(删除所有错误检查以简化它):

private void listview_SelectedIndexChanged(object( sender, EventArgs e)
{
     ListView listView = sender as ListView;
     ListViewItem listViewItem = listView.SelectedItems[0];
     Attachment attachment = lvi.Tag as Attachment;
     Inspector inspector = Globals.ThisAddIn.Application.ActiveInspector();

     // How to preview the attachment in the inspector???
}

更新

作为后备,我可以采取另一种方式,通过捕获Inspector.AttachmentSelectionChange事件如下所示并选择ListView中的项目,但我希望能够选择附件来自我的ListView,导致AttachmentSelection更改:

    void inspector_AttachmentSelectionChange()
    {
        this.attachmentListView.SelectedItems.Clear();
        foreach (Attachment selection in this.Inspector.AttachmentSelection)
        {
            foreach (ListViewItem item in this.attachmentListView.Items)
            {
                if (item.Tag as Attachment == selection)
                {
                    item.Selected = true;
                }
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

不幸的是,Outlook对象模型(或Redemption)中没有任何内容允许您设置所选附件。

但是,可以使用某些Win32API命令选择它以将焦点设置在附件选择器区域上。如果你使用Spy ++,你会发现它有一个特定的窗口句柄(0007096E; AfxWndW)。激活该窗口后,您可以发出TAB键击命令以选择附件。我不确定如何激活特定的附件; TAB似乎是该窗口中唯一使用的键盘命令。