OVH Cloud OVH Cloud

[Newbie] Utilisation d'un ActiveX

6 réponses
Avatar
O.L.
Bonjour,

Je débute dans la programmation en C++.
J'aurais aimé savoir comment intégrer un contrôle ActiveX dans une
fenêtre, et ensuite dialoguer avec lui ?

J'utilise DevC++, car je ne peux (malheureusement) pas me payer Visual
C++ ou autre. Et en plus je n'ai pas besoin de dessiner des interfaces
complexes, juste de contrôler des ActiveX.

Merci d'avance pour toute piste !
J'ai cherché sur Google mais je n'ai rien trouvé de concret ...

@+
O.L.

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com

6 réponses

Avatar
Patrick Philippot
Bonjour,

Je débute dans la programmation en C++.
J'aurais aimé savoir comment intégrer un contrôle ActiveX dans une
fenêtre, et ensuite dialoguer avec lui ?

J'utilise DevC++, car je ne peux (malheureusement) pas me payer Visual
C++ ou autre. Et en plus je n'ai pas besoin de dessiner des interfaces
complexes, juste de contrôler des ActiveX.



Pour utiliser un ActiveX Control dans une appli quelconque, il faut
créer un ActiveX Control Container. La programmation d'un tel objet est
*très* compliquée et requiert une connaissance *approfondie* du COM. En
fait, il s'agit de refaire ce qu'on fait les développeurs des MFC,
d'ATL, de Delphi et autres environnements de développement. Même pour
quelqu'un d'expérimenté, écrire à partir de rien un ActiveX Control
Container qui fonctionne correctement peut prendre des semaines. Au
mieux.

Ci-dessous une page (trouvée via Google) montrant une telle
implémentation (minimum) en C:

http://www.codeguru.com/Cpp/I-­N/ieprogram/article.php/c4379/

Il s'agit d'utiliser le WebBrowser Control mais c'est un ActiveX Control
comme un autre.

Autre exemple d'utilisation du WebBrowser Control:

http://www.john.findlay1.btint­ernet.co.uk/OLE/ole.htm (BrowserApp)

Vous pouvez aussi regarder là:

http://disphelper.sourceforge.­net/

Mais ce sont des exemples qui sont à mon avis incomplets et qui peuvent
ou non fonctionner selon l'ActiveX Control que vous utilisez.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Avatar
O.L.
Patrick Philippot avait soumis l'idée :
Bonjour,



[...]

Pour utiliser un ActiveX Control dans une appli quelconque, il faut créer un
ActiveX Control Container. La programmation d'un tel objet est *très*
compliquée et requiert une connaissance *approfondie* du COM. En fait, il
s'agit de refaire ce qu'on fait les développeurs des MFC, d'ATL, de Delphi et
autres environnements de développement. Même pour quelqu'un d'expérimenté,
écrire à partir de rien un ActiveX Control Container qui fonctionne
correctement peut prendre des semaines. Au mieux.



Donc finalement on est obligé de passer par les MFC (si on bosse en
C++), c'est à dire d'acheter Visual C++ ? :-(


Ci-dessous une page (trouvée via Google) montrant une telle implémentation
(minimum) en C:



[...]

Mais ce sont des exemples qui sont à mon avis incomplets et qui peuvent ou
non fonctionner selon l'ActiveX Control que vous utilisez.



Merci pour les liens ! Je vais essayer de voir comment ça marche ...
Sinon, n'y a t'il pas moyen de bricoler quelque chose avec la fonction
LoadLibrary("monFichier.ocx") ?

@+
O.L.

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
Avatar
noone
> Donc finalement on est obligé de passer par les MFC (si on bosse en
C++), c'est à dire d'acheter Visual C++ ? :-(



non, il existe Visual C++ Express
http://lab.msdn.microsoft.com/express/visualc/default.aspx


mais personnellement je préfère faire des choses portables, et donc
utiliser un compilateur portable comme g++ (gcc) notammment avec DevC++
et côté interface graphique wxWidgets
wx-DevCpp contient DevCpp et wxWidgets :
http://wxdsgn.sourceforge.net/

mais bon je t'ai quand même donné l'adresse de Visual C++ Express si tu
veux t'enfermer dans un certain monde ;-)
Avatar
O.L.
avait énoncé :
Donc finalement on est obligé de passer par les MFC (si on bosse en C++),
c'est à dire d'acheter Visual C++ ? :-(



non, il existe Visual C++ Express
http://lab.msdn.microsoft.com/express/visualc/default.aspx


mais personnellement je préfère faire des choses portables, et donc utiliser
un compilateur portable comme g++ (gcc) notammment avec DevC++
et côté interface graphique wxWidgets
wx-DevCpp contient DevCpp et wxWidgets :
http://wxdsgn.sourceforge.net/

mais bon je t'ai quand même donné l'adresse de Visual C++ Express si tu veux
t'enfermer dans un certain monde ;-)



Merci beaucoup pour VC++ Express, je crois que ça va beaucoup
m'intéresser :)

Je n'ai pas l'utilité de faire du code portable : en effet, j'ai besoin
d'un ActiveX pour la 3D (langage=VRML) qui n'existe que sous Windows et
pas encore sous Linux ... Donc le jour où un tel programme sera dispo
sous Linux, je ferai une version Linux de mon app', promis ! ;-)

@+
O.L.

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
Avatar
Aurelien REGAT-BARREL
> Donc finalement on est obligé de passer par les MFC (si on bosse en C++),
c'est à dire d'acheter Visual C++ ? :-(



J'ai pas testé, mais wxWidgets dispose de quelques facilités pour faire du
COM/OLE (wxAutomationObject, wxVariant).
Sinon contrairement aux MFC ATL est disponible en téléchargement chez MS.
Par contre j'ai pas idée si c'est utilisable en dehors de VC++.
L'IDE fournit avec LCC fournit quelques facilités pour la programmation COM
(génération d'un header à partir d'un typelib). Mais ça va pas jusqu'à
l'ActiceX.
Gérer un ActiveX à la main c'est balaise, mais y'en a qui l'ont fait. J'ai
ça dans mes bookmarks:
http://vijaymukhi.com/documents/books/ocx/final1.html
http://www.cppfrance.com/code.aspx?id(746

--
Aurélien REGAT-BARREL
Avatar
O.L.
Aurelien REGAT-BARREL a exposé le 30/03/2005 :
Donc finalement on est obligé de passer par les MFC (si on bosse en C++),
c'est à dire d'acheter Visual C++ ? :-(



J'ai pas testé, mais wxWidgets dispose de quelques facilités pour faire du
COM/OLE (wxAutomationObject, wxVariant).
Sinon contrairement aux MFC ATL est disponible en téléchargement chez MS. Par
contre j'ai pas idée si c'est utilisable en dehors de VC++.
L'IDE fournit avec LCC fournit quelques facilités pour la programmation COM
(génération d'un header à partir d'un typelib). Mais ça va pas jusqu'à
l'ActiceX.
Gérer un ActiveX à la main c'est balaise, mais y'en a qui l'ont fait. J'ai ça
dans mes bookmarks:
http://vijaymukhi.com/documents/books/ocx/final1.html
http://www.cppfrance.com/code.aspx?id(746



Merci !!!

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com