I found this the other day
http://karaoke-dx.sourceforge.net/It is for windows media player and is for Direct X
It is written in C++ and the sourcecode is available
(from their page)
CD+G Karaoke
Support for .bin and .cdg files in Windows Media Player
Support a number formats of sound tracks: mp3+g, wma+g, wav+g
Karaoke can be played back as full-screen video
Shell extensions - integration with MS Windows Explorer
Availability for non-standard applications, such as CD+G to .avi or .wmv conversion, writing video discs
Possibility to play back URLs
Maybe someone can convert this for XBMC use