Cannot Create Folder -- VB.NET

R

Randy Given

Last chance for VB.NET on this one. I tried another way and got errors,
also am with this approach. Googling turns up more people with same problem,
but no solution.

This works under my login. I try under another login and it fails. In the
other login, I can open the PST and read it, add to it, delete from it,
etc., but this will not work programmatically. The kicker is that the
similar code works fine under VB6 using the same PST source and destination
and same login.

In the following code, I get the error at the "Folders.Add" that it
cannot create the folder. The source is a normal PST. The destination is a
shell or template that has only Deleted Items and Search Folders. This
folder is supposed to create the appropriate folder.

Any ideas? If not, it's VB6 for this puppy.

---

Public Function CopyMailFromReferenceToTarget(ByVal uniqueMailId As
String) As Boolean Implements IMailAdapter.CopyMailFromReferenceToTarget

Dim copyFolder As Outlook.MAPIFolder
Dim itemToBeAdded As Object
Dim itemCopy As Object
Dim itemParent As Outlook.MAPIFolder

Try
CopyMailFromReferenceToTarget = True

If _mailApp Is Nothing Then
Throw New ApplicationException("Object not initialized.
Initialize the object first.")
End If

If _referenceMailDatabase Is Nothing Then
Throw New ApplicationException("Reference Pst file not set. Set
it first.")
End If

'Get the mail to be added from reference personal folder
itemToBeAdded = GetItem(uniqueMailId,
_referenceMailDatabase.StoreID)

'Make the copy of the mail
itemCopy = itemToBeAdded.Copy()

'Get the folder where to copy
itemParent = itemToBeAdded.Parent

If _targetMailDatabase Is Nothing Then
Throw New ApplicationException("Target Pst file not set. Set it
first.")
End If

Select Case itemParent.DefaultItemType
Case 9
_targetMailDatabase.Folders.Add(itemParent.Name,
Outlook.OlDefaultFolders.olFolderCalendar)
Case 10
_targetMailDatabase.Folders.Add(itemParent.Name,
Outlook.OlDefaultFolders.olFolderContacts)
Case 13
_targetMailDatabase.Folders.Add(itemParent.Name,
Outlook.OlDefaultFolders.olFolderTasks)
Case 11
_targetMailDatabase.Folders.Add(itemParent.Name,
Outlook.OlDefaultFolders.olFolderJournal)
Case 12
_targetMailDatabase.Folders.Add(itemParent.Name,
Outlook.OlDefaultFolders.olFolderNotes)
Case 6
_targetMailDatabase.Folders.Add(itemParent.Name,
Outlook.OlDefaultFolders.olFolderInbox)
Case 16
_targetMailDatabase.Folders.Add(itemParent.Name,
Outlook.OlDefaultFolders.olFolderDrafts)
Case Else
_targetMailDatabase.Folders.Add(itemParent.Name)
End Select

copyFolder = GetFolder(itemParent.FolderPath, _targetMailDatabase)

'Copy the mail to the desired mail datababase
itemCopy.Move(copyFolder)

Catch ex As Exception
NotifyUser(ex.Message, MessageBoxIcon.Error)
CopyMailFromReferenceToTarget = False

Finally
FreeComObject(itemCopy)
FreeComObject(itemToBeAdded)
FreeComObject(copyFolder)
FreeComObject(itemParent)
End Try

End Function

---
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top