Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
923 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C++] MAPI (+ LES ROIS DES POINTEURS DEMANDES :D)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C++] MAPI (+ LES ROIS DES POINTEURS DEMANDES :D)

n°207887
godbout
Génial.
Posté le 03-09-2002 à 11:59:12  profilanswer
 

Je suis a la recherche d'un source utilisant MAPI (pas le simpleMAPI). J'ai beau trifouiller le msdn, chopper les sources qu'ils fournissent j'y arrive pas.  
 
Par ailleurs le compilo me sort deux erreurs de link, normal je n'arrive pas a ajouter la librairie au projet (mapi32.dll), il me sort que le fichier est corrompu.
 
 
 
ps: El_gringo vient pas pourrir mon topic :D


Message édité par godbout le 03-09-2002 à 15:54:25

---------------
Super.
mood
Publicité
Posté le 03-09-2002 à 11:59:12  profilanswer
 

n°207954
godbout
Génial.
Posté le 03-09-2002 à 13:46:40  profilanswer
 

J'ai compris [:911gt3]


---------------
Super.
n°207965
smaragdus
whores, drugs & J.S. Bach
Posté le 03-09-2002 à 13:55:19  profilanswer
 

Godbout a écrit a écrit :

J'ai compris [:911gt3]




 
Y a tout là :  
http://msdn.microsoft.com/library/ [...] u_need.asp
 
Les headers :
http://msdn.microsoft.com/library/ [...] frame=true
 
N'oublie pas qu'il faut qu'il y ait un compte email configuré dans Outlook.

n°207977
godbout
Génial.
Posté le 03-09-2002 à 14:06:56  profilanswer
 

Donc comme je l'avais dit tout ca c'est ok. J'ai lu. Les headers aussi. Ce qui me manque c'est la lib/dll, mais bon c'est pas grave, au lieu de linker statiquement je vais me demerder avec des bons vieux pointeurs de fonction. Sinon j'ai bien cree un profil. D'ailleurs ca marche deja mais avec une classe basee sur MAPI, mais allégé, et ca ca m'embete.
 
