OVH Cloud OVH Cloud

Evenements avec AxBridge

5 réponses
Avatar
logdenav
J'ai un javabean que j'ai transforme en activex avec axbridge pour
l'utiliser en c#
J'ai un listener pour ce bean

public interface TestChangedListener extends EventListener{
void testChanged(TestChangedEvent e);
}

Lorsque j'utilise l'activeX je peut recuperer les evenements avec la
methode c#
void c_testChanged(object arg0) {}

Mais je ne sais pas comment retrouver les proprietes de
TestChangedEvent en java
le parametre en c# est de type object et il n'y a pas de classes
generees pour le type
TestChangedEvent.

Merci

5 réponses

Avatar
TestMan
Quel est la classe réelle qui t'était envoyé en exécution pour le arg0 ?
(La déclaration peut être object au niveau de l'interface mais en
exécution proposer quelquechose de plus sympa, auquel cas il te faudra
du transtypage dynamique pour la récupérer ...)

A+

TM

J'ai un javabean que j'ai transforme en activex avec axbridge pour
l'utiliser en c#
J'ai un listener pour ce bean

public interface TestChangedListener extends EventListener{
void testChanged(TestChangedEvent e);
}

Lorsque j'utilise l'activeX je peut recuperer les evenements avec la
methode c#
void c_testChanged(object arg0) {}

Mais je ne sais pas comment retrouver les proprietes de
TestChangedEvent en java
le parametre en c# est de type object et il n'y a pas de classes
generees pour le type
TestChangedEvent.

Merci



Avatar
logdenav
la classe passee en parametre est de type

public class TestChangedEvent extends EventObject {
//.... avec les proprietes qui vont bien
}
et le listener java

public interface TestChangedListener extends EventListener{
void testChanged(TestChangedEvent e);
}


Ensuite je package le bean, l'interface pour le listener et la classe
de l'evenement dans un jar et je genere l'activex avec axbridge.

et je recupere bien les evenements dans une methode c#
void c_testChanged(object arg0) {}
mais comment faire pour recuperer les proprietes de l'objet
TestChangedEvent java initial ?

Merci
Avatar
TestMan
Comme on dit : "vous pouvez répéter la question" ;-)
Alors, répétons : "Quel est la classe réelle qui t'était envoyé en
exécution pour le arg0 ? "

En clair, il te faut utiliser un équivalent de arg0.getClass() pour .net
et regarder ce qu'il y a en retour comme classe réellement utilisée.

Si tu n'as pas de chance ce sera un "object tout court" si les choses
sont bien faites, tu auras peut être des infos que tu cherches ...


A+

TM


la classe passee en parametre est de type

public class TestChangedEvent extends EventObject {
//.... avec les proprietes qui vont bien
}
et le listener java

public interface TestChangedListener extends EventListener{
void testChanged(TestChangedEvent e);
}


Ensuite je package le bean, l'interface pour le listener et la classe
de l'evenement dans un jar et je genere l'activex avec axbridge.

et je recupere bien les evenements dans une methode c#
void c_testChanged(object arg0) {}
mais comment faire pour recuperer les proprietes de l'objet
TestChangedEvent java initial ?

Merci



Avatar
logdenav
System.__ComObject !!!!
Avatar
TestMan
Bonjour,

Ok, c'est donc une coquille .net pour un objet COM.
Il va te faloir maintenant "trouver" quel sont les interfaces COM
dérière cette coquille générique. Pour celà, appelle
Type.GetInterfaces() dessus et regarde la liste proposée....

Une fois trouvé la bonne interface tu n'auras qu'à le transtypé avec un
"as" classique pour obtenir une "vrai interface .net".

Ah, les joies de COM ;-)

A+
TM

System.__ComObject !!!!