【问题标题】:VirtualFileDataObject implementation does not work for Outlook 365VirtualFileDataObject 实现不适用于 Outlook 365
【发布时间】:2020-05-11 19:46:28
【问题描述】:

我已经按照here 找到的示例进行了操作。它实现 IDataObject 接口以创建“虚拟文件”数据对象。当将虚拟文件从 WPF 应用程序 d/d 到文件系统和 Outlook 电子邮件(文件附加到电子邮件)时,该实现工作得很好。我最近更新到 Outlook 365,但它突然停止工作,调试代码显示该进程实际上执行了下载文件的功能,但这些文件从未在电子邮件中显示为附件。

有人知道365中从outlook处理d/d的方式是否改变了吗?请给点提示。

VirtualFileDataObject类的代码可以找到here

这是使用检索虚拟文件的函数设置 FileDescriptor 列表的代码:

VirtualFileDataObject.FileDescriptor[] files = new VirtualFileDataObject.FileDescriptor[myItems.Count];
        for (int i = 0; i < myItems.Count; i++)
        {
            var name = myItems[i].ItemName;
            files.SetValue(
            new VirtualFileDataObject.FileDescriptor
            {
                Name = name,
                StreamContents = stream =>
                {
                    try
                    {
                        using (var webClient = new WebClient())
                        {
                            var data = webClient.DownloadData(myItems[i].Url);
                            stream.Write(data, 0, data.Length);
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show($"File '{name}' could not be copied.\n{ex.Message}", "Drag and Drop", MessageBoxButton.OK, MessageBoxImage.Error);
                    }
                }
            }, i);
        }
        virtualFileDataObject.SetData(files);

【问题讨论】:

    标签: c# wpf outlook drag-and-drop idataobject


    【解决方案1】:

    此问题仅在 Outlook 365 版本 2004 中存在。将 Office 365 更新到以下版本后,此问题完全消失。

    【讨论】:

      猜你喜欢
      • 2015-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-17
      • 1970-01-01
      • 1970-01-01
      • 2018-07-12
      • 1970-01-01
      相关资源
      最近更新 更多