Well, on linux use Systemtap.
It has a very high learning curve but it can do magic at almost no speed loss. Just run your program and in the background trace it though systemtap. Write a little script to send new list items, via a local tcp socket to your own program. You still need a hook into the event queue to actual control the program.
Edit: I think these are enough tips.
Bookmarks