Remodelling RPGs for the New Millennium, excellent article about game plots and storylines by Warren Spector, creator of the System Shock and Deus Ex series.
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.