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++Builder Discussion :

Drag n drop d'Outlook -> Application [IDE]


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 80
    Points : 53
    Points
    53
    Par défaut Drag n drop d'Outlook -> Application
    Bonjour,

    N'ayant vu aucunes informations sur ce sujet, je m'en revient donc à vous.

    Voila j'aimerai faire un drag n drop entre Outlook et mon Application. Plus précisément insérer par drag n drop un email dans mon application.

    J'ai essayé avec ce procédé ( cf : FAQ ) mais rien n'y fait, mon appli n'arrive pas à interpréter le fichier :

    BEGIN_MESSAGE_MAP
    MESSAGE_HANDLER(WM_DROPFILES, TMessage, WMDropFiles);
    END_MESSAGE_MAP(TForm)

    DragAcceptFiles(Handle, true);


    Merci d'avance de vos réponses.

  2. #2
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Citation Envoyé par Sixpounder Voir le message
    J'ai essayé avec ce procédé ( cf : FAQ ) mais rien n'y fait, mon appli n'arrive pas à interpréter le fichier
    Le problème est que ce n'est pas un fichier que tu drop. Donc, c'est normal que sa ne fonctionne pas.

    Outlook génère un fichier (.msg) quand tu drop le email dans explorer. Si tu le drop par exemple dans ta fenêtre de code de C++Builder tu auras seulement accès aux informations des colonnes.
    • Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur. - Dave Barry
    • Je n'ai pas peur des ordinateurs. J'ai peur qu'ils viennent à nous manquer. - Isaac Asimov
    • Le code source est comme une belle femme, plus on le regarde, plus on trouve des défauts. - Crayon

  3. #3
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Une solution pourrait être l'utilisation de OLE, pour plus de détail va voir: http://msdn.microsoft.com/en-us/libr...8VS.85%29.aspx

    Apparemment, c'est vraiment difficile à utiliser, donc je te conseil de jeter un coup d'oeil sur les composants de Anders Melander sur http://melander.dk
    • Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur. - Dave Barry
    • Je n'ai pas peur des ordinateurs. J'ai peur qu'ils viennent à nous manquer. - Isaac Asimov
    • Le code source est comme une belle femme, plus on le regarde, plus on trouve des défauts. - Crayon

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 80
    Points : 53
    Points
    53
    Par défaut
    Merci à toi Crayon pour tes réponses.

    Je me suis orienté vers la 1ere solution (DATAobject , source et destination). A l'heure actuelle ma Listview arrive à recevoir le mail par drag n drop, il me reste à créer la structure OLE pour contrôler l'objet insérer puis d'en afficher ses données. Cependant je n'ai pas trouvé de documents expliquant le fonctionnement du formatetc :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    IStorage * pstorage = NULL;
      IStream * pstream = NULL;
      STGMEDIUM medium;
      FORMATETC fmtetc;
      FillFormatEtc(&fmtetc);


    Sinon il existe des composants tout prêt mais payant sur le site : http://www.raize.com/DevTools/Products.asp

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 401
    Points : 578
    Points
    578
    Par défaut
    Hello,

    Est-ce que tu as regardé du côté de The Drag and Drop Component Suite for Delphi ??

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 80
    Points : 53
    Points
    53
    Par défaut
    J'avance un peut dans le brouillard, je me suis aidé d'un site anglophone pour monter ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    STDMETHODIMP CDropTarget::DragEnter(LPDATAOBJECT pDataObj, DWORD grfKeyState, POINTL pt, LPDWORD pdwEffect)
    {
      tagSTGMEDIUM stgm;
      tagFORMATETC fmtetc;
      IStorage * pstg = NULL;
      IStream * pstm = NULL;
      FillFormatEtc(&fmtetc); 
     
      m_bDropOK = false;
     
       if (pDataObj->GetData(&fmtetc, &stgm) == S_OK ) {  // OK 
    	   pstg = stgm.pstg;
     
    		HRESULT t = pstg->OpenStream((wchar_t *)"__substg1.0_1000001E",NULL,STGM_SHARE_EXCLUSIVE | STGM_READ,0,&pstm); // => -2147286788 = -7FFCFF04
     
    		if (pstg->OpenStream((wchar_t *)"__substg1.0_1000001E",NULL,STGM_SHARE_EXCLUSIVE | STGM_READ,0,&pstm) == S_OK ) { // Probléme !
    			*pdwEffect = GetEffect(grfKeyState);
    			m_bDropOK = true;
    				   pstm = NULL;
    				   return S_OK;
    				   }
    				}
     
       else {
    		pstg = NULL;
    		ReleaseStgMedium(&stgm);
    		ShowMessage("Objet non conforme");
    		}
     
    }
    Cependant je n'arrive jamais à répondre à cette condition :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (pstg->OpenStream((wchar_t *)"__substg1.0_1000001E",NULL,STGM_SHARE_EXCLUSIVE | STGM_READ,0,&pstm) == S_OK ) {
    Le HRESULT t me retourne comme valeur décimale -2147286788 soit -7FFCFF04 en héxa. En me référant à ce tableau de valeurs d'erreurs ( http://support.microsoft.com/kb/827994/fr ) je m'aperçoit que mon code héxa n'y parait pas.

    Si quelqu'un a une idée sur ce sujet...

    Merci d'avance.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD17] Drag and Drop vers outlook
    Par cassandra dans le forum WinDev
    Réponses: 0
    Dernier message: 21/05/2013, 15h27
  2. [OL-2010] Drag'n drop Vba outlook 2010
    Par chewby79 dans le forum VBA Outlook
    Réponses: 6
    Dernier message: 25/07/2012, 11h15
  3. [SP-2010] Drag and drop d'Outlook vers Sharepoint Document Library
    Par djdada dans le forum SharePoint
    Réponses: 4
    Dernier message: 23/04/2012, 10h04
  4. [WD10] Drag and drop Outlook Express >> appli Windev
    Par pedro_delavega dans le forum WinDev
    Réponses: 1
    Dernier message: 08/09/2008, 14h55
  5. [C#] Drag & drop depuis Outlook
    Par therock dans le forum Windows Forms
    Réponses: 2
    Dernier message: 04/10/2006, 17h12

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