Because only pointers can be passed to the interface. `event` is an instance holding a pointer to the actual event object. So passing the real pointer seems to be the most straight forward way (rather then creating a pointer to a local variable / reference).