Drag and drop files and emails issues

I have been working on a project which includes a drag and drop function. What I would like to create is an application where the end user can drag and drop files and/or emails that will be added to a database as a blob. The issue is that an email is not processed correctly. Files are put correctly in the database without an issue. But when I drop an email I have tried several ways but I always run into an issue. The code below works for the files but returns an error with the emails. The error states Cannot convert an object of the type System.IO.MemoryStream to the type OutlookItems.

This is the code that I am using at the moment:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
<code>Private Sub dgvDragDrop_DragEnter(sender As Object, e As DragEventArgs) Handles dgvDragDrop.DragEnter
' Check if the dragged data contains Outlook item(s) or files
If e.Data.GetDataPresent("RenPrivateMessages") Or e.Data.GetDataPresent(DataFormats.FileDrop) Then
' Allow copying of the dragged data
e.Effect = DragDropEffects.Copy
End If
End Sub
Private Sub dgvDragDrop_DragDrop(sender As Object, e As DragEventArgs) Handles dgvDragDrop.DragDrop
Try
' Check if the dragged data contains Outlook items
If e.Data.GetDataPresent("FileGroupDescriptor") Then
Dim dataObj As IDataObject = e.Data
Dim formats As String() = dataObj.GetFormats()
For Each format As String In formats
If format.Contains("RenPrivateMessages") Then
' Get the dragged Outlook items
Dim outlookItems As OutlookItems = CType(e.Data.GetData(format), OutlookItems)
' If Outlook items are present, process them as mail items
If outlookItems IsNot Nothing Then
For Each outlookItem As Object In outlookItems
If TypeOf outlookItem Is Outlook.MailItem Then
Dim mailItem As Outlook.MailItem = CType(outlookItem, Outlook.MailItem)
' Convert the mail item to a byte array
Dim emailData As Byte() = GetEmailData(mailItem)
' Get the subject of the email
Dim subject As String = mailItem.Subject
' Add the email data to the database
AddEmailToDatabase(subject, emailData)
End If
Next
MessageBox.Show("Emails added to the database successfully.")
Exit Sub ' Exit the method if Outlook items are processed
End If
End If
Next
End If
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
' Get the array of file paths from the dragged data
Dim files As String() = CType(e.Data.GetData(DataFormats.FileDrop), String())
' Process each dragged file
For Each filePath As String In files
' Get the file name and extension
Dim fileName As String = Path.GetFileName(filePath)
Dim fileExtension As String = Path.GetExtension(filePath)
' Read the file data into a byte array
Dim fileData As Byte() = File.ReadAllBytes(filePath)
' Add the file data to the database
AddFileToDatabase(fileName, fileExtension, fileData)
Next
End If
MessageBox.Show("Items added to the database successfully.")
Catch ex As Exception
MessageBox.Show("Error occurred: " & ex.Message)
End Try
End Sub
</code>
<code>Private Sub dgvDragDrop_DragEnter(sender As Object, e As DragEventArgs) Handles dgvDragDrop.DragEnter ' Check if the dragged data contains Outlook item(s) or files If e.Data.GetDataPresent("RenPrivateMessages") Or e.Data.GetDataPresent(DataFormats.FileDrop) Then ' Allow copying of the dragged data e.Effect = DragDropEffects.Copy End If End Sub Private Sub dgvDragDrop_DragDrop(sender As Object, e As DragEventArgs) Handles dgvDragDrop.DragDrop Try ' Check if the dragged data contains Outlook items If e.Data.GetDataPresent("FileGroupDescriptor") Then Dim dataObj As IDataObject = e.Data Dim formats As String() = dataObj.GetFormats() For Each format As String In formats If format.Contains("RenPrivateMessages") Then ' Get the dragged Outlook items Dim outlookItems As OutlookItems = CType(e.Data.GetData(format), OutlookItems) ' If Outlook items are present, process them as mail items If outlookItems IsNot Nothing Then For Each outlookItem As Object In outlookItems If TypeOf outlookItem Is Outlook.MailItem Then Dim mailItem As Outlook.MailItem = CType(outlookItem, Outlook.MailItem) ' Convert the mail item to a byte array Dim emailData As Byte() = GetEmailData(mailItem) ' Get the subject of the email Dim subject As String = mailItem.Subject ' Add the email data to the database AddEmailToDatabase(subject, emailData) End If Next MessageBox.Show("Emails added to the database successfully.") Exit Sub ' Exit the method if Outlook items are processed End If End If Next End If If e.Data.GetDataPresent(DataFormats.FileDrop) Then ' Get the array of file paths from the dragged data Dim files As String() = CType(e.Data.GetData(DataFormats.FileDrop), String()) ' Process each dragged file For Each filePath As String In files ' Get the file name and extension Dim fileName As String = Path.GetFileName(filePath) Dim fileExtension As String = Path.GetExtension(filePath) ' Read the file data into a byte array Dim fileData As Byte() = File.ReadAllBytes(filePath) ' Add the file data to the database AddFileToDatabase(fileName, fileExtension, fileData) Next End If MessageBox.Show("Items added to the database successfully.") Catch ex As Exception MessageBox.Show("Error occurred: " & ex.Message) End Try End Sub </code>
Private Sub dgvDragDrop_DragEnter(sender As Object, e As DragEventArgs) Handles dgvDragDrop.DragEnter

        ' Check if the dragged data contains Outlook item(s) or files
        If e.Data.GetDataPresent("RenPrivateMessages") Or e.Data.GetDataPresent(DataFormats.FileDrop) Then
            ' Allow copying of the dragged data
            e.Effect = DragDropEffects.Copy
        End If

    End Sub



 Private Sub dgvDragDrop_DragDrop(sender As Object, e As DragEventArgs) Handles dgvDragDrop.DragDrop

        Try
            ' Check if the dragged data contains Outlook items
            If e.Data.GetDataPresent("FileGroupDescriptor") Then
                Dim dataObj As IDataObject = e.Data
                Dim formats As String() = dataObj.GetFormats()

                For Each format As String In formats
                    If format.Contains("RenPrivateMessages") Then
                        ' Get the dragged Outlook items
                        Dim outlookItems As OutlookItems = CType(e.Data.GetData(format), OutlookItems)

                        ' If Outlook items are present, process them as mail items
                        If outlookItems IsNot Nothing Then
                            For Each outlookItem As Object In outlookItems
                                If TypeOf outlookItem Is Outlook.MailItem Then
                                    Dim mailItem As Outlook.MailItem = CType(outlookItem, Outlook.MailItem)

                                    ' Convert the mail item to a byte array
                                    Dim emailData As Byte() = GetEmailData(mailItem)

                                    ' Get the subject of the email
                                    Dim subject As String = mailItem.Subject

                                    ' Add the email data to the database
                                    AddEmailToDatabase(subject, emailData)
                                End If
                            Next

                            MessageBox.Show("Emails added to the database successfully.")
                            Exit Sub ' Exit the method if Outlook items are processed
                        End If
                    End If
                Next
            End If

            If e.Data.GetDataPresent(DataFormats.FileDrop) Then
                ' Get the array of file paths from the dragged data
                Dim files As String() = CType(e.Data.GetData(DataFormats.FileDrop), String())

                ' Process each dragged file
                For Each filePath As String In files
                    ' Get the file name and extension
                    Dim fileName As String = Path.GetFileName(filePath)
                    Dim fileExtension As String = Path.GetExtension(filePath)

                    ' Read the file data into a byte array
                    Dim fileData As Byte() = File.ReadAllBytes(filePath)

                    ' Add the file data to the database
                    AddFileToDatabase(fileName, fileExtension, fileData)
                Next
            End If

            MessageBox.Show("Items added to the database successfully.")
        Catch ex As Exception
            MessageBox.Show("Error occurred: " & ex.Message)
        End Try

    End Sub

