1) You should inherit from iEventPlug, not iEventSocket. A reference to an iEventSocket is provided to you by the event queue.
2) Register your event handler with the RegisterListener method in iEventQueue.
3) Broadcast is a type of command where the handler's return value is ignored. Usually, if a handler returns true, the event is marked as handled and not passed to any other handlers. Broadcasts are sent to all handlers regardless.