C# + outlook + exchange: afficher contacts

warenbe Messages postés 145 Date d'inscription dimanche 2 décembre 2001 Statut Membre Dernière intervention 10 septembre 2009 - 1 avril 2008 à 11:13
warenbe Messages postés 145 Date d'inscription dimanche 2 décembre 2001 Statut Membre Dernière intervention 10 septembre 2009 - 1 avril 2008 à 11:15
hello

voila j'ai une question pour les pro d'outlook et exchange

un client a un outlook sur son ordinateur. sur un serveur il y a exchange d'installé. donc il a des contacts qui sont sur le serveur exchange.

mon but est de rechercher un contact par son numero de telephone sur outlook ET sur exchange...
donc moi voila ce que je me pose comme questions:

- outlook est il en continu synchronisé avec exchange
- les contacts de l'utilisateur sont ils sur le serveur exchange ou directement sur le disque dur d'outlook

pour preciser un peu voici le code qui va chercher les contacts d'outlook grace au numero.


Code :
Code :
Outlook.Application app = new Outlook.ApplicationClass();//On crée un objet Outlook
Outlook.NameSpace NS = app.GetNamespace("MAPI" );
Outlook.MAPIFolder objFolder = NS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderContacts);
Outlook.Items contactItems = objFolder.Items;//On récupère les contacts dans le outlook ouvert
Outlook.Items contact_filtre = contactItems.Restrict(String.Format("[AssistantTelephoneNumber]='{0}' or [Business2TelephoneNumber]='{0}' or [BusinessTelephoneNumber]='{0}' or [HomeTelephoneNumber]='{0}' or [CompanyMainTelephoneNumber]='{0}' or [Home2TelephoneNumber]='{0}' or [HomeTelephoneNumber]='{0}' or [MobileTelephoneNumber]='{0}' or [OtherTelephoneNumber]='{0}' or [PrimaryTelephoneNumber]='{0}' or [RadioTelephoneNumber]='{0}' or [TTYTDDTelephoneNumber]='{0}'",num));
//On filtre les contacts Outlook et en fontion du nombre de reponse on les affiche différement
switch (contact_filtre.Count)
{
case 0:
break;
case 1:
Outlook.ContactItem contact = (Outlook.ContactItem)contact_filtre.GetLast();
contact.Display(false);
break;
default :
ComboBox cb = new ComboBox();
foreach (Outlook.ContactItem contact_multi in contact_filtre)
{
cb.Items.Add(contact_multi.FullName);
}
Form frm = new frmContacts(cb, contactItems);//on crée un nouveau formulaire permettant de choisir le contact à afficher
frm.Show();
break;
}







jusqu'ici pas de soucis: les contacts contenus dans outlook s'affichent sans soucis

voila ma question bien précisée:

- les contacts partagé sur le serveur exchange (je parle des contacts de l'utilisateur) seront ils bien vu de cette maniere? (outlook se synchronise t il en continu?)

- si on defini des contacts publics visibles par tout le monde sur le serveur exchange, seront ils automatiquement synchronisés avec les outlook et donc visibles par ce code? si non, comment y acceder?
j'ai vu beaucoup de choses sur CDO, MAPI, WEBDAV etc etc, mais je ne sais pas trop quel est leur interet/simplicité/fonctionnalité/stabilité

voila voila
j'espere avoir été clair

merci d'avance
warenbe

1 réponse

warenbe Messages postés 145 Date d'inscription dimanche 2 décembre 2001 Statut Membre Dernière intervention 10 septembre 2009
1 avril 2008 à 11:15
Oula!

opera n'est toujours pas bien gere
je me permet de remettre ma question bien formattée (j'espere) car je trouve pas d'option d'edition



hello

voila j'ai une question pour les pro d'outlook et exchange

un client a un outlook sur son ordinateur. sur un serveur il y a exchange d'installé. donc il a des contacts qui sont sur le serveur exchange.

mon but est de rechercher un contact par son numero de telephone sur outlook ET sur exchange...
donc moi voila ce que je me pose comme questions:

- outlook est il en continu synchronisé avec exchange
- les contacts de l'utilisateur sont ils sur le serveur exchange ou directement sur le disque dur d'outlook

pour preciser un peu voici le code qui va chercher les contacts d'outlook grace au numero.


Code :
Code :
Outlook.Application app = new Outlook.ApplicationClass();//On crée un objet Outlook
Outlook.NameSpace NS = app.GetNamespace("MAPI" );
Outlook.MAPIFolder objFolder = NS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderContacts);
Outlook.Items contactItems = objFolder.Items;//On récupère les contacts dans le outlook ouvert
Outlook.Items contact_filtre = contactItems.Restrict(String.Format("[AssistantTelephoneNumber]='{0}' or [Business2TelephoneNumber]='{0}' or [BusinessTelephoneNumber]='{0}' or [HomeTelephoneNumber]='{0}' or [CompanyMainTelephoneNumber]='{0}' or [Home2TelephoneNumber]='{0}' or [HomeTelephoneNumber]='{0}' or [MobileTelephoneNumber]='{0}' or [OtherTelephoneNumber]='{0}' or [PrimaryTelephoneNumber]='{0}' or [RadioTelephoneNumber]='{0}' or [TTYTDDTelephoneNumber]='{0}'",num));
//On filtre les contacts Outlook et en fontion du nombre de reponse on les affiche différement
switch (contact_filtre.Count)
{
case 0:
break;
case 1:
Outlook.ContactItem contact = (Outlook.ContactItem)contact_filtre.GetLast();
contact.Display(false);
break;
default :
ComboBox cb = new ComboBox();
foreach (Outlook.ContactItem contact_multi in contact_filtre)
{
cb.Items.Add(contact_multi.FullName);
}
Form frm = new frmContacts(cb, contactItems);//on crée un nouveau formulaire permettant de choisir le contact à afficher
frm.Show();
break;
}







jusqu'ici pas de soucis: les contacts contenus dans outlook s'affichent sans soucis

voila ma question bien précisée:

- les contacts partagé sur le serveur exchange (je parle des contacts de l'utilisateur) seront ils bien vu de cette maniere? (outlook se synchronise t il en continu?)

- si on defini des contacts publics visibles par tout le monde sur le serveur exchange, seront ils automatiquement synchronisés avec les outlook et donc visibles par ce code? si non, comment y acceder?
j'ai vu beaucoup de choses sur CDO, MAPI, WEBDAV etc etc, mais je ne sais pas trop quel est leur interet/simplicité/fonctionnalité/stabilité

voila voila
j'espere avoir été clair

merci d'avance
warenbe
0
Rejoignez-nous