.NET框架中的RenPrivateItem文件格式是什么?

时间:2013-11-14 12:27:03

标签: .net vb.net visual-studio-2012 outlook

我正在努力允许从电子邮件的主题行拖放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

除了我最初的问题,为什么这些文件的处理方式如此不同?

1 个答案:

答案 0 :(得分:0)

ArrayAdapter<Integer> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, randomNums);数据格式不是特定于.NET的。它是一种未记录的私有格式,Outlook用于跟踪自己的项目。它与外界无关;只有RenPrivateItemFileGroupDescriptorWFileGroupDescriptor是相关的。

这就是“私人”这个词在名字中的原因;当应用程序想要将私有数据与拖放操作相关联时,这就是它的样子。我自己的应用程序就是这样做的。