
ActiveX désigne l'une des technologies dépréciées duComponent Object Model deMicrosoft avecCOM+ etDistributed COM utilisées enprogrammation pour permettre le dialogue entre programmes.
Les ActiveX se déclinent sous forme de contrôles, de documents et de scripts[1].
Uncontrôle ActiveX est unfichier portant l'extension « .ocx ». Ces fichiers contiennent des programmes encapsulés dynamiques (à l'instar desDLL) se comportant comme desclasses (ce qui signifie que l'on peut lesinstancier comme desobjets), c'est-à-dire que ce sont des composantslogiciels intégrables dans d'autres programmes/logiciels tels que des bibliothèques externes.
Pour les rendre accessibles, on peut les déclarer formellement ausystème (Microsoft Windows en l'occurrence) ou simplement les livrer avec un logiciel. Mais pour pouvoir les utiliser dans un logiciel, on doit obligatoirement les déclarer à ce dernier lors de la création du logiciel. Lors de lacompilation du logiciel (c'est-à-dire de la transformation du programme en fichier exécutable), ces composants ne seront pas intégrés au programme mais liés, et donc, resteront extérieurs au programme l'utilisant. Par conséquent, ces composants peuvent rester disponibles pour d'autres programmes. Ils sont donc hautement réutilisables et utilisables simultanément par plusieurs programmes, ce qui constitue tout leur intérêt.
Contrairement aux DLL (qui ne sont que des bibliothèques partagées de fonctions et donc, à lier également au programme lors de sa conception), les contrôles ActiveX sont de véritables petits logiciels indépendants (mais dynamiques et encapsulés, donc, connectables à d'autres) qui peuvent avoir ou non, uneinterface graphique, non seulement lors du fonctionnement du logiciel les utilisant mais également lors de la création (dans l'IDE) afin d'aider le développeur à l'utiliser ou le configurer.
Ces caractéristiques singulières en font donc des objets particulièrement flexibles, pratiques et appréciés des développeurs pour leur simplicité d'utilisation.
Tout comme les classes, ils sont principalement constitués de propriétés(i.e., de variables publiques contrôlées par des fonctions en entrée et/ou en sortie), de méthodes(c'est-à-dire, de fonctions ou procédures publiques) et d’événements(i.e., de fonctions/procédures de surveillance d'états). On peut donc les créer(i.e., les instancier) comme de simples objets. Mais outre une interface graphique, ils ont en plus la possibilité de contenir des données annexes telles que des images, desicônes… puisqu'ils sont « encapsulés ».
Concrètement, presque tous les éléments graphiques autres que ceux du système (que sont lesfenêtres…) sont, la plupart du temps, des contrôles ActiveX. Par exemple, les boutons, leslistes déroulantes, lesmenus ou même les fenêtres standard (ouvrir, enregistrer…) sont des OCX.
Leur développement se fait généralement avecMicrosoftVisual Studio mais d'autreslangages de programmation compatibles avec la technologie COM peuvent également en créer. C'est par exemple le cas du langageC++ ou du langageDelphi deBorland.
Les ActiveX peuvent être utilisés dans despages web s'ils sont d'abord téléchargés, manuellement ou automatiquement, sur le poste client de l'utilisateur. Du fait de la grande intégration des ActiveX au système d'exploitation, cette forme d'utilisation constitue un problème de sécurité majeur avec lesnavigateurs. En effet, si l'utilisateur n'est pas informé de l'installation à distance d'un ActiveX, il est possible pour un développeur d'utiliser ce qui peut constituer une faille de sécurité pour implanter un code malveillant. C'est pourquoi il existe des procédures qui permettent à l'utilisateur de se prémunir d'une telle utilisation malveillante[2].
C'est en que le premier SDK pour ActiveX est disponible sousMac, incluant unplugin pourNetscape Navigator. La compatibilité avecSolaris est annoncée pour l'année suivante[3].
Malgré les efforts de Microsoft pour rendre ActiveX multi-plateforme, la plupart des contrôles ActiveX ne fonctionnent pas sur toutes les plateformes, de sorte que l'utilisation de contrôles ActiveX pour mettre en œuvre les fonctionnalités essentielles d'une page web en limite l'utilité.
Bien que Microsoft ait fait des efforts considérables pour promouvoir l'aspect multi-plateforme d'ActiveX en publiant l'API, ces efforts ont finalement été vains, les contrôles ActiveX étant écrits enC ouC++ et compilés enassembleur pourIntel x86, ce qui les rend exécutables uniquement sur les machines Windows où ils peuvent appeler les APIWin32 standard[4].
En 2012, Microsoft supprime le support ActiveX de l'éditionWindows Store d'Internet Explorer 10 dansWindows 8.
En 2015, Microsoft sort MicrosoftEdge, le remplaçant d'Internet Explorer sans support pour ActiveX, ce qui marque la fin de la technologie dans le développement du navigateur web de Microsoft[5].
En, laCorée du Sud utilise encore largement ActiveX, posant de sérieux problèmes de sécurité, de performances et de compatibilité. LeprésidentMoon Jae-in a fait de la fin d'ActiveX une promesse de campagne[6].