VI - Création de contrôles ActiveX

 

Dans le dernier chapitre de cette partie, nous allons voir les grandes lignes de la programmation de contrôles ActiveX, sans entrer dans les détails.

 

1. Comment écrire un contrôle ?

Il existe plusieurs façons de créer un contrôle, parmi lesquelles on peut citer :

Les MFC sont des classes C++ proposées par Microsoft permettant d'utiliser Win32 et ActiveX dans une application Windows. L'ATL comprend un ensemble de templates de classes C++ permettant de programmer des objets COM. Son utilisation est cependant conditionnée à de bonnes connaissances concernant la communication des contrôles OLE avec leurs containers. On peut utiliser l'ATL avec ou sans les MFC. Quant à Visual J++, il ne permet que d'écrire de petits objets COM.

Microsoft préconise l'utilisation des MFC pour programmer des contrôles ActiveX, nous ne verrons donc pas plus en détail les autres possibilités que nous venons d'évoquer.

 

2. Programmer des contrôles avec les MFC

Résumons ce qu'un programmeur devrait posséder comme logiciels ou outils afin de pouvoir écrire des contrôles dans les meilleures conditions :

Visual C++, accompagné des MFC 4.0+ et de l'ActiveX SDK, va permettre de développer des contrôles qui seront visualisés via Internet Explorer. Il est cependant important de signaler que l'utilisation de MFC plus récentes peut entraîner un certain nombre de problèmes liés à la version livrée (dans des DLL) avec MSIE. En effet, Internet Explorer 3.0 est livré en standard avec les MFC 4.1, bien que la version 4.2 de ceux-ci soit déjà disponible. Il peut être alors demandé à l'utilisateur de récupérer via Internet la dernière version de ces MFC.

Nous allons maintenant lister les différentes étapes de la création d'un contrôle ActiveX, sans entrer dans les détails d'implémentation :

  1. Création du squelette du contrôle,
  2. Ajout des propriétés,
  3. Ajout des méthodes,
  4. Ajout des événements,
  5. Signature du code,
  6. Visualisation.

Reprenons ces étapes en les détaillant.

 

Création du squelette du contrôle

On utilise pour ce faire l'AppWizard afin de créer un nouveau projet pour le contrôle que l'on désire écrire, en spécifiant qu'il s'agit d'un contrôle OLE. L'assistant va alors créer des fichiers sources basés sur la classe COleControl qui permet de traiter les événements de base. Le contrôle ainsi obtenu est exécutable mais ne fait rien.

 

Ajout des propriétés

Il va falloir maintenant ajouter des propriétés à ce contrôle, en utilisant le Class Wizard. On associe à chaque propriété un nom choisi judicieusement car il pourra être exploité de "l'extérieur" comme nous l'avons vu au chapitre précédent. Il peut être nécessaire d'écrire un peu de code permettant d'implémenter cette propriété.

 

Ajout des méthodes

Etape suivante : ajouter des méthodes. Ce sont ces méthodes qui permettront au contrôle de faire quelque chose.

 

Ajout des événements

Dans la quatrième étape nous allons implémenter la gestion d'un ou de plusieurs événements que l'utilisateur du contrôle est susceptible de générer. Une fois ceci fait, le contrôle devient pleinement exploitable.

 

Signature du code

Le contrôle obtenu est difficilement diffusable sur Internet car son code n'a pas été signé. Cette opération permet d'associer au contrôle une signature numérique permettant d'identifier de façon incontestable l'auteur de ce contrôle. Lorsqu'un utilisateur voudra installer le contrôle, via MSIE, ce dernier va afficher un certificat d'authenticité indiquant qui en est l'auteur. L'utilisateur peut alors décider, sur ce simple critère, s'il souhaite oui ou non utiliser le contrôle.

En pratique, il va falloir demander un certificat à une Certificate Authority (CA), en tant que particulier ou entreprise commerciale. Dans les deux cas, il faut remplir un formulaire qui sera vérifié par l'autorité de certification. Ensuite, on reçoit une clé privée qui va permettre de signer le contrôle. Cette opération se fait grâce à l'utilitaire signcode livré dans l'ActiveX SDK.

 

Visualisation

La dernière étape consiste tout simplement à tester le contrôle ainsi obtenu. Il est alors possible de créer une application basée sur le contrôle, grâce à Visual Basic ou de l'intégrer dans une page web via l'ActiveX Control Pad tel que nous l'avons vu au chapitre précédent.

 

Nous n'en dirons pas davantage sur ActiveX et la programmation de contrôles.