IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Comment r�cup�rer les contacts outlook 2007 en C++ ?


Sujet :

C++

  1. #1
    Membre �clair� Avatar de SmOkEiSBaD
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    234
    D�tails du profil
    Informations personnelles :
    �ge : 36
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Avril 2008
    Messages : 234
    Par d�faut Comment r�cup�rer les contacts outlook 2007 en C++ ?
    Bonjour,
    Actuellement en stage, je recherche les diff�rentes fa�ons d'acc�der/r�cup�rer des contacts outlook 2007.
    Apr�s de nombreuses recherche sur le web, j'ai trouv� des solutions en C#/.net, mais rien de tr�s pr�cis en ce qui concerne le C++. Il semblerait qu'il y ai une possibilit� de le faire avec les MFC mais rien de bien pr�cis non plus.
    De plus j'ai cherch� s'il n'existait pas une librairie permettant l'int�raction avec outlook, apparement non.
    C'est pourquoi je m'en remet � vous, si quelqu'un peut m'aider ou m'orienter, cela m'aiderais beaucoup.
    Merci.

  2. #2
    Membre tr�s actif
    Avatar de ProgVal
    Homme Profil pro
    �tudiant
    Inscrit en
    Mai 2006
    Messages
    636
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 31
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mai 2006
    Messages : 636
    Par d�faut
    Il me semble que le formatage des donn�es n'est pas tr�s complexe...
    Pour acc�der aux contacts, regarde dans ton PC, dans les r�pertoires d�rivants de cette adresse:
    C:\Documents and Settings\NUM_D_UTILISATEUR\Application Data

  3. #3
    Membre �clair� Avatar de SmOkEiSBaD
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    234
    D�tails du profil
    Informations personnelles :
    �ge : 36
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Avril 2008
    Messages : 234
    Par d�faut
    Je ne crois pas que ce soit comme cela que je doive y acc�der. Je suis �quip� de Visual Studio 2008 ainsi que du SDK OFFICE 2007.
    Apparement il y aurait une classe "Microsoft.Office.Interop.Outlook.Application" que l'on pourrait instancier et ainsi avoir acc�s � ces m�thodes, dont celle qui permet de parcourir les contacts outlook.
    Le probl�me est que je ne connais pas les include pour acc�der � cette classe et je n'arrive pas � l'instancier..
    Si quelqu'un peut m'aider...

  4. #4
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Il faut l'instancier avec COM/OLE.
    Un truc du genre:
    Code pseudo-C++ : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    OleInitialize();
    CLSID clsid;
    ILInterfaceQueTuVeux *pIface;
    CLSIDFromString(OLESTR("Outlook.Application"), &clsid);
    CoCreateInstance(clsid, NULL, CLSCTX_LOCAL_SERVER, IID_ILInterfaceQueTuVeux, (void**)&pIface);
     
    ... Bosser avec l'interface voulue et sans doute d'autres aussi
     
    pIface->Release();
    pIface = NULL;
    OleUninitialize();
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Apr�s, selon les biblioth�ques employ�es (MFC, Compiler COM Support...), tu peux avoir des classes qui permettent de g�rer les interfaces COM sans trop te prendre la t�te...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre �clair� Avatar de SmOkEiSBaD
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    234
    D�tails du profil
    Informations personnelles :
    �ge : 36
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Avril 2008
    Messages : 234
    Par d�faut
    Ok, je vais essay� avec �a mais pour tout vous avouer, je ne connais rien au SDK et encore moin � Outlook, j'ai donc beaucoup de mal � comprendre ce que je doit faire..
    Merci de votre aide en tout cas!

  7. #7
    Membre �clair� Avatar de SmOkEiSBaD
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    234
    D�tails du profil
    Informations personnelles :
    �ge : 36
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Avril 2008
    Messages : 234
    Par d�faut
    Rebonjour,
    J'ai eu des pr�cisions sur la mani�re dont je devait proc�der, en effet, je dois utiliser les MFC afin de r�cup�rer les contacts, les calendriers et eventuellement les messages pour les stocker dans une base.
    Merci.

  8. #8
    Membre �clair� Avatar de SmOkEiSBaD
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    234
    D�tails du profil
    Informations personnelles :
    �ge : 36
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Avril 2008
    Messages : 234
    Par d�faut
    Bon j'ai de nouveau un probl�me,
    Je souhaiterais d�clarer

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    class OleInitClass {
    	public:
          OleInitClass() {
             OleInitialize(NULL);
          }
          ~OleInitClass() {
           OleUninitialize();
          }
       };
    Seulement cette d�claration n�cessite un include de type msoutl.h pour les version < 2007. Impossible de trouver celui de la version 2007, il semblerait qu'un msoutl.olb devrait le remplacer mais cela ne marche pas.
    Si quelqu'un connait ce .h, merci.

  9. #9
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Je ne comprends pas en quoi cette d�claration de classe n�cessite msoutl.h.
    La fonction OleInitialize() est d�clar�e dans <ole2.h>...

    Note: Le .olb s'utilise avec #import ou avec les assistants MFC, pas avec #include.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  10. #10
    Membre �clair� Avatar de SmOkEiSBaD
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    234
    D�tails du profil
    Informations personnelles :
    �ge : 36
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Avril 2008
    Messages : 234
    Par d�faut
    Effectivement, j'ai �ssay� d'importer ce ole2.h, et j'obtient un message d'erreur me disant :
    fatal error C1083: Impossible d'ouvrir le fichier biblioth�que de types : 'c:\program files\microsoft sdks\windows\v6.0a\include\ole2.h' : Erreur lors du chargement de la biblioth�que/DLL du type. c
    De plus j'ai trouv� ceci sur internet :
    Comment utiliser un Mod�le d'objet Outlook � partir de Visual C++ � l'aide d'une instruction import
    http://support.microsoft.com/kb/259298/fr

    Seulement ils utilisent des versions ant�rieurs de Outlook, sur la 2007, j'ai beau cherch� un mso.dll, il n'y a rien.. La seule chose que j'ai trouv�e est "msout.olb".

    J'ai �galement trouv� ceci :
    http://support.microsoft.com/kb/2206...d=2559&sid=490

    Mais rebelotte, aucun .h de type msoutl??.. Je ne sais donc pas quoi faire, j'ai scrut� tout le dossier sdks/include ainsi que tout le dossier Microsof Office/Office12...

    Merci.

  11. #11
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    ole2.h ne s'importe pas, il s'inclut.
    Par contre, le .olb s'utilise avec les assistants ou avec #import.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  12. #12
    Membre �clair� Avatar de SmOkEiSBaD
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    234
    D�tails du profil
    Informations personnelles :
    �ge : 36
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Avril 2008
    Messages : 234
    Par d�faut
    Oui, j'ai fait :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    #import "C:\Program Files\Microsoft Office\Office12\msoutl.olb"
    Apparement le import fonctionne mais apr�s il me met plein d'erreur dans le code du .tlh qu'il g�n�re avec le #import.

    Comment fonctionne ces assistants ? A quoi servent-ils ?

  13. #13
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Les assistants MFC g�n�rent des classes qui facilitent l'utilisation des objets COM d'Office. Malheureusement, je ne m'en suis jamais servi.

    Quelles sont les erreurs que tu obtiens avec le tlh?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  14. #14
    Membre �clair� Avatar de SmOkEiSBaD
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    234
    D�tails du profil
    Informations personnelles :
    �ge : 36
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Avril 2008
    Messages : 234
    Par d�faut
    Des erreurs basique du style :
    Pas de type de retour pour cette fonction, Pas de d�claration pour cet objet, ou Sp�cificateur de type manquant etc...

    Je ne comprend pas du tout ce qui ce passe.

  15. #15
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    V�rifie que ce n'est pas tout simplement un header qui manque: <windows.h>, <ole2.h>, etc.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  16. #16
    Membre �clair� Avatar de SmOkEiSBaD
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    234
    D�tails du profil
    Informations personnelles :
    �ge : 36
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Avril 2008
    Messages : 234
    Par d�faut
    J'ai v�rifi�, apparement �a ne vien pas de la..

    Apparement, il y aurait des probl�mes avec les #import, des comptages de r�f�rences qui ne fonctionne pas avec les applications Office.

    Tout ce que je sais c'est que je dois utiliser les MFC... Je sais pas trop comment mais bon...

    Mais si dans un premier temps on pouvait me lister toutes les possibilit�es de r�cup�ration des contacts outlook (m�me dans des autres langages que le C++) cela m'aiderait peut-�tre � comprendre 2-3 trucs...

    Pour le moment j'ai trouv� diff�rentes m�thodes d'automatisation de module outlook :
    Trois fa�ons d'utiliser Automation � partir de Visual C++
    Il existe trois fa�ons principales d'utiliser Automation : MFC, #import et C/C++ :
    � Avec MFC, utilisez Visual C++ ClassWizard pour g�n�rer des "classes wrapper " � partir des biblioth�ques de types Microsoft Office. Ces classes, ainsi que d'autres classes MFC, telles que COleVariant, COleSafeArray et COleException, simplifient les t�ches d'Automation. Cette m�thode est g�n�ralement pr�f�r�e aux autres, et la plupart des exemples de la Base de connaissances Microsoft utilisent MFC.
    � #import, une nouvelle directive qui est devenue disponible avec Visual C++ 5.0, cr�e des "pointeurs intelligents" VC++ � partir d'une biblioth�que de types sp�cifi�e. Elle est tr�s puissante, mais rarement conseill�e en raison de probl�mes de comptage des r�f�rences qui se produisent g�n�ralement lorsqu'elle est utilis�e avec les applications Microsoft Office.
    � L'automation C/C++ est bien plus difficile, mais parfois n�cessaire pour �viter une surcharge avec MFC ou des probl�mes avec #import. Vous travaillerez essentiellement avec des API telles que CoCreateInstance(), et des interfaces COM telles que IDispatch et IUnknown.

  17. #17
    Membre �clair� Avatar de SmOkEiSBaD
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    234
    D�tails du profil
    Informations personnelles :
    �ge : 36
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Avril 2008
    Messages : 234
    Par d�faut
    En fait ma question est :
    Comment puis-je utiliser le mod�le objet de outlook avec C++ et MFC ?
    Quels include ? Comment ? etc...

  18. #18
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Utilisation des wrappers MFC sous Visual Studio 2005:
    1. Class View -> Add -> Class
    2. Dans la bo�te de dialogue, s�lectionner "class from ActiveX control"
    3. Dans la nouvelle bo�te de dialogue, s�lectionner dans la combobox "Microsoft Outlook 12.0 Object Library", puis cliquer sur le bouton ">>" (ou bien, s�lectionne manuellement les classes et interfaces dont tu penses avoir besoin gr�ce � la doc du SDK outlook).
      • Si tu veux mettre tout dans le m�me fichier d'en-t�te, change-le pour toutes les classes de la Listbox de droite (c'est long, le copier-coller peut �tre utile).
    4. Dans chaque fichier d'en-t�te utilis�, mettre en commentaire la ligne contenant le #import, car elle est inutile.
    5. Et hop, chez moi, ce code compile et s'ex�cute correctement:
      Code C++ : S�lectionner tout - Visualiser dans une fen�tre � part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      #include "Stdafx.h"
      #include "COleInit.hpp" //ma version de COleInit, mettre la tienne à la place
      #include "CApplication.h"
       
      void TestOutlook(void)
      {
      	FbtUtil::COleInit init; //ma version de COleInit, mettre la tienne à la place
      	CApplication app;
      	BOOL bOK = app.CreateDispatch(_T("Outlook.Application"));
      	if(bOK)
      	{
      		AfxMessageBox(_T("Application outlook créée"));
      		app.Quit();
      	}
      }

    NOTE: Par contre, je te conseille d'utiliser le Compiler COM Support � la place, car en C++ il sera plus efficace (et je pense, plus rapide) que les wrappers MFC (acc�s direct plut�t qu'acc�s par IDispatch).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  19. #19
    Membre �clair� Avatar de SmOkEiSBaD
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    234
    D�tails du profil
    Informations personnelles :
    �ge : 36
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Avril 2008
    Messages : 234
    Par d�faut
    Et bien �coute, merci bien pour toutes ces informations, je commence � comprendre un peu mieu le fonctionnement de tout ce bazar
    Je vais essayer tout �a et je te tient au courant.

    PS : Je suis sous VS2008 je ne pense pas que cela soit tr�s diff�rent mais bon on sait jamais.

  20. #20
    Membre �clair� Avatar de SmOkEiSBaD
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    234
    D�tails du profil
    Informations personnelles :
    �ge : 36
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Avril 2008
    Messages : 234
    Par d�faut
    Comment puis-je trouver ma version de COleInit ?
    Cela doit surment �tre une question d�bile mais je d�couvre

    De plus au moment de la cr�ation de la classe j'ai :
    - Microsoft Office Outlook View Control <1.0>
    - Avec comme interface : IViewCtl
    - Microsoft.VisualStudio.OfficeTools.Controls.UnmanagedWrapper.dll <1.0>
    - Avec comme interface : IActiveXWrapper

    J'ai choisi Microsoft.VisualStudio... Je ne sais pas si c'est la bonne.

+ R�pondre � la discussion
Cette discussion est r�solue.
Page 1 sur 2 12 Derni�reDerni�re

Discussions similaires

  1. comment r�cup�rer les donn�es dans contact sur une feuille excel?
    Par Granfred dans le forum Macros et VBA Excel
    R�ponses: 1
    Dernier message: 15/01/2009, 15h02
  2. R�ponses: 11
    Dernier message: 22/04/2008, 11h54
  3. R�ponses: 2
    Dernier message: 22/08/2007, 12h46
  4. R�ponses: 4
    Dernier message: 28/03/2007, 13h47
  5. [WebForms][2.0] R�cup�rer les contacts Outlook
    Par fix105 dans le forum G�n�ral Dotnet
    R�ponses: 7
    Dernier message: 11/01/2007, 16h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo