Frage

Ich versuche, eine Anlage von einer E-Mail öffnet in Novell GroupWise zu ermöglichen, fiel in meine C # WinForms-Anwendung werden. Die Standard-.NET-Funktionalität funktioniert nicht.

In der Drag & Drop-Ereignis eines Steuerelements, e.Data.GetFormats () gibt die folgenden.

FileGroupDescriptorW
FileGroupDescriptor
FileContents
attachment format

kann ich die Dateinamen mit e.Data.GetData ( "FileGroupDescriptor") erhalten und 76 gehen zu positionieren.

Leider e.Data.GetData ( "Dateiinhalt") bewirkt eine erste Chance System.NotImplementedException in System.Windows.Forms.dll und gibt null zurück. Anlagenformat auch den Wert null zurück.

Meine Recherchen sagen mir, dass Drag & Drop ist viel komplexer, als ich dachte :) Es scheint, wie GroupWise könnte ein Format namens CFSTR_FILECONTENTS verwenden, aber das ist nur eine Vermutung. Die Anhänge können erfolgreich per Drag & Drop auf dem Windows-Desktop oder einem anderen Ordner.

Vielen Dank für alle Vorschläge.

War es hilfreich?

Lösung

hatte ich kein Glück diese zu finden. Hier ist, was ich kam mit (Groupwise 7):

private void control_DragDrop(object sender, DragEventArgs e)
{
   string strFilename = null;

   //something about the act of reading this stream creates the file in your temp folder(?)
   using (MemoryStream stream = (MemoryStream)e.Data.GetData("attachment format", true))
   {
       byte[] b = new byte[stream.Length];
       stream.Read(b, 0, (int)stream.Length);
       strFilename = Encoding.Unicode.GetString(b);
       //The path/filename is at position 10.
       strFilename = strFilename.Substring(10, strFilename.IndexOf('\0', 10) - 10);
       stream.Close();
   }

   if (strFilename != null && File.Exists(strFilename))
   {
      //From here on out, you're just reading another file from the disk...
      using(FileStream fileIn = File.Open(strFilename, FileMode.Open))
      {
          //Do your thing
          fileIn.Close();
      }
   }

   File.Delete(strFilename);
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top