Affichage de la boîte de dialogue Sélectionner des noms pour résoudre des destinataires
Cet exemple essaie de résoudre les destinataires fournis par le paramètre recips et affiche la boîte de dialogue Sélectionner des noms d’Outlook pour chaque destinataire ambigu ne pouvant être résolu.
Exemple
Cet exemple de code appelle l'objet SelectNamesDialog afin d'afficher la boîte de dialogue Sélectionner des noms qui contient le carnet d'adresses Outlook. Cette boîte de dialogue permet à l’utilisateur de sélectionner un nom dans le carnet d’adresses. Si ce nom n’est pas résolu, le destinataire est supprimé de recips. S’il est résolu, l’exemple de code renvoie l’objet AddressEntry du destinataire à recips.
Si vous utilisez Visual Studio pour tester cet exemple de code, vous devez d’abord ajouter une référence au composant Bibliothèque d’objets Microsoft Outlook 15.0 et spécifier la variable lorsque vous importez l’espace de noms Microsoft.Office.Interop.Outlook. L'instruction Importer ou utilisation ne doit pas se produire juste avant les fonctions de l'exemple de code, mais doit être ajoutée avant la déclaration publique. Les lignes de code suivantes montrent comment effectuer l’importation et l’affectation dans Visual Basic et dans C#.
Imports Outlook = Microsoft.Office.Interop.Outlook
using Outlook = Microsoft.Office.Interop.Outlook;
Private Sub ResolveRecipients(ByVal recips As Outlook.Recipients)
If recips Is Nothing Then
Throw New ArgumentNullException()
End If
If recips.ResolveAll() Then
Return
Else
For i As Integer = recips.Count To 1 Step -1
If Not (recips(i).Resolve()) Then
Dim snd As Outlook.SelectNamesDialog = _
Application.Session.GetSelectNamesDialog()
snd.Recipients.Add(recips(i).Name)
snd.NumberOfRecipientSelectors = _
Outlook.OlRecipientSelectors.olShowTo
snd.AllowMultipleSelection = False
snd.Display()
If Not (snd.Recipients.ResolveAll()) Then
recips.Remove(i)
Else
recips.Remove(i)
recips.Add(snd.Recipients(1).Address)
End If
snd = Nothing
End If
Next
End If
End Sub
private void ResolveRecipients(Outlook.Recipients recips)
{
if (recips == null)
{
throw new ArgumentNullException();
}
if (recips.ResolveAll())
{
return;
}
else
{
for (int i = recips.Count; i > 0; i--)
{
if (!recips[i].Resolve())
{
Outlook.SelectNamesDialog snd =
Application.Session.
GetSelectNamesDialog();
snd.Recipients.Add(recips[i].Name);
snd.NumberOfRecipientSelectors =
Outlook.OlRecipientSelectors.olShowTo;
snd.AllowMultipleSelection = false;
snd.Display();
if (!snd.Recipients.ResolveAll())
{
recips.Remove(i);
}
else
{
recips.Remove(i);
recips.Add(snd.Recipients[1].Address);
}
snd = null;
}
}
}
}