API ActiveX Flash

Préambule

Qu'est-ce qu'un ActiveX ?

Un ActiveX est un composant logiciel additionnel compilé en module et qui porte généralement l'extension .ocx. Il permet d'ajouter les fonctionnalités d'un programme dans un autre, sans pour autant que le programme hôte soit obligé de disposer des sources de l'ActiveX au moment de sa compilation. Cette technologie est la réplique de Microsoft au langage Java et de son système de plug-in. C'est une technologie propriètaire des systèmes Microsoft. Ainsi les ActiveX sont pilotés en général par le langage VBScript ou Jscript et sont exploitables par le navigateur Internet Explorer. Chaque ActiveX dispose d'un module, d'un nom, d'un identifiant unique (uuid ou clsid), et d'un numéro de version qui lui sont propres.

Tout ActiveX installé sur le système est enregistré dans la base de registre avec des informations qui lui sont associées, comme son répertoire d'installation. De cette manière, les logiciels qui souhaitent l'exploiter auront la preuve de l'existence de l'ActiveX sur le système ainsi que toutes les informations nécessaires à la bonne inclusion de cette classe.

Le lecteur Flash de nos pages HTML est un ActiveX, il dispose donc d'une entrée dans la base de registre qui nous retourne les informations suivantes

Clé du registre HKEY_CLASSES_ROOT\CLSID\{D27CDB6E-AE6D-11cf-96B8-444553540000}
Module flash.ocx
Nom ShockwaveFlash.ShockwaveFlash.6
Version 1.0
Identifiant unique D27CDB6B-AE6D-11CF-96B8-444553540000
Répertoire d'installation C:\WINNT\System32\Macromed\Flash\FLASH.OCX (Windows 2000 )

Comment utiliser un ActiveX ?

Pour intégrer un ActiveX comme Flash à une page HTML, il suffit d'intégrer le code HTML :

<OBJECT
    ID="animationFlash"
    classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
/>

Dans ce cas, lors du chargement de la page, l'objet ActiveX d'identifiant unique D27CDB6E-AE6D-11cf-96B8-444553540000 sera automatiquement crée et si le tag <object /> comporte un ID HTML quelconque comme ici animationFlash, Jscript pourra référer à une de ses méthodes en utilisant :

document.getElementById('animationFlash').foo();

Il est bien sur possible de créer dynamiquement un objet ActiveX directement en script sans écrire de tag HTML en utilisant le code Jscript suivant :

animationFlash = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.6');
animationFlash.foo();

Comment intégrer l'ActiveX Shockwave.Flash à une page HTML?

L'ActiveX Flash dispose d'une méthode qui retourne un booléen indiquant si l'animation est arrêtée ou en train de jouer (même indication que le menu contextuel), pour l'utiliser dans une page HTML qui affichera le résultat de la fonction dans une boîte d'alerte, le code complet sera :

<object
    classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
    width="640"
    height="480"
    id="animationFlash"
>
    <param name="movie" value="fichier.swf">
    <param name="quality" value="high">
    <param name="bgcolor" value="#ffffff">
</object>

<script type="text/javascript">
<!--
    res=document.getElementById('animationFlash').IsPlaying(); 
    alert(res);
//-->
</script>
  rss rss english xhtml 1.1 css 2.0 wdg