Bonjour,
Actuellement en travail sur un projet MFC / Outlook, je tente d'accéder à un champ personnalisé (rajouter sur les contacts) que j'ai créé à la main dans outlook.
Pour ce faire, j'ai fait un programme MFC qui utilise le modèle objet de Outlook. Pour l'instant, j'arrive à récupérer les contacts (CContactItem) à lire les champs qui sont de base de Outlook (Nom, Prénom, etc...), mais impossible de récupérer ce fameux champ perso.

Après plusieurs recherches ainsi que de l'aide de Developpez.com, je me suis orienté vers la classe CUserProperties qui semblerait être la solution.

Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
VARIANT vVariant;
vVariant.vt = VT_BOOL;
vVariant.boolVal = FALSE;

CContactItem spContactItem(spItem.GetFirst());
CUserProperties spUserProperties = spContactItem.get_UserProperties();
CUserProperties spChamp = spUserProperties.Find(_T("Toto"), vVariant);
C'est apparment la fonction "Find" qui permet de rechercher un champ par son nom à partir de l'objet de type CUserProperties qui vient lui même d'un objet CContactItem.

Le problème est que peu importe le nom de champ que je donne à "Find", elle ne génère pas d'erreur (à l'exécution) à partir du moment ou le deuxième paramètre est à "vrai".
Dès que je passe ce dernier à "faux", elle génère l'erreur (à l'exécution) "Nom inconnu" (même si je cherche les champs Nom ou Prénom de base dans Outlook).

Je ne comprend pas trop ce qui ce passe. Si quelqu'un peut m'aider.

J'ai trouver ceci si ça peut vous aider : http://msdn2.microsoft.com/en-us/library/bb207097.aspx

Merci.