Crear un evento en ATL con un parámetro OUT en VC++ 6.0

21/06/2004 - 09:06 por Antonio Liberal | Informe spam
Hola buenas.

Estoy intentando desarrollar una dll ActiveX con VC++ y ATL, que será
utilizada en VB6.0. Lo tengo todo listo y funcionando, pero quiero crear un
evento que me recoja un valor tipo long para después tratarlo. Lo he creado
como [OUT] Long* valor pero no me funciona. Ese mismo código, en un método
del interface me funciona sin problemas.

¿Alguien tiene algún ejemplo? Todo lo que he encontrado en microsoft es
sobre parámetros IN, con los que no tengo problemas.


Gracias.

Preguntas similare

Leer las respuestas

#1 Rodrigo Corral [MVP]
21/06/2004 - 17:39 | Informe spam
¿Que significa exactamente "no me funciona"?

Si no recuerdo mal, en el caso de un parametro out, ATL 3.0 no generaba
correctamente el codigo de disparo del evento y daba un error (no recuerdo
si de compilación o en ejecución) que se solucionaba retocando el código
generado.


Rodrigo Corral González [MVP]

microsoft.public.es.vc FAQ
http://vcfaq.europe.webmatrixhosting.net
Respuesta Responder a este mensaje
#2 Antonio Liberal
25/06/2004 - 08:44 | Informe spam
Hola Rodrigo, perdona que no te haya constesado antes, he estado fuera de la
oficina.

Lo de que no me funciona es que monto el parámetro como [OUT] Long * par,
recojo el evento desde Visual Basic, cambio el valor de la variable dentro
de este y al volver a VC me repone el valor que tenía antes de lanzar el
evento. La variable no está pasada por valor, porque si no en el Visual
Basic me aparecería como ByVal par As Long).

No me da ningún tipo de error al compilar o al ejecutar.

¿No tendrías por ahí algún pequeño ejemplo? He encontado ejemplos de eventos
con parámetros [IN], pero no con [OUT].

Gracias


"Rodrigo Corral [MVP]" escribió en el mensaje
news:%23H6r$
¿Que significa exactamente "no me funciona"?

Si no recuerdo mal, en el caso de un parametro out, ATL 3.0 no generaba
correctamente el codigo de disparo del evento y daba un error (no recuerdo
si de compilación o en ejecución) que se solucionaba retocando el código
generado.


Rodrigo Corral González [MVP]

microsoft.public.es.vc FAQ
http://vcfaq.europe.webmatrixhosting.net


Respuesta Responder a este mensaje
#3 Rodrigo Corral [MVP]
25/06/2004 - 10:53 | Informe spam
Lo siento no tengo ningún ejemplo en VC++ 6.0 :(


Rodrigo Corral González [MVP]

microsoft.public.es.vc FAQ
http://vcfaq.europe.webmatrixhosting.net
Respuesta Responder a este mensaje
#4 Antonio Liberal
25/06/2004 - 11:01 | Informe spam
Bueno, seguiré buscando. Me gusta el VC++, pero hay que reconocer que el
crear ActiveX es mucho más sencillo en Visual Basic, aunque menos versátil.

Gracias de todas formas.

"Rodrigo Corral [MVP]" escribió en el mensaje
news:
Lo siento no tengo ningún ejemplo en VC++ 6.0 :(


Rodrigo Corral González [MVP]

microsoft.public.es.vc FAQ
http://vcfaq.europe.webmatrixhosting.net


Respuesta Responder a este mensaje
#5 Sebastián Flores
28/06/2004 - 20:54 | Informe spam
Me parece que estas un poco confundido con el uso del [out]... porque si
estoy en lo cierto, en vc estas haciendo *par = 1024; por ejemplo este
valor se copia a tu variable local (no lo hace por referencia) en vb y por
mas que mas que la modifiques, para vc sigue siendo 1024.

Saludos

"Antonio Liberal" wrote in
message news:#iIfv#
Hola Rodrigo, perdona que no te haya constesado antes, he estado fuera de


la
oficina.

Lo de que no me funciona es que monto el parámetro como [OUT] Long * par,
recojo el evento desde Visual Basic, cambio el valor de la variable dentro
de este y al volver a VC me repone el valor que tenía antes de lanzar el
evento. La variable no está pasada por valor, porque si no en el Visual
Basic me aparecería como ByVal par As Long).

No me da ningún tipo de error al compilar o al ejecutar.

¿No tendrías por ahí algún pequeño ejemplo? He encontado ejemplos de


eventos
con parámetros [IN], pero no con [OUT].

Gracias


"Rodrigo Corral [MVP]" escribió en el mensaje
news:%23H6r$
> ¿Que significa exactamente "no me funciona"?
>
> Si no recuerdo mal, en el caso de un parametro out, ATL 3.0 no generaba
> correctamente el codigo de disparo del evento y daba un error (no


recuerdo
> si de compilación o en ejecución) que se solucionaba retocando el código
> generado.
>
>
> Rodrigo Corral González [MVP]
>
> microsoft.public.es.vc FAQ
> http://vcfaq.europe.webmatrixhosting.net
>
>


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida