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

MFC Discussion :

[Automation VBA]IDispatch indispensable ?


Sujet :

MFC

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    20
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Avril 2008
    Messages : 20
    Par d�faut [Automation VBA]IDispatch indispensable ?
    Hello!

    Je travaille en ce moment avec les technologies COM/Automation a l'aide de l'ATL. J'ai un composant ecrit en C++ et je l'utilise dans un module VBA (Excel). Dans ce module j'utilise l'early binding et mes declarations sont typees.

    Ma question est la suivante: Est-ce que pour etre utilisable depuis un client VBA EB un composant doit obligatoirement implementer une dispinterface ? En pratique j'utilise des interfaces dual donc ce que j'aimerais savoir c'est si les appels de fonctions passent par Invoke ou est ce qu'ils sont directement lies en utilisant la methode custom interface ?

    J'ai fait quelques tests et je peux utiliser un composant implementant seulement une custom interface depuis un client VBA en early binding donc cela repond en partie a ma question... Cependant si les appels ne passent pas par Invoke, comment sont convertis les types des arguments et de la valeur de retour ? Est-ce qu'il y a toujours une conversion implicite en VARIANT ?

    Dans certains livres et documentations il est specifie que les appels depuis un client VBA (EB et LB) passent toujours par Invoke...Du coup je comprend pas trop

    Merci d'avance!

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    20
    D�tails du profil
    Informations personnelles :
    �ge : 39
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Avril 2008
    Messages : 20
    Par d�faut
    J'ai finalement trouv� des explications sur le site de support de Microsoft. Je mes le lien ici (lien en anglais) si jamais �a int�resse quelqu'un:
    http://support.microsoft.com/kb/245115/en-us

  3. #3
    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
    Tiens, merci du lien. Je ne savais m�me pas que VBA pouvait utiliser du early-binding...
    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.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Erreur Automation VBA excel
    Par icpa38 dans le forum G�n�ral VBA
    R�ponses: 1
    Dernier message: 05/06/2012, 15h53
  2. erreur Automation vba
    Par atoffoli75 dans le forum Macros et VBA Excel
    R�ponses: 11
    Dernier message: 25/06/2008, 09h50
  3. Erreur Automation vba
    Par viscere dans le forum Macros et VBA Excel
    R�ponses: 1
    Dernier message: 10/08/2007, 11h51
  4. [Automation][VBA]Envoi d'email avec Outlook
    Par andy292929 dans le forum VBA Access
    R�ponses: 2
    Dernier message: 03/04/2007, 10h04

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