FORUM Syndrome-OC - Jacky-PC


  Programmation


  Langage haut niveau(C, Pascal...)


  [VB] ActiveX : propagation d'evenement du control vers le container...

 




Il y a 28 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici

 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VB] ActiveX : propagation d'evenement du control vers le container...

n°1685
Trracer
Posté le 09-02-2004 à 19:14:04  profilanswer
 

J'ai un bidule à bricoler en VB, et j'arrive pas à trouver d'exemple comme il faut. Alors si quelqu'un avait un exemple sous la main...
 
En fait c'est un bete control ActiveX (une dll quoi) integre à une page html (<object> ) qui doit recevoir un evenement genere par le control activeX. J'ai pas trouvé d'exemple, et j'arrive pas à ce que mon bout de vbscript soit lancé au RaiseEvent de l'activeX... Apparemment creer une sub nommé comme il faut ( sub truc_nomEvent() ) et faire un raiseEvent dans le control ça suffit pas.

mood
Google
Posté le 09-02-2004 à 19:14:04  profilanswer
 

n°1851
Trracer
Posté le 16-02-2004 à 16:15:58  profilanswer
 

Bon j'ai trouvé...
Mais autre probleme, le compilateur assigne un CLSID different a chaque compilation !  
Et quand on insere cet salo*** de controle activex dans une page web il faut le CLSID. C'est la galere pour tester :/
 
Quelqu'un sait si on peut charger un objet ActiveX sans CLSID (autre que ActiveXObject de javascript, avec ça on peut pas gerer les evenements comme il faut).
 
PS (special linuxien) : Pas la peine de venir me dire "Linux roxx" ou autre. Corba c'est pire :p :lol:

n°1856
Dr lous
I see old password
Posté le 16-02-2004 à 20:29:04  profilanswer
 

regarde sur vbfrance si tu as pas une fonction ki te permet de garder tj le meme ID :)


---------------
Oseras-tu m'affronter ?
n°1858
Trracer
Posté le 16-02-2004 à 20:57:12  profilanswer
 

J'ai deja regarde, et j'ai pas trouve grand chose de bien concluant.  
C'est le compilo qui change le clsid et qui enregistre la dll dans la base de registre dans la foulé.  
 
C'est super mal foutu comme truc. T'es obligé d'utiliser le clsid dans le code html, mais celui-ci change à chaque compilation :/ Alors que dans le cas de java on indique simplement le nom de la class.  
Le clsid est un truc pas mal, mais on peut pas le bloquer par projet c'est naze...

n°1859
Dr lous
I see old password
Posté le 16-02-2004 à 21:18:42  profilanswer
 

meme dans les option de compil ?


---------------
Oseras-tu m'affronter ?
n°1863
Trracer
Posté le 17-02-2004 à 10:18:21  profilanswer
 

Bon je crois que j'ai trouvé... C'est dans les options de "compatibilité binaire", normalement c'est positionné sur projet pour un activex par defaut, et bha là ça n'y etait pas :/ Et l'aide n'est pas des plus explicite sur le pourquoi du comment de cette option. M'enfin...  
 
Je vais peut etre enfin resussir à avancer un peu maintenant :) Et merci Dr Lous de m'avoir epargné un bide :jap: ;)

n°1901
Trracer
Posté le 18-02-2004 à 21:44:05  profilanswer
 

Autre interrogation ! Là un poil plus tordu...
 
J'ai donc une dll ActiveX chargée dans une page web via la balise object. Cette dll possede un timer et utilise donc les api createTimer et killTimer.  
Il y a donc une instance de la classe public pour que la procedure callback du timer puisse acceder a la classe et appeller une fonction (friend).
 
Probleme, quand je quitte le browser, le process reste en memoire (memory leak) et le thread occupé par la dll n'est pas libéré. Je le vois par rapport au serveur avec lequel discute la dll, le message de fin de communication ne vient que quand je kill le process de IE.
 
Je suspecte donc un probleme de reference circulaire à cause du timer. Tant que l'instance dont il a besoin pour acceder à la classe n'est pas supprimé, le Class_Terminate n'est pas appellé, et donc les objets en cours ne sont pas supprimé et la connection au serveur reste ouverte.
 
Du moins c'est la theorie, je ne sais pas si c'est la cause reelle de ce memory leak...
 
Je me pause donc la question, comment informer l'objet que le container va etre fermer ? Dans le cas d'un changement de page, je pense pouvoir me debrouiller avec un "onUnload" dans l'html. Mais je ne sais pas si cet evenement est levé à la fermeture du browser ?

mood
Google
Posté le 18-02-2004 à 21:44:05  profilanswer
 


Aller à :
Ajouter une réponse

  FORUM Syndrome-OC - Jacky-PC


  Programmation


  Langage haut niveau(C, Pascal...)


  [VB] ActiveX : propagation d'evenement du control vers le container...

 

Hit Parade