1

Outlook の添付ファイルをメールの件名からドラッグ アンド ドロップできるように作業していました。これを行うには、ファイルを RenPrivateItem として処理する必要がありました。すべて問題なく動作しますが、誰かが.NETのコンテキストで「RenPrivateItem」形式を定義できることを望んでいました。

私のコードが機能する理由を知りたいのですが、Web 検索でこの形式に関する詳細情報を見つけることができませんでした。

また、Visual Studio 2012 と Outlook 2007 を使用しています。

編集:

私は DragDrop を処理するプロセスに多少慣れていませんが、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

私の最初の質問に加えて、なぜこれらのファイルの扱いがそれほど異なるのでしょうか?

4

1 に答える 1

0

データ形式はRenPrivateItem.NET 固有ではありません。これは、Outlook が独自のアイテムを追跡するために使用する文書化されていないプライベート形式です。外の世界とは関係ありません。FileGroupDescriptorW、、FileGroupDescriptorおよびのみFileContentsが該当します。

そのため、「プライベート」という言葉が名前に含まれています。これは、アプリがプライベート データをドラッグ アンド ドロップ操作に関連付けたい場合の様子です。私自身のアプリケーションはこれを行います。

于 2015-11-19T20:19:04.970 に答える