Wenn ein Name mit resolveAll() nicht aufgelöst werden kann, will ich mit dem SelectNamesDialog den Namen entsprechend suchen und auswählen. Soweit so gut. Habe ein Beispiel gefunden, wo der zu suchende Name in Outlook.OlRecipientSelectors.olShowTo geschrieben wird.Wie kriege ich es hin, dass das Suchfeld oben in SelectNamesDialog mit dem zu suchenden Namen gefüllt wird. Wie heißt das Suchfeld? Wie spreche ich es an?
VB.NET-Quellcode
- Dim objOutlook As Outlook.Application = GetApplicationObject()
- Dim myRecipient As Outlook.Recipient
- Dim myRecipients As Outlook.Recipients
- Dim myMail As Outlook.MailItem
- Try
- myMail = CType(objOutlook.CreateItem(Outlook.OlItemType.olMailItem), _
- Outlook.MailItem)
- myRecipients = myMail.Recipients
- myRecipients.Add("Mayer, Max")
- myRecipients.ResolveAll()
- For Each myRecipient In myRecipients
- If myRecipient.Resolved Then
- Debug.Print(myRecipient.Address & " - " & myRecipient.Name)
- userName = myRecipient.Name
- Exit For
- Else
- Debug.Print("Alias für: " & userName & " konnte nicht aufgelöst werden!")
- For i As Integer = 1 To myRecipients.Count
- Dim snd As Outlook.SelectNamesDialog = _
- objOutlook.Session.GetSelectNamesDialog()
- snd.Recipients.Add(userName)
- snd.NumberOfRecipientSelectors = Outlook.OlRecipientSelectors.olShowTo
- snd.AllowMultipleSelection = False
- snd.Display()
- If Not (snd.Recipients.ResolveAll()) Then
- myRecipients.Remove(i)
- userName = ""
- Exit For
- Else
- myRecipients.Remove(i)
- myRecipients.Add(snd.Recipients(1).Name)
- userName = snd.Recipients(1).Name
- Exit For
- End If
- Next
- End If
- Next
- Catch ex As Exception
- Debug.Print(ex.ToString)
- End Try