Pont Java-ActiveX
La bibliothèque Java Bridge2Java, que l'on peut télécharger sur le site d'IBM alphaWorks, permet d'accéder à des ActiveX depuis un programme Java.
L'installation fournit un exécutable -Bridge2Java.exe- qui pourra générer toutes les déclarations de classes et d'interfaces Java à partir d'une bibliothèque de types, incluse dans un module exécutable Windows ou bien dans un fichier de type .tlb ou .olb.
Ces classes servent donc à créer des contrôles ActiveX et contiennent l'ensemble des méthodes d'accès tirées de la bibliothèque de types.
On peut ainsi réutiliser le code sous forme d'activeX dans un environnement Java s'exécutant sous Windows, comme le montre les exemples fournies.
Par example, utiliser Word comme serveur OLE automation pour créer un nouveau document et y insérer du texte.
Ou encore, afficher le contrôle ActiveX de navigation d'Internet Explorer dans une applet Java.

Voici comment on peut appeler une méthode Echo de l'interface IBridge, implémenter par un objet OLE automation instancié dans un exécutable Windows, appelé project1.exe et écrit avec l'EDI Delphi.
Cette méthode prend comme seul argument une chaîne de caractère Unicode et la renvoie sans modification, tandis que Project1 affiche celle-ci dans une zone d'édition.
Appliqué sur le serveur d'objet, Bridge2Java.exe génère deux sources Java, IBridge.java et Bridge.java, Bridge étant pour notre serveur le nom de la CoClasse implémentant l'interface IBridge.
IBridge.java comprend la classe IBridge dérivant de la classe Dispatch de la bibliothèque Bridge2Java et reprenant en particulier la méthode Echo :

public String Echo(String Texte) {}

Le source Bridge.java contient la déclaration de la classe Bridge descendant de IBridge, avec quatre constructeurs.

Lors de l'exécution du programme de test Java, l'application Project1 renfermant l'objet Brigde se lance (si elle ne l'était pas), affiche le célèbre message 'Hello world !', puis se termine, du fait que le pointeur d'interface est libéré comme il se doit par te programme TestBgridge :

/*
 * TestBridge.java
 *
 * Created on 8 septembre 2000, 11:52
 */

import Project1.*;

/**
 *
 * @author BGoetzmann
 * @version
 */
public class TestBridge extends Object {

    /** Creates new TestBridge */
    public TestBridge() {
    }

    /**
    * @param args the command line arguments
    */
    public static void main (String args[]) {
        Bridge bridge;

        try {
            com.ibm.bridge2java.OleEnvironment.Initialize();

            bridge = new Bridge();

            System.out.println(bridge.Echo("Hello world !"));
        }
        catch (com.ibm.bridge2java.ComException e) {
            System.out.println("Exception COM");
            System.out.println( Long.toHexString((e.getHResult())) );
        }
        catch (Exception e) {
            System.out.println("Exception " + e.getMessage());
        }
        finally {
            com.ibm.bridge2java.OleEnvironment.UnInitialize();
        }
    }

}


Ressources

Téléchargement de Bridge2Java

Sommaire

Ressources

Début

Copyright © 2003 OBJECT-EVERYWHERE. Tous droits réservés | Bertrand Goetzmann