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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 395
    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 395
    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