ps: si on a outlook express ca peut fonctionner ou pas ? (il me semble pas qu'il gere les profils)


---------------
Super.
n°207990
smaragdus
whores, drugs & J.S. Bach
Posté le 03-09-2002 à 14:27:38  profilanswer
 

Godbout a écrit a écrit :

Donc comme je l'avais dit tout ca c'est ok. J'ai lu. Les headers aussi. Ce qui me manque c'est la lib/dll, mais bon c'est pas grave, au lieu de linker statiquement je vais me demerder avec des bons vieux pointeurs de fonction. Sinon j'ai bien cree un profil. D'ailleurs ca marche deja mais avec une classe basee sur MAPI, mais allégé, et ca ca m'embete.
 
ps: si on a outlook express ca peut fonctionner ou pas ? (il me semble pas qu'il gere les profils)




 
Je crois bien que si, Outlook express 6 gère plusieurs comptes mail mais j'ai pas eu l'occasion de tester avec MAPI.

n°207999
godbout
Génial.
Posté le 03-09-2002 à 14:32:19  profilanswer
 

Ouais mais il gere plusieurs comptes courrier directement dans outlook express, alors que dans outlook tu crees pas un compte mais un service de message, qui se refere a un profil. Enfin moi j'ai pas reussi a faire fonctionner MAPI avec express :/
 
En plus la je suis en train d'en chier avec les pointeurs de fonction :mad:


---------------
Super.
n°208045
godbout
Génial.
Posté le 03-09-2002 à 15:46:10  profilanswer
 

Quelqu'un aurait une idee pour le petit pb suivant ??
 
Tiré du MSDN:

Code :
  1. HRESULT MAPILogonEx(
  2.   ULONG ulUIParam,               
  3.   LPTSTR lpszProfileName,       
  4.   LPTSTR lpszPassword,           
  5.   FLAGS flFlags,                 
  6.   LPMAPISESSION FAR * lppSession 
  7. );


 
Ce que je fais:

Code :
  1. typedef HRESULT (*LPFNMAPILOGONEX)(ULONG, LPTSTR, LPTSTR, FLAGS, LPMAPISESSION FAR *);
  2. LPFNMAPILOGONEX lpfnMAPILogonEx;
  3. HINSTANCE hlibMAPI = LoadLibrary("MAPI32.DLL" );
  4. lpfnMAPILogonEx = (LPFNMAPILOGONEX) GetProcAddress(hlibMAPI, "MAPILogonEx" );
  5. if (lpfnMAPILogonEx(0, "Paramètres Microsoft Exchange", NULL, MAPI_NEW_SESSION, &lpSession) != S_OK)
  6. ...


 
Je recois une messageBox:

Citation :

Debug Error!
The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.


 
J'ai beau chercher je vois pas ou est le pb :??:


Message édité par godbout le 03-09-2002 à 15:46:42

---------------
Super.
n°208053
verdoux
And I'm still waiting
Posté le 03-09-2002 à 16:07:04  profilanswer
 

Et avec:
 

Code :
  1. typedef HRESULT (__stdcall *LPFNMAPILOGONEX)(ULONG, LPTSTR, LPTSTR, FLAGS, LPMAPISESSION FAR *);


n°208059
godbout
Génial.
Posté le 03-09-2002 à 16:17:15  profilanswer
 

:ouch: quel homme :ouch:
 
Impeccable.
Si tu pouvais m'expliquer ca m'arrangerait bien.  
Merci.


---------------
Super.
n°208088
smaragdus
whores, drugs & J.S. Bach
Posté le 03-09-2002 à 16:51:32  profilanswer
 

Godbout a écrit a écrit :

:ouch: quel homme :ouch:
 
Impeccable.
Si tu pouvais m'expliquer ca m'arrangerait bien.  
Merci.




 
Par défaut, tu dois sans doute être en cdecl (c'est la "calling convention" signalée dans le message d'erreur) alors que la DLL en C est en stdcall.  
 
(Je crois que c'est en rapport avec qui doit vider la pile avant le retour du CALL mais j'en sais pas plus)

mood
Publicité
Posté le 03-09-2002 à 16:51:32  profilanswer
 

n°208367
Musaran
Cerveaulté
Posté le 04-09-2002 à 03:44:54  profilanswer
 

Pour être plus préçis et plus portable, il faut mettre STDMETHODCALLTYPE au lieu de __stdcall.
 
C'est effectivement une question de placement/libération des arguments au niveau assembleur.
 
Sous Visual C++ 6, il suffit de faire [F12] pour trouver la déclaration d'une API et voir ces détails.


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
n°208383
godbout
Génial.
Posté le 04-09-2002 à 08:55:02  profilanswer
 

Musaran a écrit a écrit :

Pour être plus préçis et plus portable, il faut mettre STDMETHODCALLTYPE au lieu de __stdcall.
 
C'est effectivement une question de placement/libération des arguments au niveau assembleur.
 
Sous Visual C++ 6, il suffit de faire [F12] pour trouver la déclaration d'une API et voir ces détails.




Ben le [F12] il t'envoie juste a la declaration de l'API effectivement, mais nullepart ca me dit qu'il faut mettre STDMETHODCALLTYPE ou stdcall, etc...
Enfin bref, merci pour les infos.
 
 
Un petit dernier truc par contre :D
J'suis dans un projet MFC et y a des definitions de fonctions avec FAR PASCAL (remplace par WINAPI). Le pb c'est qu'il le reconnait si j'inclus windows.h, mais si j'inclus cet entete j'ai un message d'erreur comme koi je ne peux pas l'inclure :crazy:


---------------
Super.
n°209028
Musaran
Cerveaulté
Posté le 05-09-2002 à 03:23:38  profilanswer
 

1)
On peut explorer en enchaînant les F12:
MAPILogonEx->MAPILOGONEX->typedef HRESULT (STDMETHODCALLTYPE MAPILOGONEX)...->__stdcall.
Ctrl+*(pavé num) pour revenir.
 
 
2)
Euh... je vois pas.
Rassures-moi: tu ne fais pas les #define et les typedef toi-même ?


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
n°209072
godbout
Génial.
Posté le 05-09-2002 à 09:08:55  profilanswer
 

quels #define et typedef ?  
 
Si tu parles des entetes de fonction si.
M'enfin c'est plus trop un pb, j'ai enleve PASCAL et ca marche :/ :D


---------------
Super.
n°209736
Musaran
Cerveaulté
Posté le 06-09-2002 à 02:51:31  profilanswer
 

Je m'inquiétais juste que tu n'essaies pas de définir toi-même des types/macros fournis par les #include de windows.
 
Ou de déclarer toi-mêmes les APIs.
 
Y'en a qui le font, mais faut pas !


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
n°209765
godbout
Génial.
Posté le 06-09-2002 à 08:49:56  profilanswer
 

ah ok :D


---------------
Super.
n°210292
godbout
Génial.
Posté le 07-09-2002 à 11:42:08  profilanswer
 

up pour cet excellent topic puisqu'il est mien.
 
Bon plus serieusement, pour ouvrir une session faut un profil.
Au boulot pas de pb, je vais dans courrier et j'ai mes profils (win2k). La je veux matter chez moi et :ouch: pas de profils ? :heink:
Alors je fais comment ??? :??:


---------------
Super.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C++] MAPI (+ LES ROIS DES POINTEURS DEMANDES :D)

 

Sujets relatifs
argg les pointeurs, qq'un peut il m'expliquer ca ?les pointeurs et type access
[C/C++] Conversion de pointeursPointeurs sur fonctions de classes distinctes
[C] Fonctions et pointeurs... ?[c] les pointeurs
[C] - Tableaux de pointeurs et liste chainees (ENCORE UN PROB)[C] - Tableaux de pointeurs et liste chainees ( résolu ! )
[C++] Pointeurs sur pointeurs[C] - Listes et pointeurs - comprenez-vous cet énoncé???
Plus de sujets relatifs à : [C++] MAPI (+ LES ROIS DES POINTEURS DEMANDES :D)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR