Это мой код : < /p>
Код: Выделить всё
private void OnDrop(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent("FileGroupDescriptorW"))
{
SaveOutlookEmail(e);
}
...
}
private void SaveOutlookEmail(DragEventArgs e)
{
try
{
// Extract the file name (metadata)
using (var fileGroupDescriptorStream = (MemoryStream)e.Data.GetData("FileGroupDescriptor"))
{
string fileName = GetFileNameFromDescriptor(fileGroupDescriptorStream);
Debug.WriteLine($"Extracted file name: {fileName}");
// Check if the FileContents format is available
if (e.Data.GetDataPresent("FileContents"))
{
// Extract the file content
using (var fileContentsStream = (Stream)e.Data.GetData("FileContents"))
{
var outputPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), fileName);
// Save the email content to a .msg file
using (var outputFileStream = new FileStream(outputPath, FileMode.Create, FileAccess.Write))
{
fileContentsStream.CopyTo(outputFileStream);
}
Debug.WriteLine($"Email content saved to: {outputPath}");
}
}
}
}
catch (System.Exception ex)
{
Debug.WriteLine($"System Error saving email: {ex.StackTrace}");
}
}
Код: Выделить всё
System Error saving email: at System.Runtime.InteropServices.ComTypes.IDataObject.GetData(FORMATETC& format, STGMEDIUM& medium)
at System.Windows.DataObject.OleConverter.GetDataFromOleIStream(String format, DVASPECT aspect, Int32 index)
at System.Windows.DataObject.OleConverter.GetDataFromBoundOleDataObject(String format, DVASPECT aspect, Int32 index)
at System.Windows.DataObject.OleConverter.GetData(String format, Boolean autoConvert, DVASPECT aspect, Int32 index)
at System.Windows.DataObject.OleConverter.GetData(String format, Boolean autoConvert)
at Test.MainWindow.SaveOutlookEmail(DragEventArgs e) in C:\Projects\Tests\Test\MainWindow.xaml.cs:line 62
Подробнее здесь: https://stackoverflow.com/questions/794 ... look-email
Мобильная версия