eventos desde un control ActiveX

30/12/2004 - 10:57 por mdjimenez | Informe spam
Hola grupo,

estamos desarrollando un control ActiveX que, básicamente, reproduce
un vídeo. Toda la parte de desarrollo del control la tenemos clara,
utilizando el asistente de Visual Studio .Net. Sin embargo, tenemos un
problema para generar eventos.

En algunas condiciones los eventos no se generan, me explico. El
usuario hace "Play", entonces el ActiveX inicia un hilo que reproduce
el vídeo a la vez que envía un evento "Reproduciendo". Mientras que
este hilo secundario reproduce el vídeo, el hilo principal espera las
interacciones del usuario. A veces, el hilo secundario encuentra
cierta información en el vídeo que debe mostrar al usuario, por
ejemplo, un cambio en el tamaño, en cuyo caso envía un evento
"VideoSize". Cuando el usuario hace "Stop", el hilo principal detiene
el hilo secundario y envía el evento "Parado".

A lo que voy, los eventos "Reproduciendo" y "Parado" se envían
correctamente, el problema ocurre para eventos de tipo Info, como
"VideoSize". En su lugar aparece el siguiente mensaje en la ventana de
trazas del entorno de desarrollo:

Warning: constructing COleException, scode = E_UNEXPECTED ($8000FFFF).
First-chance exception at 0x793ca4e1 in iexplore.exe: Microsoft C++
exception: COleException @ 0x038ef190.

Más o menos, concluyo que sólo cuando ha habido interacción por parte
del usuario se envía el evento. O eso, o es que los eventos que
"nacen" de un hilo secundario no se pueden generar.

Espero que a alguno os suene esto, hemos mirado en muchos grupos de
desarrollo y hay gente que tiene este problema, pero en ningún caso se
da la solución, lo cual nos preocupa.

De antemano, gracias por la ayuda. Un saludo,

Manuel
 

Leer las respuestas

#1 Rodrigo Corral [MVP]
10/01/2005 - 21:17 | Informe spam
SAMPLE: ATLCPImplMT encapsulates ATL event firing across COM apartments
http://support.microsoft.com/kb/q280512/

http://www.mvps.org/vcfaq/com/1.htm

http://www.codeguru.com/Cpp/COM-Tec...le.php/c75

Hechale un vistazo a estos links, he supuesto que estas desarrollando el
control con ATL

Un saludo
Rodrigo Corral González [MVP]

FAQ de microsoft.public.es.vc++
http://rcorral.mvps.org

Preguntas similares