我正在努力允许从电子邮件的主题行拖放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,Object Descriptor,Rich Text Format,HtmlFormat,EnhancedMetafile,MetaFilePict,DeviceIndependentBitmap,System.Drawing.Bitmap,Bitmap,Embedded Object,FileGroupDescriptor,FileContents
对于破碎的例子(主题行中的.pdf附件)我得到以下格式: FileGroupDescriptorW,FileGroupDescriptor,RenPrivateItem,FileContents
除了我最初的问题,为什么这些文件的处理方式如此不同?
答案 0 :(得分:0)
ArrayAdapter<Integer> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, randomNums);
数据格式不是特定于.NET的。它是一种未记录的私有格式,Outlook用于跟踪自己的项目。它与外界无关;只有RenPrivateItem
,FileGroupDescriptorW
和FileGroupDescriptor
是相关的。
这就是“私人”这个词在名字中的原因;当应用程序想要将私有数据与拖放操作相关联时,这就是它的样子。我自己的应用程序就是这样做的。