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

VBA Access Discussion :

La problématique l'encapsulation des API Windows en VBA


Sujet :

VBA Access

  1. #1
    Membre expérimenté
    Avatar de mumen
    Homme Profil pro
    Développement à façon multisecteur.
    Inscrit en
    Mars 2004
    Messages
    566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Développement à façon multisecteur.

    Informations forums :
    Inscription : Mars 2004
    Messages : 566
    Points : 1 381
    Points
    1 381
    Par défaut La problématique l'encapsulation des API Windows en VBA
    Bonjour

    Depuis que je programme en VBA sous Access, j'ai déjà utilisé plusieurs formes d'encapsulation de l'api Windows sans chercher à les creuser vraiment, et je me suis éventuellement retrouvé avec plusieurs encapsulations d'une même fonction d'API à l'intérieur de la même bibliothèque. Je parle précisément de la boîte de dialogue d'ouverture de fichiers et de l'accès à la base de registre, mais il existe bien d'autres exemples pour lesquels la problématique est identique.

    Chaque site dédié au VBA propose dans sa faq son implémentation distincte de ces encapsulations. Et chaque implémentation est fonctionnelle mais parfois incomplète, insatisfaisante au niveau de son interface ou bien même carrément elle ne fonctionne pas toujours dans tous les cas.

    Il se passe que je voudrais mettre au point un tutoriel d'un utilitaire qui nécessite l'emploi de ces deux encapsulations là, et que je n'ai rien de cohérent à proposer que des trucs glanés ici et là que je ne maîtrise pas.

    De plus, j'impose quasiment une redondance de code à mes utilisateurs potentiels. Et ça me déplaît.

    Et vous, comment faites vous ? Qu'en pensez vous ?

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Pourrais-tu être plus explicite ou donner un exemple.

    Philippe

  3. #3
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonjour,

    En ce qui me concerne.
    J'ai commencé par lire ce document (MS-Word):
    http://download.microsoft.com/download/5/f/8/5f862469-98d3-4936-a9d4-a7f83d779493/apiwin32.doc

    Il y a le tutoriel Les API en Visual Basic de Jean-Marc Rabilloud.

    Il existe l'outil APIViewer 2004, qui contient de très nombreuses déclarations de fonctions et de constantes de l'api Win32 pour VB6.
    http://apiviewer-2004.software.informer.com/

    Concernant les différences de déclarations d'une même fonction API, ce n'est guère surprenant.
    Beaucoup de fonctions de l'api sont très générique et nécessitent beaucoup de paramètres.
    En général on n'implémente que ce dont on a besoin.
    L'autre différence peut se trouver (moins souvent) au niveau du choix qui est fait pour mapper un type C/C++ en type VB6.

    A+

  4. #4
    Membre expérimenté
    Avatar de mumen
    Homme Profil pro
    Développement à façon multisecteur.
    Inscrit en
    Mars 2004
    Messages
    566
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Développement à façon multisecteur.

    Informations forums :
    Inscription : Mars 2004
    Messages : 566
    Points : 1 381
    Points
    1 381
    Par défaut
    Oh, je n'ai pas très envie de me former sur l'utilisation des APIs.

    Je reste dans le contexte d'un développeur VBA à qui il manque des outils élémentaires et finalement communs. Par exemple j'implémente une boîte à fichier dans mon soft et quand je veux que ce soit un répertoire qui soit cherché, l'encapsulation ne marche pas. Alors je change, je cherche autre chose et ce que je trouve ne fonctionne pas comme la précédente alors je cherche encore, je me dis que sur développez il doit bien y avoir de bonnes réalisations - universelles -, mais non, ce que je trouve est encore hyper spécifique.

    En général on n'implémente que ce dont on a besoin
    Voila. Je demandais comment les développeurs font, j'ai une réponse. Je vais devoir apprendre quand même. Je ne suis pas spécialement fainéant pour faire ce que j"ai à faire, mais là, je ne sais pas, ça me déprime d'aborder un contexte vaste et glissant comme celui là, j'aurais aimé m'en passer, d'autant que c'est pour de petites choses ponctuelles.

    Du coup ma solution se met à ressembler à faire de la multi implémentation d'une même API en Private dans mon module, sans complexe et sans chercher à implémenter proprement et sans redondance.

  5. #5
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 768
    Points
    7 768
    Par défaut
    Bonsoir,

    Tu le sais sûrement déjà, mais sait-on jamais:
    En ce qui concerne l'api GetOpenFileName+OPENFILENAME, on peut s'en passer depuis Access 2003.
    Cela a été implémenté dans Office (voir Application.FileDialog et Office.FileDialog).
    Je ne me sers plus que de FileDialog et j'ai abandonné GetOpenFileName.

    Pour revenir sur ton souci plus général au sujet de l'implémentation de fonctions api Windows dans VBA, il faut considérer plusieurs choses.
    Les développeurs VBA ne sont pas des pros de l'api Windows.
    D'ailleurs je ne pense pas qu'il y ait beaucoup de développeurs 'pur api'.
    Tous les langages de programmation évolués ont leurs propres bibliothèques pour éviter aux programmeurs de s'arracher les cheveux avec l'api Windows.
    Donc, mon sentiment est qu'il est très difficile de trouver de bonnes informations pour néophytes au sujet de api.

    Bon courage.
    A+

Discussions similaires

  1. [Système/Fichiers/API] Questions au sujet des API windows
    Par JPras dans le forum C++Builder
    Réponses: 4
    Dernier message: 13/03/2014, 10h06
  2. Comment trouver les structures des api windows
    Par Tonioyo dans le forum Windows
    Réponses: 1
    Dernier message: 21/01/2009, 10h40
  3. [C++][Source] Encapsuler l'API Windows
    Par Melem dans le forum Contribuez
    Réponses: 0
    Dernier message: 09/11/2007, 17h04
  4. Réponses: 69
    Dernier message: 15/06/2006, 12h42
  5. Comment appeler des API windows en C ?
    Par JuanLopez1966 dans le forum Windows
    Réponses: 6
    Dernier message: 22/12/2004, 11h34

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