2013-11-14 54 views
1

我正在努力允許Outlook附件從電子郵件的主題行拖放。爲此,我需要將該文件作爲RenPrivateItem處理。一切正常,但我希望有人可以在.NET環境中定義「RenPrivateItem」格式,否則。.NET框架中的RenPrivateItem文件格式是什麼?

我想知道爲什麼我的代碼可以工作,但我無法通過網絡搜索找到關於此格式的更多信息。

此外,我與Visual Studio 2012和Outlook 2007年工作

編輯:

我與處理的DragDrop過程有點陌生,但我猜測,有隻有某些類型的文件應該由它來處理。我給了一個當前有效的文件示例(附件.pdf包含在電子郵件正文中)和一個不包含的示例(附件.pdf包含在電子郵件主題行中)。工作示例返回以下行真實的處理:

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,對象描述,RTF格式,HtmlFormat,EnhancedMetafile,METAFILEPICT,DeviceIndependentBitmap,System.Drawing.Bitmap,位圖,嵌入的對象,FileGroupDescriptor,FileContents

對於破示例(.pdf附件在主題行中)我得到的格式爲: FileGroupDescriptorW,FileGroupDescriptor,RenPrivateItem,FileContents

除了我最初的問題,爲什麼這些文件處理如此不同呢?

回答

0

RenPrivateItem數據格式不是.NET特有的。這是Outlook用來跟蹤自己的項目的無證私人格式。這與外界無關;只有FileGroupDescriptorW,FileGroupDescriptorFileContents是相關的。

這就是爲什麼'私人'這個詞在名稱中;這是應用程序想要將私有數據與拖放操作相關聯時的樣子。我自己的應用程序這樣做。