cs_epasquier
Messages postés9Date d'inscriptiondimanche 8 juin 2003StatutMembreDernière intervention 2 septembre 2008
-
9 oct. 2007 à 14:26
GEDDi
Messages postés206Date d'inscriptionlundi 22 novembre 1999StatutMembreDernière intervention 3 juillet 2008
-
11 oct. 2007 à 23:51
Pourquoi les lignes suivantes marchent :
Dim mapSess As Object Set mapSess = CreateObject("MSMAPI.MAPISession")
et pas celles-ci (Erreur 13 : types incompatibles à l'exécution du set)
Dim mapSess As MSMAPI.MAPISession
Set mapSess = CreateObject("MSMAPI.MAPISession")
Alors que cela marche avec Word:
Dim WordApp As Word.Application Set WordApp = CreateObject("Word.Application")
cs_epasquier
Messages postés9Date d'inscriptiondimanche 8 juin 2003StatutMembreDernière intervention 2 septembre 2008 9 oct. 2007 à 15:23
Bonjour,
Merci de votre réponse.
J'ai fait CreateObject parce que le New ne fonctionne pas.
Pour la question, "Avec quelle DLL ou OCX peux t'on utiliser le type d'objet", je ne sais pas.
Je me suis "amusé" à essayer directement en créant les objets MAPI pour les encapsuler dans une classe, plutôt que de placer des contrôle MAPI32.OCX sur une feuille.
Je ne sais pas si s'est autorisé ou quelles sont les limitations.
Dans mon cas, le code fonctionne pareil qu'avec les contrôles sur une feuille.
Par contre, avec la déclaration "Object", j'ai perdu la vérification du code à la compilation ...
Donc je ne sais toujours pas pourquoi mon CreateOnject typé ne fonctionne pas.
GEDDi
Messages postés206Date d'inscriptionlundi 22 novembre 1999StatutMembreDernière intervention 3 juillet 2008 10 oct. 2007 à 10:49
Bonjour,
Quelle est la différence entre :
Dim mapSess As Object
Set massess = CreateObject("MSMAPI.MAPISession")
et :
Dim mapSess As New MSMAPI.MAPISession
Le premier code est avantageux car :
- plus générique et fonctionnera avec toutes les versions de MAPI ( 8, 10, 11, ... )
- est dynamique ( late binding ) et ne dépend pas d'une version particulière de MAPI
Par contre on perd l'intellisens ( les noms des methodes n'apparaissent plus dans l'IDE )
Le second code est un peu plus rapide ( early binding ) mais dépendant d'une version particulière de MAPI ( 8, 10, 11, ... )
cs_epasquier
Messages postés9Date d'inscriptiondimanche 8 juin 2003StatutMembreDernière intervention 2 septembre 2008 10 oct. 2007 à 11:33
Bonjour Gérome,
Oui, mais
Dim mapSess As New MSMAPI.MAPISession
ne fonctionne pas (VB6), ce qui était ma question initiale.
Mais je viens de tomber aussi sur une autre problème :
Dim mapSess As Object
Set mapSess = CreateObject("MSMAPI.MAPISession")
ne fonctionne pas (ActiveX ne peut créer l'objet) sur une machine "utilisateur" (VB pas installé, msmapi32.ocx installé par mes soins).
Je suis revenu à la version initiale, qui est de placer les 2 controles Session et Message sur ma feuille principale, et là ça fonctionne, mais je ne sais pas pourquoi.
GEDDi
Messages postés206Date d'inscriptionlundi 22 novembre 1999StatutMembreDernière intervention 3 juillet 2008 10 oct. 2007 à 14:35
Ouais, ben ça ne m'étonne pas :)
Installes les 2 OCX dans Windows\system32 et fais leur jouer un coup de REGSRV32.EXE sur chacun d'entre eux, ça devrait deja les declarer au niveau système, apres quoi il n'y a pas de raison que cela ne fonctionne pas :)
Si ça decon,ne toujours, ouvres ton VBP et changes les chemin de tes OCX, qui ont peut etre par malheur pris comme nom de chemin celui de ton EXE et pas celui du system32 dans lequel ils devraient figurer !
cs_epasquier
Messages postés9Date d'inscriptiondimanche 8 juin 2003StatutMembreDernière intervention 2 septembre 2008 10 oct. 2007 à 17:02
Re bonjour Gérome,
C'est un seul fichier, MSMAPI32.OCX que j'ai bien sûr enregistré.
Lorsque je place les 2 contrôles sur une feuille, ça marche, mais pas avec CreateObject.
Mystère.
Idem pour le New.
Eric.
P.S.: je viens de cliquer sur ton lien FBSL et j'ai été "bleufé" : très impressionnant.
Et j'apprécie un plus: l'EDI est développé avec le même language !
J'ai des bons souvenirs avec le compilateur ADA développé en ... ADA, alors que microsoft ne sort aucun outils en .NET.
Bravo !
P.S(2): je peux convertir mes projets VB6 et avoir le look-and-feel XP/Vista ?
GEDDi
Messages postés206Date d'inscriptionlundi 22 novembre 1999StatutMembreDernière intervention 3 juillet 2008 11 oct. 2007 à 23:51
Bonsoir :)
Merci :)
Et encore tu n'as pas vu le RAD 100% développé en FBSL !
Voir ici : http://gedd123.free.fr/Fbsl/FSF_830.png Et il est rapide, le temps de réponse du RAD équivant à celui de VB6 :)
Tu peux convertir tes projets VB6 avec sans soucis, et quand tu compiles en EXE tu auras le style XP car le manifest est compris dans l'EXE sous forme de ressource, il suffit de regarder les exemples GUI qui sont fournis avec :)