![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Membre Confirmé
![]() Date d'inscription: avril 2008
Localisation: Lyon
Âge: 19
Messages: 225
|
Bonjour à tous,
Est-ce que quelqu'un saurait si un objet de type CContactItem dispose d'un ID unique qui permettrait de l'identifier (type clé primaire) ? Sinon je peux créer dans outlook un nouveau champ ("champ définis par l'utilisateur dans le dossier") faisant office de clé primaire mais dans ce cas la pourrais-je récupérer son contenu dans mon code (je pense que oui mais il va falloir implémenter les méthodes ? ) Une question plus précise serait : "Existe-t-il une collection d'objet de type CItem n'appartenant pas à Microsoft ?" (Donc que l'utilisateur a pu créer en rajoutant des champs, etc..) Merci. |
|
|
|
|
|
#2 (permalink) |
|
Membre Confirmé
![]() Date d'inscription: avril 2008
Localisation: Lyon
Âge: 19
Messages: 225
|
Je vais tenter d'être un peu plus précis :
J'ai créer un "champ définit par l'utilisateur dans le dossier" pour tout mes contacts. Je souhaiterais avoir accès à ce champ (via mon code). Existe-t-il une collection d'objet qui gère ce type de champ (champ non microsoft) ? Merci. PS : Je code en C++. |
|
|
|
|
|
#3 (permalink) |
|
Membre régulier
![]() |
Bonsoir,
ID : Le champs qui s'appelle EntryID Dans les champs des fiches contacts natif outlook tu as 4 champs qui s'appellent User1, User2, User3, User4 ils sont disponible pour stocker des types valeurs à définir au niveau formulaire Outlook. (==> un déploiement du formulaire sur les dossiers où tu souhaites utiliser le formulaire) Pour la création de champs personnalisés, tu as Userproperties. A bientôt, |
|
|
|
|
|
#4 (permalink) |
|
Membre Confirmé
![]() Date d'inscription: avril 2008
Localisation: Lyon
Âge: 19
Messages: 225
|
Donc si j'ai bien compris, ces 4 champs User1..4 ne sont pas utilisés par Outlook et sont destinés à être utilisés dans les formulaires persos de l'utilisateur ?
Sinon sur le champ EntryID, j'ai déjà jetté un coup d'oeil la dessus et j'ai pas trouvé comment le remplir, car plusieurs classes ont cette méthode. A quoi correspond exactement ce champ EntryID ? A quoi sert-il ? Et surtout une fois que je l'ai qu'est-ce que j'en fait ? ![]() Merci. PS : J'ai éssayé ça et il me dit "impossible d'exécuter l'opération, impossible de trouver un objet" Code :
sTest = spFolder.get_EntryID(); AfxMessageBox(sTest); CStorageItem spStorageItem = spFolder.GetStorage(sTest, 1); Dernière modification par SmOkEiSBaD ; 24/04/2008 à 09h34 |
|
|
|
|
|
#5 (permalink) |
|
Membre éprouvé
![]() Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 492
|
SAlut,
Ce n'est pas toi qui alimente EntryID mais OULTOOK. EntryID n'existe que sur les éléments enregistrés. GetItemFromID permet de trouver un élément avec son EntryID Code :
Dim StrEntryID As String If ObjCurrentMessage.EntryID = "" Then ObjCurrentMessage.Save StrEntryID = ObjCurrentMessage.EntryID Dim olNS As Outlook.NameSpace Dim msg As Outlook.MailItem Set olNS = Application.GetNamespace("MAPI") Set msg = olNS.GetItemFromID(StrEntryID )
__________________
Have a nice day. ![]() Oliv' OUI à l'utilisation, NON au « copillage » Merci de citer la source |
|
|
|
|
|
#6 (permalink) |
|
Membre Confirmé
![]() Date d'inscription: avril 2008
Localisation: Lyon
Âge: 19
Messages: 225
|
Si j'ai créé et remplis le champ à la main et que je souhaite seulement le lire. Il ne considère pas cela comme un élément enregistré ?
Ou c'est le folder qui n'est pas enregistré ? |
|
|
|
|
|
#7 (permalink) |
|
Membre éprouvé
![]() Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 492
|
Pas bien compris ta réponse mais EntryID est en lecture seule donc pas possible de le modifier.
EntryID correspond un peu à un ID automatique d'une bse de donnée.
__________________
Have a nice day. ![]() Oliv' OUI à l'utilisation, NON au « copillage » Merci de citer la source |
|
|
|
|
|
#8 (permalink) |
|
Membre Confirmé
![]() Date d'inscription: avril 2008
Localisation: Lyon
Âge: 19
Messages: 225
|
Rebonjour,
Oui j'ai bien compris, mais je ne cherche pas à le modifier moi. Je récupère le EntryID de mon folder (entre autre le folder des contacts) pour ensuite récupérer le StorageItem qu'il y a derrière le folder. Le truc c'est que la fonction getStorage prend en paramètre l'EntryID et le mode d'accès. voir : http://msdn2.microsoft.com/en-us/library/bb147821.aspx http://msdn2.microsoft.com/en-us/library/bb208140.aspx Apparement il faut utiliser les objets de type CStorageItem pour lire les champs perso (entre eux celui que j'ai rajouté à la main). Merci. |
|
|
|
|
|
#9 (permalink) |
|
Membre éprouvé
![]() Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 492
|
Je ne connais pas StorageItem c'est nouveau dans 2007 à quoi cela sert 'il à stocker des documents ?
__________________
Have a nice day. ![]() Oliv' OUI à l'utilisation, NON au « copillage » Merci de citer la source |
|
|
|
|
|
#10 (permalink) |
|
Membre régulier
![]() |
Bonjour,
Il manque la définition de ton MAPIFolder (spFolder) je connais rien en C++ mais je ne connais pas la fonction get_EntryID() et Getstorage. Code :
sTest = spFolder.get_EntryID(); AfxMessageBox(sTest); CStorageItem spStorageItem = spFolder.GetStorage(sTest, 1); tu définis le chemin de ton MAPIFolder et sa collection Item. Ensuite il te suffit d'interroger la propriété EntryID. A bientôt, Dernière modification par Dolphy35 ; 25/04/2008 à 15h15 |
|
|
|
|
|
#11 (permalink) |
|
Membre Confirmé
![]() Date d'inscription: avril 2008
Localisation: Lyon
Âge: 19
Messages: 225
|
C'est une bonne question xD
J'ai découvert Outlook, son modèle, etc.. il y a deux semaines de cela, j'apprend donc tous les jours sur le sujet. J'éspère que quelqu'un pourra nous renseigner. |
|
|
|
|
|
#12 (permalink) | |
|
Membre Confirmé
![]() Date d'inscription: avril 2008
Localisation: Lyon
Âge: 19
Messages: 225
|
Citation:
Moi je ne connais pas VB et c'est vrai que la plupart des exemples sur Outlook sont en VB ![]() Sinon j'ai bien l'impression que je fait la même chose dans mon programme 1- Je récupère une appli. outlook 2- Je récupère le NameSpace de cette même appli. 3- Je récupère le répertoire des contacts (Type MAPIFolder) 4- Je parcourt tout mes contacts et récupère les champs qui m'intérressent, pour ce faire je récupère chacun de mes contacts dans un objet de type CContactItem Le problème est là, je souhaite récupérer le contenu d'un champ que j'ai créé à la main dans Outlook en plus des champs de base. Comment récupère-t-on ce champ perso. ? Merci PS : Mon code compile sans erreurs et sans warnings, c'est à l'exécution qu'il me dit "Impossible d'exécuter l'opération. Objet introuvable." Dernière modification par SmOkEiSBaD ; 24/04/2008 à 17h18 |
|
|
|
|
|
|
#13 (permalink) |
|
Membre Confirmé
![]() Date d'inscription: avril 2008
Localisation: Lyon
Âge: 19
Messages: 225
|
Puisse mon code éclairer vos lanternes...
Code C++ / MFC : Code :
//Déclarations
CApplication spAppli;
CMAPIFolder spFolder;
CNameSpace spNameSpace;
CString sTest;
//Création d'un smart pointer sur une application Outlook
spAppli.CreateDispatch(_T("Outlook.Application"));
AfxMessageBox(_T("Application Outlook ouverte"));
//Récupération du Namespace
spNameSpace = spAppli.GetNamespace(_T("MAPI"));
//Récupération du répertoire des contacts
spFolder = spNameSpace.GetDefaultFolder(10);
//Récupération des contacts et de leurs informations
AfxMessageBox(_T("Récupération des informations sur les contacts..."));
CItems spItem(spFolder.get_Items());
//On traite le premier contact
CContactItem spContactItem(spItem.GetFirst());
sTest = spFolder.get_EntryID();
AfxMessageBox(sTest);
CStorageItem spStorageItem = spFolder.GetStorage(sTest, 1);
Dernière modification par SmOkEiSBaD ; 25/04/2008 à 12h01 |
|
|
|
|
|
#14 (permalink) |
|
Membre éprouvé
![]() Date d'inscription: mars 2006
Localisation: Tourcoing
Âge: 37
Messages: 492
|
Bonjour
Si j'ai bien compris tu veux atteindre des champs de formulaires que tu as créé ? regarde du coté de l'objet "UserProperty" de ton item.
__________________
Have a nice day. ![]() Oliv' OUI à l'utilisation, NON au « copillage » Merci de citer la source |
|
|
|
|
|
#15 (permalink) |
|
Membre Confirmé
![]() Date d'inscription: avril 2008
Localisation: Lyon
Âge: 19
Messages: 225
|
Bonjour,
En fait j'ai rajouter les champs sur tout mes contacts à la main. J'ai effectivement trouvé 2-3 indices du côté de "UserProperty" mais pour le moment rien de concret. Merci. |
|
|
|
![]() |
![]() |
||
Accès nouveau champ Outlook
|
||
Offres d'
emploi informatique
sur Lesjeudis.com
|
| Outils de la discussion | |
|
|