Hi . I am little unsure about exactly what you are trying to do in a couple lines of your code sample. In line 36, it looks like you are creating a pointer named ListenerInterface, and setting the value to NULL. Then, in line 42, you are checking the see if ListenerInterface contains a valid value, which it does not since it is still NULL, so the following line never triggers.
Is your InterfaceCast in line 39 supposed to be updating the value stored in ListenerInterface? If you can clarify what those lines are trying to do, I can look into this a bit more for you.