我正在努力允许从电子邮件的主题行拖放 Outlook 附件。为此,我需要将文件作为 RenPrivateItem 处理。一切正常,但我希望有人可以在 .NET 或其他环境中定义“RenPrivateItem”格式。
我想知道为什么我的代码有效,但我无法通过网络搜索找到有关此格式的任何进一步信息。
此外,我正在使用 Visual Studio 2012 和 Outlook 2007。
编辑:
我对处理 DragDrop 的过程有些不熟悉,但我猜测只有某些类型的文档应该由它处理。我得到了一个当前有效的文件示例(电子邮件正文中包含的附件 .pdf)和一个无效的示例(电子邮件主题行中包含的附件 .pdf)。工作示例在以下行返回 true 并进行处理:
ElseIf idoData.GetDataPresent(System.Windows.Forms.DataFormats.Rtf, False) Then
下面代码块中可见的任何情况都不会处理不起作用的示例。我的任务是弄清楚为什么它不起作用(它是同一个文件,只是附加到不同位置的电子邮件中)。由于我不明白我收到的文件格式是什么,除了 .rtf,我发现很难知道如何处理另一种情况:
Shared Sub ProcessOutlookDrop(ByVal idoData As Windows.Forms.IDataObject, ByVal
iIdReport As Integer, ByVal iIdFileReference As Integer)
If idoData.GetDataPresent("RenPrivateFileAttachments") Then
byFile = getFiledataArrayFromFileContents(idoData)
ElseIf idoData.GetDataPresent("RenPrivateItem") Then ' ADDED BY ME
byFile = getFiledataArrayFromFileContents(idoData) ' ADDED BY ME
ElseIf idoData.GetDataPresent(System.Windows.Forms.DataFormats.Rtf, False) Then
byFile = getFiledataArrayFromFileContents(idoData)
ElseIf idoData.GetDataPresent(System.Windows.Forms.DataFormats.Text, False) Then
byFile = getMessagedataArrayFromOutlook(idoData)
End If
对于工作示例(正文中的 .pdf 附件),我得到以下格式:Woozle、对象描述符、富文本格式、HtmlFormat、EnhancedMetafile、MetaFilePict、DeviceIndependentBitmap、System.Drawing.Bitmap、Bitmap、Embedded Object、FileGroupDescriptor、FileContents
对于损坏的示例(主题行中的 .pdf 附件),我得到以下格式:FileGroupDescriptorW、FileGroupDescriptor、RenPrivateItem、FileContents
除了我最初的问题之外,为什么这些文件的处理方式如此不同?