¡Gracias, Giridhar!
Pero mi problema aún persiste... Sé cómo declarar un evento en C# - e incluso mi componente lo está activando al ser instanciado en IExplore, por ejemplo.
El problema principal es que, al crear una clase proxy en ABAP (heredando de CL_GUI_CONTROL), mi control en C# simplemente no activa el evento, porque no hay suscriptores para él.
Explicando mejor:
Tengo un componente llamado MYCOMP.Component, y tiene un evento llamado Selected. Este evento tiene el número de DispatchID 16.
Si lo uso en una página web, así
<object id="comp" ClassID="clsid:my-big-clsid"</object>
<script for="comp" event="Selected">
alert("¡Activado!");
</script>
...¡funciona perfectamente! Creo que Internet Explorer suscribe al evento de la forma correcta.
Ahora en ABAP, digamos que creé un ZCL_GUI_MYCOMP, que está siendo instanciado correctamente dentro de un contenedor... Puedo ver y usar mi componente dentro de SAP. Pero incluso después de llamar a SET_REGISTERED_EVENTS pasando el eventid = 16 (mi DispID, ¿recuerdas?), <b>¡el método DISPATCH nunca es llamado!</b> Y cuando depuro el componente dentro de Visual Studio, cuando el evento debería activarse, me dice que el evento Select es nulo.
Parece que necesito hacer que ABAP se suscriba a la función delegada de mi componente, o algo así. ¿O me estoy volviendo loco después de tres noches sin dormir?
¡Gracias!