DragDrop Verträge, VermerkeBesonderheiten KDStamm
This commit is contained in:
@@ -474,6 +474,66 @@ Public Class cProgramFunctions
|
||||
|
||||
End Sub
|
||||
|
||||
Shared Function EmAilAttach(e As DragEventArgs) As String
|
||||
Try
|
||||
|
||||
' We have a embedded file. First lets try to get the file name out of memory
|
||||
Dim theStream As IO.Stream = CType(e.Data.GetData("FileGroupDescriptor"), IO.Stream)
|
||||
Dim fileGroupDescriptor(512) As Byte
|
||||
theStream.Read(fileGroupDescriptor, 0, 512)
|
||||
Dim fileName As System.Text.StringBuilder = New System.Text.StringBuilder("")
|
||||
Dim i As Integer = 76
|
||||
|
||||
While Not (fileGroupDescriptor(i) = 0)
|
||||
fileName.Append(Convert.ToChar(fileGroupDescriptor(i)))
|
||||
System.Math.Min(System.Threading.Interlocked.Increment(i), i - 1)
|
||||
End While
|
||||
|
||||
theStream.Close()
|
||||
' We should have the file name or if its an email, the subject line. Create our temp file based on the temp path and this info
|
||||
Dim myTempFile As String = IO.Path.GetTempPath & VERAG_PROG_ALLGEMEIN.cDATENSERVER.replaceInvalidCahr(fileName.ToString)
|
||||
|
||||
' Look to see if this is a email message. If so save that temporarily and get the temp file.
|
||||
If InStr(myTempFile, ".msg") > 0 Then
|
||||
Dim objOL As New Microsoft.Office.Interop.Outlook.Application
|
||||
Dim objMI As Microsoft.Office.Interop.Outlook.MailItem
|
||||
If objOL.ActiveExplorer.Selection.Count > 1 Then
|
||||
MsgBox("Es kann nur ein Element übertagen werden.", MsgBoxStyle.OkOnly Or MsgBoxStyle.Information, "Ein Element pro Vorgang")
|
||||
End If
|
||||
For Each objMI In objOL.ActiveExplorer.Selection()
|
||||
objMI.SaveAs(myTempFile)
|
||||
Exit For
|
||||
Next
|
||||
objOL = Nothing
|
||||
objMI = Nothing
|
||||
Else
|
||||
' If its a attachment we need to pull the file itself out of memory
|
||||
Dim ms As IO.MemoryStream = CType(e.Data.GetData("FileContents", True), IO.MemoryStream)
|
||||
Dim FileBytes(CInt(ms.Length)) As Byte
|
||||
' read the raw data into our variable
|
||||
ms.Position = 0
|
||||
ms.Read(FileBytes, 0, CInt(ms.Length))
|
||||
ms.Close()
|
||||
' save the raw data into our temp file
|
||||
Dim fs As IO.FileStream = New IO.FileStream(myTempFile, IO.FileMode.OpenOrCreate, IO.FileAccess.Write)
|
||||
fs.Write(FileBytes, 0, FileBytes.Length)
|
||||
fs.Close()
|
||||
End If
|
||||
' Make sure we have a actual file and also if we do make sure we erase it when done
|
||||
If IO.File.Exists(myTempFile) Then
|
||||
' Assign the file name to the add dialog
|
||||
EmAilAttach = myTempFile
|
||||
Else
|
||||
EmAilAttach = String.Empty
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, System.Reflection.MethodInfo.GetCurrentMethod.Name)
|
||||
EmAilAttach = String.Empty
|
||||
End Try
|
||||
|
||||
End Function
|
||||
|
||||
End Class
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user