Does anyone have any suggestion?

Thanks

Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa Dịch vụ tổ chức sự kiện 5 sao Thông tin về chúng tôi Dịch vụ sinh nhật bé trai Dịch vụ sinh nhật bé gái Sự kiện trọn gói Các tiết mục giải trí Dịch vụ bổ trợ Tiệc cưới sang trọng Dịch vụ khai trương Tư vấn tổ chức sự kiện Hình ảnh sự kiện Cập nhật tin tức Liên hệ ngay Thuê chú hề chuyên nghiệp Tiệc tất niên cho công ty Trang trí tiệc cuối năm Tiệc tất niên độc đáo Sinh nhật bé Hải Đăng Sinh nhật đáng yêu bé Khánh Vân Sinh nhật sang trọng Bích Ngân Tiệc sinh nhật bé Thanh Trang Dịch vụ ông già Noel Xiếc thú vui nhộn Biểu diễn xiếc quay đĩa Dịch vụ tổ chức tiệc uy tín Khám phá dịch vụ của chúng tôi Tiệc sinh nhật cho bé trai Trang trí tiệc cho bé gái Gói sự kiện chuyên nghiệp Chương trình giải trí hấp dẫn Dịch vụ hỗ trợ sự kiện Trang trí tiệc cưới đẹp Khởi đầu thành công với khai trương Chuyên gia tư vấn sự kiện Xem ảnh các sự kiện đẹp Tin mới về sự kiện Kết nối với đội ngũ chuyên gia Chú hề vui nhộn cho tiệc sinh nhật Ý tưởng tiệc cuối năm Tất niên độc đáo Trang trí tiệc hiện đại Tổ chức sinh nhật cho Hải Đăng Sinh nhật độc quyền Khánh Vân Phong cách tiệc Bích Ngân Trang trí tiệc bé Thanh Trang Thuê dịch vụ ông già Noel chuyên nghiệp Xem xiếc khỉ đặc sắc Xiếc quay đĩa thú vị
Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa
Thiết kế website Thiết kế website Thiết kế website Cách kháng tài khoản quảng cáo Mua bán Fanpage Facebook Dịch vụ SEO Tổ chức sinh nhật