It looks like this question has been asked multiple times each in a different context and I have made some strides in making an overlay for a game (This is for informational data, etc..). I Would also like to make it inter-actable like Steam and XFire.
I have managed to get an overlay for a directx game while its in window mode... kinda.
I have looked all over stack overflow and google without a lot of luck.
If required, I can try this in C++ instead of C#. I know C# but I don't consider myself to be a professional by any means. Just need a better explanation. Heck I will be willing to put together a nice screencast/tutorial if I can get this working right.
NOTE : I would really like to do this with native code rather than a library but if there is a good free library out there, I would like to check it out.
Examples : http://stackoverflow.com/questions/3266346/how-to-overlay-graphcis-on-windows-games
http://www.gamedev.net/community/forums/topic.asp?topic%5Fid=359794
http://stackoverflow.com/questions/1442303/c-lock-an-overlay-form-to-the-position-of-another-window
More Info : I did manage to get a windows form to overlay a game window with and set its parent to that with SetParent. This however, does not work very well because it will not work in fullscreen at all and the transparency didn't work. (basically had a transparency key and the TopMost was set to TRUE.) I would really like to find a different method.